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

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

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

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

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

Прошу прощения за таки ламерские вопросы, но что-то гугл не помог разобратся :) Заранее спасибо за ответы
  • Вопрос задан
  • 1008 просмотров
Решения вопроса 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/
и если вы коллективно пишете один класс, то что-то пошло не так )
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
Zaycev.net Челябинск
от 65 000 до 100 000 руб.
Ньютон Финанс Иркутск
от 65 000 руб.
timebook Нижний Новгород
от 120 000 руб.