Используете ли вы этот или аналогичный рабочий процесс git ветвления?
Мы используем аналогичный рабочий процесс на работе, но чуть менее сложный. Однако этот рабочий процесс очень вдохновляет меня, так как я читал эту статью много раз. У меня даже есть PDF-файл модели разветвления рядом с моим столом :)
Считаете ли вы это продуктивным подходом?
Продуктивное. Как вы определяете производительность? Ну, на мой взгляд, очень важно иметь высокое качество, по крайней мере, постоянно пытаться достичь лучшего качества. Постоянное улучшение процесса и т. Д. Если вы можете создавать качественный код, от этого выиграет производительность. Таким образом, вопрос на самом деле: улучшает ли это качество программного обеспечения? И мой ответ на это определенно да.
Что мне больше всего нравится в этом типе модели ветвления, так это то, что она вводит ветви на разных уровнях качества. Чем правее на картинке, тем выше стабильность и выше качество. Основная ветвь является священной, и все коммиты на ней должны рассматриваться как стабильные версии программного обеспечения. Чем левее вы идете, тем больше эксперимента и тем ниже стабильность, которую вы получаете.
Как только вы протестируете новые функции и исправления ошибок, вы можете постепенно передавать их слева направо и, таким образом, перемещаться в коде с высоким качеством именно тогда, когда вы знаете, что код соответствует требованиям к качеству, которые вы предъявляете к коду. Ну, по крайней мере, теоретически, поскольку вы не можете проверить все на 100% и точно знать, что код не содержит ошибок, потому что он всегда будет иметь ошибки. Но это позволяет вам сохранять высокую уверенность.
Для программиста ничто не отстой больше, чем для работы в системе, в которой никто не уверен в коде, потому что они знают, что он просто отстой и что в нем есть куча ошибок.
Видите ли вы недостатки в этом подходе? Есть потенциальные недостатки?
Важно продумать модель ветвления, чтобы она соответствовала потребностям вашей организации. То, что эта модель хорошо работает для некоторых людей, не обязательно означает, что она оптимальна или желательна для других.
Всегда есть компромиссы и даже в этом случае. Одним из компромиссов является количество веток в зависимости от сложности. Вводя множество различных типов веток, вы увеличиваете сложность рабочего процесса. Например, было бы просто неправильно заставлять людей создавать новую ветвь функций, когда они пытаются исправить простую ошибку, изменив пару строк кода.
Мы все знаем, что ошибки более или менее сложны для решения. Таким образом, когда обнаруживается тривиальная ошибка, вы можете сократить сложность и администрирование, чтобы избавиться от лишних накладных расходов, и просто позволить людям выполнять непосредственные действия, например, в основную ветку или ветвь разработки. Но так как характер ваших исправлений становится все более сложным, стоит потратить дополнительные усилия на создание для них новых веток. Особенно, если вы не уверены в его размере и длине или хотите улучшить сотрудничество между вами и другими разработчиками.
Если у вас есть лучший подход, не могли бы вы поделиться или предоставить ссылку на статью или обсуждение по этому поводу?
Это, без сомнения, хороший подход, и он может подходить для большинства случаев, поскольку у большинства из нас есть похожие процессы разработки, но он может подходить не всем. Я настоятельно призываю вас продумать, как вы сейчас обрабатываете свой код, и попытаться создать модель ветвления, которая соответствует той, которая у вас уже есть.
Самый важный момент - начать работать с git, а все остальное будет следовать естественным образом. Начните с простого и постепенно улучшайте! Будь креативным!
ура