Как убедить коллегу, что дублирование кода плохо? - PullRequest
31 голосов
/ 19 ноября 2010

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

Я пытался объяснить, что это делает наш проект более сложным в обслуживании, но он не хочет ничего менять, говоря, что ему легче программировать таким образом и что нет причин исправлять код, если он " не сломался ".

Как я могу убедить его, что такое дублирование кода это плохо?

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

Ответы [ 14 ]

1 голос
/ 19 ноября 2010

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

Если вы превосходите его, просто «попросите» его поступить так, как вам нужно..

1 голос
/ 19 ноября 2010

Он, вероятно, предполагает, что это не сломалось, и не будет.Кроме того, совершенство - враг хорошего.Я не думаю, что он не замечает опасности копирования / вставки, он просто по-другому оценивает вероятность ошибки, чем вы.

Возможно, вы могли бы сломать его для него, чтобы показать, насколько это легко.Если нет, возможно, он прав.

1 голос
/ 19 ноября 2010

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

0 голосов
/ 24 ноября 2010

Во-первых, подтвердите, что он прав: копирование-вставка действительно быстрее теперь .

Затем, скажем, что проблема заключается в стоимости в долгосрочной перспективе, и что стоимость увеличится, потому что с дублированием система не так упорядочена, как могла бы. Он вводит беспорядок, беспорядок и чем больше у вас беспорядков, тем сложнее работать с системой. Приложив некоторые усилия сейчас, чтобы лучше организовать это (как правило) окупится в долгосрочной перспективе. Это все равно, что держать свой стол или комнату в порядке.

Это идея Ивара Якобсона о программной энтропии

...