17 KiB
Вклад в проект "Основы Data Science"
Спасибо за ваш интерес к участию в разработке учебного курса "Основы Data Science"! Мы приветствуем вклад от сообщества.
Содержание
- Кодекс поведения
- Как я могу внести вклад?
- Начало работы
- Руководство по внесению вклада
- Процесс Pull Request
- Руководство по стилю
- Соглашение о лицензии для участников
Кодекс поведения
Этот проект принял Кодекс поведения Microsoft Open Source.
Для получения дополнительной информации ознакомьтесь с FAQ по кодексу поведения
или свяжитесь с opencode@microsoft.com для любых дополнительных вопросов или комментариев.
Как я могу внести вклад?
Сообщение об ошибках
Перед созданием отчета об ошибке, пожалуйста, проверьте существующие проблемы, чтобы избежать дублирования. При создании отчета об ошибке включите как можно больше деталей:
- Используйте четкий и описательный заголовок
- Опишите точные шаги для воспроизведения проблемы
- Предоставьте конкретные примеры (фрагменты кода, скриншоты)
- Опишите наблюдаемое поведение и то, что вы ожидали
- Укажите детали вашей среды (ОС, версия Python, браузер)
Предложение улучшений
Мы приветствуем предложения по улучшению! При внесении предложений:
- Используйте четкий и описательный заголовок
- Предоставьте подробное описание предлагаемого улучшения
- Объясните, почему это улучшение будет полезным
- Перечислите любые похожие функции в других проектах, если применимо
Вклад в документацию
Улучшения документации всегда приветствуются:
- Исправляйте опечатки и грамматические ошибки
- Улучшайте ясность объяснений
- Добавляйте недостающую документацию
- Обновляйте устаревшую информацию
- Добавляйте примеры или варианты использования
Вклад в код
Мы приветствуем вклад в код, включая:
- Новые уроки или упражнения
- Исправление ошибок
- Улучшение существующих ноутбуков
- Новые наборы данных или примеры
- Улучшения приложения для викторин
Начало работы
Предварительные требования
Перед внесением вклада убедитесь, что у вас есть:
- Аккаунт GitHub
- Установленный Git на вашем компьютере
- Python 3.7+ и Jupyter
- Node.js и npm (для вклада в приложение для викторин)
- Знание структуры учебного курса
См. INSTALLATION.md для подробных инструкций по настройке.
Форк и клонирование
-
Сделайте форк репозитория на GitHub
-
Клонируйте ваш форк локально:
git clone https://github.com/YOUR-USERNAME/Data-Science-For-Beginners.git cd Data-Science-For-Beginners -
Добавьте upstream-репозиторий:
git remote add upstream https://github.com/microsoft/Data-Science-For-Beginners.git
Создание ветки
Создайте новую ветку для вашей работы:
git checkout -b feature/your-feature-name
# or
git checkout -b fix/your-bug-fix
Рекомендации по именованию веток:
feature/- Новые функции или урокиfix/- Исправление ошибокdocs/- Изменения в документацииrefactor/- Рефакторинг кода
Руководство по внесению вклада
Для содержания уроков
При добавлении уроков или изменении существующих:
-
Следуйте существующей структуре:
- README.md с содержанием урока
- Jupyter Notebook с упражнениями
- Задание (если применимо)
- Ссылки на предварительные и итоговые викторины
-
Включите следующие элементы:
- Четкие учебные цели
- Пошаговые объяснения
- Примеры кода с комментариями
- Упражнения для практики
- Ссылки на дополнительные ресурсы
-
Обеспечьте доступность:
- Используйте понятный и простой язык
- Добавляйте альтернативный текст для изображений
- Включайте комментарии к коду
- Учитывайте разные стили обучения
Для Jupyter Notebook
-
Очистите все выводы перед коммитом:
jupyter nbconvert --clear-output --inplace notebook.ipynb -
Добавляйте markdown ячейки с объяснениями
-
Используйте единообразное форматирование:
# Import libraries at the top import pandas as pd import numpy as np import matplotlib.pyplot as plt # Use meaningful variable names # Add comments for complex operations # Follow PEP 8 style guidelines -
Полностью протестируйте ваш ноутбук перед отправкой
Для Python-кода
Следуйте PEP 8 рекомендациям по стилю:
# Good practices
import pandas as pd
def calculate_mean(data):
"""Calculate the mean of a dataset.
Args:
data (list): List of numerical values
Returns:
float: Mean of the dataset
"""
return sum(data) / len(data)
Для приложения викторин
При изменении приложения для викторин:
-
Тестируйте локально:
cd quiz-app npm install npm run serve -
Запустите линтер:
npm run lint -
Убедитесь в успешной сборке:
npm run build -
Следуйте руководству по стилю Vue.js и существующим шаблонам
Для переводов
При добавлении или обновлении переводов:
- Следуйте структуре в папке
translations/ - Используйте код языка как имя папки (например,
frдля французского) - Сохраняйте ту же структуру файлов, что и в английской версии
- Обновляйте ссылки на викторины, добавляя параметр языка:
?loc=fr - Тестируйте все ссылки и форматирование
Процесс Pull Request
Перед отправкой
-
Обновите вашу ветку с последними изменениями:
git fetch upstream git rebase upstream/main -
Протестируйте ваши изменения:
- Запустите все измененные ноутбуки
- Протестируйте приложение для викторин, если оно изменено
- Убедитесь, что все ссылки работают
- Проверьте орфографию и грамматику
-
Закоммитьте ваши изменения:
git add . git commit -m "Brief description of changes"Пишите понятные сообщения коммитов:
- Используйте настоящее время ("Добавить функцию", а не "Добавил функцию")
- Используйте повелительное наклонение ("Переместить курсор в...", а не "Перемещает курсор в...")
- Ограничьте первую строку 72 символами
- Ссылайтесь на проблемы и pull requests, если это уместно
-
Запушьте в ваш форк:
git push origin feature/your-feature-name
Создание Pull Request
- Перейдите в репозиторий
- Нажмите "Pull requests" → "New pull request"
- Нажмите "compare across forks"
- Выберите ваш форк и ветку
- Нажмите "Create pull request"
Формат заголовка PR
Используйте четкие, описательные заголовки в следующем формате:
[Component] Brief description
Примеры:
[Lesson 7] Исправить ошибку импорта в Python Notebook[Quiz App] Добавить перевод на немецкий язык[Docs] Обновить README с новыми требованиями[Fix] Исправить путь к данным в уроке по визуализации
Описание PR
Включите в описание PR:
- Что: Какие изменения вы внесли?
- Почему: Почему эти изменения необходимы?
- Как: Как вы реализовали изменения?
- Тестирование: Как вы протестировали изменения?
- Скриншоты: Включите скриншоты для визуальных изменений
- Связанные проблемы: Ссылка на связанные проблемы (например, "Fixes #123")
Процесс обзора
- Автоматические проверки будут запущены для вашего PR
- Мейнтейнеры проверят ваш вклад
- Исправьте замечания, добавив дополнительные коммиты
- После одобрения мейнтейнер объединит ваш PR
После объединения вашего PR
-
Удалите вашу ветку:
git branch -d feature/your-feature-name git push origin --delete feature/your-feature-name -
Обновите ваш форк:
git checkout main git pull upstream main git push origin main
Руководство по стилю
Markdown
-
Используйте единообразные уровни заголовков
-
Вставляйте пустые строки между разделами
-
Используйте блоки кода с указанием языка:
```python import pandas as pd ``` -
Добавляйте альтернативный текст к изображениям:
 -
Сохраняйте разумную длину строк (около 80-100 символов)
Python
- Следуйте стилю PEP 8
- Используйте осмысленные имена переменных
- Добавляйте docstrings к функциям
- Включайте подсказки типов, где это уместно:
def process_data(df: pd.DataFrame) -> pd.DataFrame: """Process the input dataframe.""" return df
JavaScript/Vue.js
- Следуйте руководству по стилю Vue.js 2
- Используйте предоставленную конфигурацию ESLint
- Пишите модульные, переиспользуемые компоненты
- Добавляйте комментарии для сложной логики
Организация файлов
- Храните связанные файлы вместе
- Используйте описательные имена файлов
- Следуйте существующей структуре директорий
- Не коммитьте ненужные файлы (.DS_Store, .pyc, node_modules и т.д.)
Соглашение о лицензии для участников
Этот проект приветствует вклад и предложения. Большинство вкладов требуют, чтобы вы
согласились с Соглашением о лицензии для участников (CLA), подтверждающим, что вы имеете право
и действительно предоставляете нам права на использование вашего вклада. Для подробностей посетите
https://cla.microsoft.com.
Когда вы отправляете pull request, CLA-бот автоматически определит, нужно ли вам
предоставить CLA, и добавит соответствующую метку или комментарий. Просто следуйте
инструкциям, предоставленным ботом. Вам нужно будет сделать это только один раз для всех репозиториев, использующих наш CLA.
Вопросы?
- Проверьте наш Discord-канал #data-science-for-beginners
- Присоединяйтесь к нашему сообществу в Discord
- Ознакомьтесь с существующими проблемами и pull requests
Спасибо!
Ваш вклад делает этот учебный курс лучше для всех. Спасибо, что нашли время внести свой вклад!
Отказ от ответственности:
Этот документ был переведен с использованием сервиса автоматического перевода Co-op Translator. Несмотря на наши усилия обеспечить точность, автоматические переводы могут содержать ошибки или неточности. Оригинальный документ на его родном языке следует считать авторитетным источником. Для получения критически важной информации рекомендуется профессиональный перевод человеком. Мы не несем ответственности за любые недоразумения или неправильные интерпретации, возникшие в результате использования данного перевода.