Мы с друзьями по вузу очень хорошо прошли курс универа по Java и теперь хотим что-то написать вместе. Но так как мы новичики, то теряемся в том, как именно это организовать. Как выглядит процесс написания проекта в команде из 2-3 человек у "настоящих" программистов? И как это организовано?
Насколько я понимаю, то весь код должен лежать на гитхаб, где каждый будет его скачитвать себе на компьютер, модифицировать его и заливать обновленный код назад на гитхаб? Я наверное что-то упускаю, но этот подход мне кажется довольно проблематичным, ибо:
Если все пишут код параллельно и изменяют какой-то класс, то он может изменить немного свое поведение. Если я не узнаю об этом, пока сам работаю с этим классом, то могу написать просто код который вообще не работает, ибо класс уже был изменен. И тогда либо моя, либо работа товарища уходит в никуда
Как это организуют "по-нормальному" ?
Прошу прощения за таки ламерские вопросы, но что-то гугл не помог разобратся :) Заранее спасибо за ответы
Все верно, работают через git. Как правило есть ветка development, ветка master и отдельные ветки для разработки фич. После разработки каждой фичи эта ветка через pull request сливается с development. Когда вы готовы к релизу development вливается в master. Возможные конфликты разрешаются при слиянии веток чаще всего автоматически, так как git довольно умная система, но иногда приходится вручную. Более подробно весь процесс описан в git flow
Вообще, по-хорошему, каждый в команде работает над своим куском функционала, который затем приклеивается к проекту благодаря модульной архитектуре. С хорошим тим-лидом так и будет.
А если тим-лида нет, или он плохой, то будете регулярно резольвить конфликты при слиянии веток + тратить время на обсуждение общего вектора. А-ля "Сань, на 10й строке не трогай, я там поменял, ок?"
Прочитайте подробнее про git. Там есть ветки. Каждый может ответвиться от репозитория, и работать в своей ветке. Потом, когда сливаешь свои изменения в репозиторий, показывают "конфликты" - если есть разные версии одного и того же кода, вы должны будете руками выбрать что оставить, а что отменить.