Итак друзья, путь который мы проделали поистине велик! Настал момент применить всё чему мы научились в сражении с финальным испытанием. Его суть заключается в самостоятельном планировании, проектировании и разработке выпускного проекта. Далее следуют более подробные инструкции и рекомендации.
Идея проекта может быть абсолютно любой. Лучше всего, если есть уже что-то такое о чём вы думаете и что хотите реализовать. Например, автоматизировать один из элементов вашей жизнедеятельности, написать приложение для домашней библиотеки или музыкальной коллекции. В том случае если ничего подходящего не нашлось наставник поможет вам сориентироваться и выбрать одну из существующих идей.
Перед тем как непосредственно приступить к разработке проекта необходимо провести его проектирование. Данный этап предполагает анализ предметной области, написание пользовательских историй и распределение их по итерациям (например, создание milestone
на GitHub). Таким образом, перед началом написания кода проекта необходимо:
-
Проанализировать предметную область. Кратко описать суть проекта на главной странице в GitHub Wiki
-
Выделить сущности предметной области. Создать диаграмму в GitHub Wiki, включающую эти сущности и связи между ними. Тип диаграммы может быть любым (подойдут прямоугольники с сущностями и связи в виде линий между ними). Также хорошо подойдёт ER (Entity-Relationship) диаграмма
-
Написать пользовательские истории и распределить их по итерациям. Каждая итерация должна быть рассчитана на одну неделю. В качестве итерации, например, может выступать
milestone
наGitHub
. В этом случаеmilestone
будет содержатьissues
с пользовательскими историями
После выполнения этапа проектирования необходимо утвердить проект с наставником. Далее разработка каждой итерации ведётся в собственной ветке. После закрытия всех issue
итерации создаётся pull request
который проверяется наставником.
Проект считается завершённым, если успешно выполнено 3 или более итераций. При этом необходимо соблюдать целостность проекта при распределении пользовательских историй между итерациями. Например, проект не будет обладать целостностью если основной функционал слабо развит или отсутствует вовсе. Иными словами, приложение должно выполнять задачи которые вы описали на главной странице в GitHub Wiki на этапе проектирования проекта.
Рекомендуется дробить каждую пользовательскую историю на несколько issue
и связывать их с issue
пользовательской истории. GitHub позволяет сделать это если в описании новой задачи (issue
) указать номер задачи (issue
) пользовательской истории начиная с символа #
.