Есть несколько проблем, которые смешиваются вместе, чтобы сделать рефакторинг сложным в этой среде. С этим связаны некоторые нетехнические проблемы («но это проблема управления и битва, которую мне еще предстоит выиграть»).
Первая проблема, на которую стоит обратить внимание, это ветка с длительным сроком действия. Эти ветки испытывают трудности с отслеживанием изменений вне поля зрения разработчика. Для решения этой проблемы:
- Когда код завершен - дайте ему еще раз (позвольте службе поддержки взглянуть на него, если они этого захотят), но быстро объедините его с разработкой, чтобы другие изменения, которые зависят от него, могли быть обнаружены, а изменения, которые конфликтуют, были выявлены на ранней стадии. в процессе.
- Если по какой-то причине Brach действительно начинает работать долго, пока идет рефакторинг, имеет смысл слиться со стабильной в ветку для получения изменений и рефакторинга. Часто это сводит к минимуму конфликты и неожиданности при слиянии из ветви функций в стабильную ветку.
- Все наши интеграционные испытания должны проводиться с выпусками, а не с функциями . В этой среде функции могут или не могут быть полностью интегрированы с системой. Хотя можно выполнить проверку работоспособности изолированной функции, она не выявляет проблем при выпуске.
- От момента завершения кода до слияния (давайте назовем его развивающимся - у ветвления от master / stable / release есть свои проблемы с отсутствием отслеживания последних изменений разработки) не должно быть слишком много времени. Чем дольше вы ждете, тем больше знаний теряется и тем труднее будет интегрировать код с другими строками кода.
Другая проблема, которая смешивается с этим, заключается в том, что я упомянул вышеупомянутые пункты, это изменение роли ветви с течением времени. Он начинается как ветвь разработки, где разработчики фиксируют, а затем становится областью тестирования (какое тестирование здесь проводится, что может быть значимым для всего приложения?), Которое затем объединяется в стабильный (и предположительно выпущенный - действительно ли это проверено снова?).
С более коротким временем начала и окончания функции для рефакторинга будет легче быть замеченным другими ветвями.
Поощряйте разработчиков, чтобы получить всю среду. Простые изменения в вишне могут привести к ... скажем, интересным средам для разработчиков. В то время как вишневый сбор имеет свое применение, для этого быть режимом по умолчанию для внесения изменений в ветвь может быть беспокойство.
Рефакторинг - это то, что в идеале выполняется постоянно или, если не постоянно, когда происходит небольшое время простоя. Branch, выполните простой рефакторинг, запустите модульные тесты, чтобы убедиться, что все по-прежнему работает (его модуль проверен, верно? Верно? ), А затем объединитесь в стабильный. Передайте информацию другим разработчикам, чтобы те изменения, которые вы реорганизовали, перенесли в их собственные ветви.
Разработчикам важно владеть качеством кода. В то время как управление функциями происходит извне, а распределение времени часто не наше, качество кода - это то, чем нужно гордиться и уделять время.
Вы можете найти следующие вопросы полезными в поиске времени для решения технических проблем:
Возможно, вы также захотите взглянуть на такие инструменты, как sonar, которые могут помочь определить области кода, которые требуют больше всего работы для рефакторинга. Плагин технического долга является то , что может быть использовано для помощи точки из накопления долга с течением времени в коде.
Часто необходимо указать, что окупаемость инвестиций в техническую задолженность - это более быстрое время выполнения функций и исправлений ошибок от команды разработчиков.