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