Дополнительная практика: шесть мини-проектов для GitHub
Повторите полный путь разработки самостоятельно: от постановки задачи и кода до тестов, коммита и Pull Request.
Основной проект главы — SafeSort — показывает полный цикл разработки один раз подробно. В дополнительной практике этот же цикл нужно повторить самостоятельно на шести небольших проектах.
Цель здесь не только написать работающий код. Каждый проект необходимо оформить как часть GitHub-портфолио: определить задачу, привести код в порядок, добавить тесты и документацию, выполнить работу в отдельной ветке и завершить её через Pull Request.
Шесть проектов
| Проект | Что практикует |
|---|---|
| A. Калькулятор с Tkinter | безопасный разбор выражений без eval(), разделение логики и интерфейса |
| B. Генератор случайных историй | детерминированный генератор случайных чисел, тестируемая случайность |
| C. «Камень, ножницы, бумага» | таблица правил вместо цепочки условий, проверка всех девяти комбинаций |
| D. Отскакивающие мячи с Pygame | движение по времени кадра, независимость от FPS |
| E. Преобразование температуры | чистые функции конвертации, проверка ниже абсолютного нуля |
| F. Приложение «Заметки» | файловые операции отдельно от интерфейса, обработка ошибок чтения |
Один репозиторий для всех шести проектов
python-mini-projects — эталонный репозиторий курса: он показывает ожидаемую структуру и рабочий процесс, но учебная работа выполняется не прямо в нём. Практика — в собственной копии:
Один репозиторий на все шесть проектов, а не шесть отдельных:
| Один репозиторий | Шесть репозиториев |
|---|---|
| Один и тот же рабочий процесс с Issue, веткой и Pull Request повторяется шесть раз в одном месте | Тот же процесс нужно настраивать заново для каждого репозитория |
| Прогресс по всем проектам виден сразу в одном списке коммитов и PR | Прогресс разбросан по шести отдельным историям |
| На странице профиля — один репозиторий с шестью проектами внутри | На странице профиля — шесть отдельных репозиториев, каждый на одну небольшую задачу |
Если один из проектов вырастет во что-то самостоятельное и заслуживающее отдельного внимания, его можно позже вынести в собственный репозиторий — но это решение для будущего, не отправная точка.
Рабочий процесс для каждого проекта
Итоговый список
- [ ] SafeSort завершён
- [ ] Репозиторий python-mini-projects создан
- [ ] A. Калькулятор — Pull Request слит
- [ ] B. Генератор историй — Pull Request слит
- [ ] C. Камень, ножницы, бумага — Pull Request слит
- [ ] D. Отскакивающие мячи — Pull Request слит
- [ ] E. Преобразование температуры — Pull Request слит
- [ ] F. Заметки — Pull Request слит
- [ ] Автоматическая проверка настроена и проходит
- [ ] README репозитория обновлён