Я младший разработчик среди пожилых людей и много борюсь с пониманием их мышления, рассуждений.
Я читаю доменно-управляемый дизайн (DDD) и не могу понять, почему нам нужно создавать так много классов. Если мы будем следовать этому методу проектирования программного обеспечения, мы получим 20-30 классов, которые можно заменить максимум двумя файлами и 3-4 функциями. Да, это может быть грязно, но гораздо удобнее и понятнее.
В любое время, когда я хочу увидеть, что EntityTransformationServiceImpl
делает какой-то вид , мне нужно следить за множеством классов, интерфейсов, их вызовов функций, конструкторов, их созданием и так далее.
Простая математика:
- 60 строк фиктивного кода против 10 классов X 10 (скажем, у нас такие разные логики) = 600 строк беспорядочного кода против 100 классов + еще несколько для их обертывания и управления ими; не забудьте добавить инъекцию зависимостей.
- Чтение 600 строк беспорядочного кода = один день
- 100 уроков = одна неделя, все равно забудь, кто что делает, когда
Все говорят, что это легко поддерживать, но для чего? Каждый раз, когда вы добавляете новые функции, вы добавляете еще пять классов с фабриками, объектами, службами и значениями. Я чувствую, что этот код движется намного медленнее, чем грязный код.
Скажем, если вы пишете грязный код 50K LOC за один месяц, DDD требует много проверок и изменений (я не против тестов в обоих случаях). Одно простое дополнение может занять неделю, если не больше.
За один год вы пишете много грязного кода и даже можете переписывать его несколько раз, но в стиле DDD у вас все еще не хватает функций, чтобы конкурировать с грязным кодом.
Пожалуйста, объясни. Зачем нам нужен этот стиль DDD и множество шаблонов?
UPD 1 : Я получил так много отличных ответов. Не могли бы вы, ребята, добавить комментарий где-нибудь или отредактировать свой ответ со ссылкой для списка чтения (не уверен, с чего начать, DDD, Шаблоны проектирования, UML, Выполнение кода, Рефакторинг, Прагматика, .. так много хороших книг), конечно, с последовательностью, так что я также могу начать понимать и становиться старше, как некоторые из вас.