У меня сейчас хорошее сравнение, потому что я работаю над двумя проектами, используя разные подходы.Я далёк от того, чтобы утверждать, что «это плохо и это хорошо», потому что это написано в некоторых шаблонах.Я знаю шаблоны, мне нравятся шаблоны, но я никогда не слепо следую им, чтобы быть правым.Я всегда использую то, что мне нужно в данный момент для достижения текущих целей.
В первом приложении, использующем доменные объекты, разработка происходит очень быстро.Несколько изменений в нескольких местах, и у вас есть дополнительные свойства, входные данные формы и т. Д. Вы не беспокоитесь о слоях, просто расширяете / изменяете код и переходите к другой проблеме.
Во втором приложении, где естьвсегда объект для использования здесь, там и где-то еще, есть десятки классов, которые выглядят одинаково, делают то же самое, и множество кода преобразования между различными версиями одних и тех же объектов.Еще хуже то, что некоторые разработчики используют некоторую логику для «этой версии» класса, а другая логика - для «этой версии».Развитие очень болезненно и требует много испытаний потом.Изменение простой вещи требует большого внимания и большого количества кода, который необходимо изменить.Мне действительно не нравится это приложение для этого, потому что я никогда не видел бизнес-преимущества от этого подхода, по крайней мере, в прошлом году (и мы находимся в стадии производства с года).Это приложение в три-четыре раза дороже в разработке и обслуживании, чем первое.
Итак, мой забавный ответ на вопрос: это зависит.Если вы работаете в команде из 10-20 человек, вам нравится приходить на работу, пить немного кофе, разговаривать с другом, делать несколько простых вещей и идти домой, много промежуточных объектов и код преобразования будут полезны для вас.Если ваша цель - быть быстрой и дешевой, если вы хотите сосредоточиться на бизнес-уровне, новых функциях, быстрых изменениях и т. Д., Если вы касаетесь программного обеспечения и хотите заработать деньги на своем проекте (мы делаем все это, чтобы окончательно продать,верно?), второй подход был бы, вероятно, лучше.