С точки зрения дизайна, скопированный код - это определенно катастрофа, способная вызвать множество проблем в будущем. Но вы спрашиваете , почему это займет у вас много работы прямо сейчас , ответ: потому , что он никогда не просто копировать и вставлять.
Если исходный код был написан для повторного использования, как довольно независимая библиотека, с учетом гибкости и использования клиента - тогда отлично, но это не копирование, а использование библиотеки кода. Реальное копирование кода обычно выглядит примерно так:
- «Конечно, у меня уже есть код, который делает именно это!»
- «Подождите, какую из этих пяти версий кода я хочу использовать в качестве источника?»
- «Хммм, а что делают все эти функции 'util_func_023'? Разве я их не задокументировал? Какие из них мне нужны сейчас?»
- "О, да, этот код использует Code Base Y. Думаю, мне нужно [ выбрать один: скопировать всю Code Base Y в мой новый проект / потратить день на извлечение одной функции, которую я хочу из Code Base Y / потратить неделю на извлечение одна функция, которую я хочу из Code Base Y] ".
- "Я все скопировал, ура!"
- "Почему это не работает?"
- Это момент, когда вы тратите часы / дни / недели на отладку существующего кода, который похож на то, что вы хотите, вместо того, чтобы писать код, с которого вы действительно хотите начать.
Таким образом, существующий код, который нельзя использовать напрямую, в лучшем случае может служить хорошим ориентиром для написания аналогичного кода. Его, конечно, нельзя поднять целиком и ожидать, что он будет работать в совершенно другой системе. В общем, можно с уверенностью предположить, что в любой написанный и завершенный код следует как можно меньше вмешиваться - даже если это копия, а не сам оригинал.
Если вы хотите основать свой проект на копировании-вставке, вам нужно для начала код таким образом, чтобы его можно было легко использовать повторно, не копируя исходный код и не возиться с ним. Это стоит сделать, и если это то, чего ожидает ваш босс, то вам обоим нужно в первую очередь убедиться, что именно так вы проектируете и работаете.