Рабочий процесс, редактирование вещей не в вашей текущей задаче

12

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

Здесь я вижу три варианта:

  • Сделайте это позже (возможно, забыл / придется тратить время на добавление билета)
  • Сделайте это сейчас и передайте это вместе с моей текущей работой (неясно)
  • Сделайте это сейчас и зафиксируйте отдельно (придется его найти, может ошибиться и непреднамеренно перейти к варианту №2)

Вероятно, это довольно просто, но как можно обойти это, используя svn / git / other?

Nattfrosten
источник
Я обычно иду со вторым вариантом. Но если я сделал много рефакторинга, я делаю два отдельных коммита. 1 для моей конкретной задачи, а другой просто помечен как «Рефакторинг», который я rebaseвместо merge.
Alternatex

Ответы:

7

Лично я думаю, что это зависит :-).

  • Для небольших исправлений лучше всего использовать третий вариант (теперь в отдельном коммите), потому что затраты на его последующее выполнение не стоят того. В этом случае вы просто создаете отдельный коммит. Как это сделать, зависит от того, какую VCS вы используете, и это отдельный вопрос :-).

  • Если это больше , вы создаете заявку. В противном случае вы рискуете быть постоянно сорванными с вашей основной задачи («О, смотри, еще одна возможность для рефакторинга, о, есть еще одна, и там, и там ...»).

sleske
источник
Для вашей первой пули, небольшие исправления, немедленное внесение изменений кажется лучшим вариантом. Я понятия не имею, почему я не подумал об этом, я думаю, вредные привычки. Я, как правило, немного
разбираюсь
@Nattfrosten: Да, это естественно, и неплохо - в конце концов, внимание должно быть сосредоточено на кодировании. Управление кодом предназначено только для упрощения кодирования.
Слёске
5

Учти это. Когда вы «находите раздражающие вещи (...) для очистки» и принимаете исполнительное решение для этого, вы исключаете остальную часть вашей команды из обсуждения приоритетов и принятия решений. Вы позволяете своей повестке дня превосходить всех остальных из-за ваших привилегированных отношений с кодом. Я не думаю, что это хорошо. По опыту это также приводит к обиде команды / акционера.

Вместо этого создайте проблему / задачу для очистки / рефакторинга. Хотя это свежо в вашем уме, перечислите причины, по которым это важно: оценки повышенной стабильности, простоты обслуживания и тому подобное. Может включать оценку усилий в зависимости от того, как работает ваша команда. Затем на следующей встрече по выбору / назначению / приоритетам представьте вашу задачу по рефакторингу и сопоставьте ее с другими задачами. Как команда, решите, когда это должно быть завершено.

Пожалуйста, не думайте, что я говорю вам, чтобы вы отбрасывали здравый смысл во имя принципов. Используй голову. Если в функции, которую вы редактируете, есть что-то уродливое, это не новая задача рефакторинга. Исправьте это и проверьте все. Если переименование свойства, с которым вы работаете, на что-то более разумное, влияет на пару дополнительных исходных файлов, это не новая задача рефакторинга. Исправьте это и проверьте все. Если, с другой стороны, вам не нравится, как другой разработчик (Митч, я ненавижу этого парня) сделал что-то в функции, которую вы не редактируете, и сказал, что функция работает нормально, оставь это пока Создайте задачу по рефакторингу и представьте ваше дело вашей команде.

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

Скудный Роджер
источник
1
Большое спасибо за этот ответ, до сих пор я в основном принимал участие в сольных проектах, так что именно отсюда и появилась моя перспектива. В дальнейшем мне придется изменить многие привычки, чтобы они лучше подходили команде, и мне нужно именно это.
Nattfrosten
Тот же вывод, но часто боссы решают пойти на новые функции, а не рефакторинг: - |
Марк Херд