16 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 remote:
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 ноутбук з вправами
- Завдання (якщо застосовно)
- Посилання на попередні та наступні тести
-
Включайте ці елементи:
- Чіткі навчальні цілі
- Пояснення крок за кроком
- Приклади коду з коментарями
- Вправи для практики
- Посилання на додаткові ресурси
-
Забезпечте доступність:
- Використовуйте чітку, просту мову
- Додавайте alt-текст для зображень
- Включайте коментарі до коду
- Враховуйте різні стилі навчання
Для Jupyter ноутбуків
-
Очистіть всі виводи перед комітом:
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 ноутбуці[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 ``` -
Додавайте alt-текст до зображень:
 -
Зберігайте розумну довжину рядків (близько 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, і відповідно позначить PR (наприклад, мітка, коментар). Просто дотримуйтесь інструкцій, наданих ботом. Вам потрібно буде зробити це лише один раз для всіх репозиторіїв, які використовують наш CLA.
Запитання?
- Перевірте наш Discord-канал #data-science-for-beginners
- Приєднуйтесь до нашої спільноти Discord
- Перегляньте існуючі проблеми та pull requests
Дякуємо!
Ваші внески роблять цю навчальну програму кращою для всіх. Дякуємо, що знайшли час для внеску!
Відмова від відповідальності:
Цей документ було перекладено за допомогою сервісу автоматичного перекладу Co-op Translator. Хоча ми прагнемо до точності, звертаємо вашу увагу, що автоматичні переклади можуть містити помилки або неточності. Оригінальний документ рідною мовою слід вважати авторитетним джерелом. Для критичної інформації рекомендується професійний людський переклад. Ми не несемо відповідальності за будь-які непорозуміння або неправильні тлумачення, що виникли внаслідок використання цього перекладу.