Как писать код в команде?

Здравствуйте!

Мы с друзьями по вузу очень хорошо прошли курс универа по Java и теперь хотим что-то написать вместе. Но так как мы новичики, то теряемся в том, как именно это организовать. Как выглядит процесс написания проекта в команде из 2-3 человек у "настоящих" программистов? И как это организовано?

Насколько я понимаю, то весь код должен лежать на гитхаб, где каждый будет его скачитвать себе на компьютер, модифицировать его и заливать обновленный код назад на гитхаб? Я наверное что-то упускаю, но этот подход мне кажется довольно проблематичным, ибо:
Если все пишут код параллельно и изменяют какой-то класс, то он может изменить немного свое поведение. Если я не узнаю об этом, пока сам работаю с этим классом, то могу написать просто код который вообще не работает, ибо класс уже был изменен. И тогда либо моя, либо работа товарища уходит в никуда

Как это организуют "по-нормальному" ?

Прошу прощения за таки ламерские вопросы, но что-то гугл не помог разобратся :) Заранее спасибо за ответы
  • Вопрос задан
  • 1071 просмотр
Решения вопроса 1
@Iloveski
Все верно, работают через git. Как правило есть ветка development, ветка master и отдельные ветки для разработки фич. После разработки каждой фичи эта ветка через pull request сливается с development. Когда вы готовы к релизу development вливается в master. Возможные конфликты разрешаются при слиянии веток чаще всего автоматически, так как git довольно умная система, но иногда приходится вручную. Более подробно весь процесс описан в git flow
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
Вообще, по-хорошему, каждый в команде работает над своим куском функционала, который затем приклеивается к проекту благодаря модульной архитектуре. С хорошим тим-лидом так и будет.

А если тим-лида нет, или он плохой, то будете регулярно резольвить конфликты при слиянии веток + тратить время на обсуждение общего вектора. А-ля "Сань, на 10й строке не трогай, я там поменял, ок?"
Ответ написан
@g905
Прочитайте подробнее про git. Там есть ветки. Каждый может ответвиться от репозитория, и работать в своей ветке. Потом, когда сливаешь свои изменения в репозиторий, показывают "конфликты" - если есть разные версии одного и того же кода, вы должны будете руками выбрать что оставить, а что отменить.
Ответ написан
@konst74
Ну как вам сказать, почитайте про SOLID принципы прежде чем нырнуть в пучину командной разработки, иначе и гитхаб и другие подобные инструменты не помогут
https://habr.com/ru/post/208442/
https://habr.com/ru/company/mailru/blog/412699/
и если вы коллективно пишете один класс, то что-то пошло не так )
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы