Friday, May 10, 2019

Работа в git при выполнении задачи

Код, который был написан программистом, обязательно будет проверен другим программистом. А если пройдет много времени, то программист сам будет вникать в свой код с нуля. Потому в этой статье размышления о том, как писать код. Для примера взята задача из проекта с открытым исходным кодом events4friends.

Дерево коммитов выглядит так:


Коммит «Merge branch 'share-event'» включает в себя все изменения, которые были сделаны при выполнении задачи, тогда как остальные коммиты в ветке «share-event» содержат атомарные изменения.

Атомарные изменения

Каждый коммит содержит реализацию одного действия. Например, мы решили поправить стиль кода. Тогда все изменения - это один коммит:


Дальше нам необходимо реализовать формирование даты. Коммит включает такой код:


Плохо! Несколько действий в одном коммите.
Хорошо!
Одно действие - это один коммит.

Если в одном коммите присутствует выравнивание строк и сложная логика, то потом будет очень сложно разобраться что к чему.

Названия коммитов

Название коммита отображает действие и лаконично отвечает на вопрос «что делает этот коммит?». Соответственно, в названии коммита содержится ответ, который начинается с глагола: «исправляет код стиль», «добавляет функцию getSize» и т.д.

Примеры:
Плохо! "some changes", "code changes"
Хорошо!
 "fix code style", "add Person class", "update dependencies"

Такой подход при выполнении задач и наименования коммитов используется в events4friends, jobboo и других наших проектах.