I (теперь более чем когда-либо) разработчики пишут огромное количество слоев, например:
implementation PresentationLayer ->
interface IMyDTO ->
implementation MyDTO ->
interface IMyService ->
implementation MyService ->
interface IMyDomainRepository ->
implementation MyDomainRepository ->
interface IMyDomainObject ->
implementation MyDomainObject ->
interface IMyIndependentStorageLayer ->
implementation MyMSSQLStorageLayer
код >
Просматривая блоги С#, это кажется лучшим, поскольку нарезанный хлеб. В принципе, все слабо связано. Не используйте объект домена напрямую. Запустите все через сервисный уровень. Доступ к данным через репозиторий. Все слои совершенно независимы.
Не поймите меня неправильно, мне нравится идея, но не компромисс вовремя огромна, особенно в более крупном проекте? Является ли ROI в обслуживании действительно достаточно большим, чтобы оправдать это?
Объяснения, которые я прочитал, являются довольно неудобными, например, "таким образом я могу прикрепить другую базу данных, если мне нужно". В самом деле? Я не думаю, что это общая проблема, которую кто-то внезапно требует переключиться с MSSQL на Oracle, и теперь вы сидите там и хотите, чтобы у вас было миллион уровней, которые все не знают друг о друге.
Есть ли тенденция к переходу за борт со свободной связью, или я просто читаю неправильные блоги? Как вы относитесь к этому, и у вас были случаи, когда вы были действительно рады, что вы сделали дополнительную работу в начале?