Я потратил много времени на чтение разных книг о «хорошем дизайне», «шаблонах проектирования» и т. Д. Я большой поклонник подхода SOLID, и каждый раз, когда мне нужно написать простой кусок кода, я думаю о будущее. Таким образом, если для реализации новой функции или исправления ошибки требуется просто добавить три строки кода, например:
if(xxx) {
doSomething();
}
Это не значит, что я сделаю это так. Если я чувствую, что этот кусок кода может стать больше в ближайшем будущем, я подумаю о добавлении абстракций, перемещении этой функции в другое место и так далее. Цель, которую я преследую, - сохранить среднюю сложность такой же, какой она была до моих изменений.
Я считаю, что с точки зрения кода, это неплохая идея - мой код никогда не бывает достаточно длинным, и довольно легко понять значения для различных сущностей, таких как классы, методы и отношения между классами и объектами.
Проблема в том, что это занимает слишком много времени, и я часто чувствую, что было бы лучше, если бы я просто реализовал эту функцию «как есть». Это просто «три строки кода» против «нового интерфейса + два класса для реализации этого интерфейса».
С точки зрения продукта (когда мы говорим о результате ), вещи, которые я делаю, совершенно бессмысленны. Я знаю, что если мы собираемся работать над следующей версией, хороший код - это действительно здорово. Но с другой стороны, время, которое вы потратили на то, чтобы сделать ваш код «хорошим», могло быть потрачено на реализацию нескольких полезных функций.
Я часто чувствую себя очень неудовлетворенным своими результатами - хороший код, который может выполнять только A, хуже, чем плохой код, который может выполнять A, B, C и D.
Может ли такой подход привести к положительной чистой выгоде для программного проекта или это пустая трата времени?