0

Я хочу использовать Entity Framework и автогенерированные классы в своем приложении.Entity Framework DDD с использованием частичного класса - невежество -прочность теста

Я не заинтересованы в:

  • невежество
  • настойчивость
  • тестирования

Я только забочусь об одном:

  • держать приложение хорошо организованы
  • держать вещи простых

Я читал о домене Drive Design, и я заинтересован в этом, потому что утверждает, что упрощает сложные приложения. Но когда я читаю код из реального примера приложения, меня шокирует сложность этого подхода.

Моя идея состоит в том, чтобы использовать частичные классы для расширения классов, сгенерированных из EF. Это кто-то, кто пробовал этот подход и может дать мне несколько советов?

+1

Итак, позвольте мне понять, что вы заинтересованы в DDD, но не о незнании и тестировании настойчивости? ты серьезно?? Это звучит так, как будто вы * хотите * DDD, но не хотите прилагать к нему * усилия. Не делайте что-нибудь наполовину выпеченное - сделайте это в первый раз. Это мое мнение. – RPM1984

+1

Я не вижу только черный или белый. Я не в своей голове. Мой босс попросил меня создать это приложение и не заботиться о тестировании. –

+0

Сообщите своему «боссу», что из-за этого решения вы будете тратить на * много * больше времени на поддержание приложения. Я знаю, потому что я заплатил за это в прошлом и узнал мой урок. – RPM1984

ответ

1

Я думаю, что вы используете технологию, не понимая, почему это хорошо или плохо. По моему опыту это почти всегда приводит к плохому дизайну приложения.

Любой, кто говорит, что они не заинтересованы в тестировании, - это лунатизм в гору проблем позже в будущем.

«Простота» DDD происходит за счет всей простоты, слоев абстракции. Прочитайте Eric Evans Domain Driven Design, а затем вы поймете, почему это приводит к лучшим проектам.

Лично я думаю, что вы потеряете в этом уравнении. Вы - профессия, вы должны учитывать последствия терминов «не рассматривайте тестирование». Что произойдет, если приложение сломается, если вы когда-нибудь получите его для клиентов? Кто будет обвинять босса? Самих себя? Будьте очень осторожны.

+0

Повторяю: на данный момент я не заинтересован в тестировании. В будущем я буду читать книгу Эванса. На данный момент меня интересует только один аспект ddd. –

+0

«Сохранение приложения хорошо организовано» не является аспектом DDD. Вам нужно быть более конкретным - хотите ли вы минимизировать файлы? Или вы имеете в виду архитектуру? – RPM1984

3

Итак, если вы правильно поняли, вы надеетесь использовать средство доступа к данным, в частности, Entity Framework, чтобы помочь реализовать ваше приложение.

Это звучит, как вы не на самом деле заинтересован в делает Domain Driven Design для этого проекта.

Я думаю, что это прекрасное положение. DDD включает идеи и шаблоны и инструменты, которые полезны вне DDD.

Однако, как и другие, я буду предупреждать о том, чтобы идти на полпути по дороге DDD. Это особенно верно в отношении концепции модели домена. Когда вы начнете пытаться внедрить истинную модель домена, вам практически понадобятся остальные части DDD, чтобы заставить вас работать для вас. Вы обнаружите, что без всех частей головоломки DDD ваше приложение будет двигаться к анти-шаблону анемичного домена.

Однако, если вы входите в него со знанием того, что вы не делаете DDD, просто поднимая некоторые идеи от него, вы можете двигаться прямо к этой «анемичной модели домена», и это будет хорошо.

Я буду удивлен, если я не задержусь за это, но позвольте мне объяснить.

Вы можете взять ORM (EF), принять концепцию репозитория (хотя я предпочитаю называть его DAO - объектом доступа к данным - во избежание путаницы между ними) и реализовать ваше приложение с помощью стандартного Layered/Луковая архитектура. Основная часть вашей логики приложения будет включена в Службы, реализованные в стиле сценария транзакций, с использованием классов данных, которые напрямую отражают вашу базу данных.

Это проверенный временем способ создания приложения. Это не DDD. Эти две методологии подходят для разных типов лучше, имеют разные плюсы и минусы и т. Д.

Использование EF или аналогичного инструмента должно сделать простым и быстрым выполнение больших частей вашего приложения. Просто не увязнуть, пытаясь сделать DDD, когда вы действительно не делаете DDD.

Смежные вопросы