Как происходит разработка по почте?

Разработка по почте (или email-driven development, далее EDD) - это методология разработки программного обеспечения, при которой команда разработчиков совместно работает над проектом, используя электронную почту в качестве основного инструмента коммуникации и совместной работы.

EDD основывается на принципах распределенной системы контроля версий, такой как Git. Основная идея EDD заключается в том, что каждая задача или изменение в проекте представляет собой "патч" или набор изменений в коде, который отправляется по электронной почте. Разработчики обмениваются "патчами" и обсуждают изменения, вносят комментарии и предложения в процессе обсуждения.

Вот как происходит разработка по почте с использованием Git:

1. Команда разработчиков обсуждает и планирует новую функциональность, исправления ошибок или другие изменения в коде. Каждая задача или изменение записывается в виде "патча".

2. Разработчик создает отдельную ветку (branch) в репозитории Git для каждой задачи или изменения.

3. Разработчик вносит все необходимые изменения в код в своей ветке, коммитит изменения и пушит их на сервер Git.

4. Разработчик создает патч, который представляет собой набор изменений, внесенных в код, с помощью команды git format-patch. Этот патч содержит информацию о всех коммитах, сделанных в данной ветке.

5. Разработчик отправляет созданный патч по электронной почте на список рассылки или непосредственно заинтересованным участникам проекта.

6. Остальные разработчики из команды принимают патч, применяют его к своей рабочей копии репозитория Git с помощью команды git am, и тестируют его. Если в процессе тестирования выявляются какие-либо проблемы, разработчики могут комментировать патч, вносить предложения или вносить изменения.

7. После обсуждения изменений и внесения всех необходимых правок, разработчик, создавший патч, может включить его в основную ветку проекта путем мержа или ребейза.

Преимущества использования разработки по почте (EDD) включают:

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

Однако разработка по почте также имеет свои недостатки:

- Ограниченная возможность анализа кода: сложнее проводить статический анализ и тестирование изменений.
- Высокая вероятность внесения ошибок: при использовании патчей есть риск ошибочного применения или упущения.
- Затраты времени на процесс обсуждения: процесс комментирования и обсуждения может занимать больше времени, чем бы было при использовании других инструментов коммуникации и совместной работы.

Тем не менее, разработка по почте может использоваться в командах с особыми требованиями к безопасности, конфиденциальности или в командах, работающих удаленно в условиях ограниченной связи. Этот метод разработки также может быть полезен для обработки больших и сложных изменений, для которых требуется более детальное обсуждение и проверка со стороны других разработчиков.