Дублирование - корень всего зла
Я бы сказал, что неконтролируемое правительство - корень всего зла:)
Мне очень жаль, что я даже предположил, что дублирование должно быть вариантом. Я понимаю почему, но позвольте мне немного усложнить это.
Скажем, у вас есть довольно большая библиотека, которая на самом деле ничего не делает - это просто набор утилит. Для этой библиотеки НЕТ тестов - вообще. Вам нужна только одна функция от него. Скажем, что-то, что анализирует расширение файла.
Популярная викторина: вы просто пишете что-то маленькое в своем собственном проекте, или вы кусаете пулю и используете бесплатный для всех набор утилит, который НЕ БУДЕТ сломать ваше приложение, если кто-то нарушит функцию?
Также представьте, что вы находитесь в среде, где написание тестов не является частью культуры, поскольку большинство проектов очень интенсивны и имеют очень короткий период разработки.
Дублирование больших систем - таких как регистрация клиентов - было бы глупо, конечно, невероятно. Однако нет ли случаев, когда безопаснее дублировать что-то довольно маленькое в вашем проекте, если альтернатива недостаточно безопасна (нет системы для поддержки общего кода).
Думайте об этом так - и это происходит постоянно - несколько подрядчиков работают над разными проектами для одной и той же компании. Они даже не знают друг о друге.
Мой аргумент таков:
Если команда не может посвятить себя поддержанию единой общей кодовой базы или если среда не дает им достаточно времени, лучше всего позволить им работать в качестве отдельных «подрядчиков».
Вам по-прежнему нужно будет использовать большие существующие системы, которые просто невозможно дублировать.