Код, который был написан программистом, обязательно будет проверен другим программистом. А если пройдет много времени, то программист сам будет вникать в свой код с нуля. Потому в этой статье размышления о том, как писать код. Для примера взята задача из проекта с открытым исходным кодом events4friends.
Дерево коммитов выглядит так:
Коммит «Merge branch 'share-event'» включает в себя все изменения, которые были сделаны при выполнении задачи, тогда как остальные коммиты в ветке «share-event» содержат атомарные изменения.
Дальше нам необходимо реализовать формирование даты. Коммит включает такой код:
Плохо! Несколько действий в одном коммите.
Хорошо! Одно действие - это один коммит.
Если в одном коммите присутствует выравнивание строк и сложная логика, то потом будет очень сложно разобраться что к чему.
Дерево коммитов выглядит так:
Коммит «Merge branch 'share-event'» включает в себя все изменения, которые были сделаны при выполнении задачи, тогда как остальные коммиты в ветке «share-event» содержат атомарные изменения.
Атомарные изменения
Каждый коммит содержит реализацию одного действия. Например, мы решили поправить стиль кода. Тогда все изменения - это один коммит:
Дальше нам необходимо реализовать формирование даты. Коммит включает такой код:
Плохо! Несколько действий в одном коммите.
Хорошо! Одно действие - это один коммит.
Если в одном коммите присутствует выравнивание строк и сложная логика, то потом будет очень сложно разобраться что к чему.
Названия коммитов
Название коммита отображает действие и лаконично отвечает на вопрос «что делает этот коммит?». Соответственно, в названии коммита содержится ответ, который начинается с глагола: «исправляет код стиль», «добавляет функцию getSize» и т.д.
Примеры:
Плохо! "some changes", "code changes"
Хорошо! "fix code style", "add Person class", "update dependencies"
Такой подход при выполнении задач и наименования коммитов используется в events4friends, jobboo и других наших проектах.
Примеры:
Плохо! "some changes", "code changes"
Хорошо! "fix code style", "add Person class", "update dependencies"
Такой подход при выполнении задач и наименования коммитов используется в events4friends, jobboo и других наших проектах.