ПредишенСледващото

1. Въведение

В тази статия бих искал да ви разкажа за тези три букви, които пребивават в съдебното заседание, но за мнозина е загадка, както и в резултат на редица ресурси, което би било хубаво да се опознаем, ако искате да продължи да се развива дизайна въз основа на домейна ( DDD: домейн Driven Design).

2. Така че, защо DDD?

Има няколко шаблони изпълнение на домейн (Domain Logic) или бизнес логика (Business Logic):

1) Таблица Module - е обект, в един екземпляр, дръжки бизнес логиката на всички записи в таблица на база данни или вижте.

2) сценарий на транзакция - организира взаимодействието с бизнес логиката чрез процедурата, приемането на искания от представянето слой.

3) домейн Модел - директно, модел обект домейн, който включва поведение, така и данни.

Въз основа на това, ние правим една малка заключение, че този модел ( "Домейн модел") е най-подходящ, например, за такъв труден район, както на финансовия пазар. Най-продуциран от нашия софтуер е предназначен за различни дни на нуждите на бизнеса, следователно някаква абстрактна, общи решения намерят своето място на пазара (с доста високо ниво на конкуренция) по-малко и по-малко. Защо съм да пиша за всичко това? Защото DDD - не е само дизайн с високо качество, но също е добър пример за това как да изберете съответната област в софтуера, за да направи по-лесно да се преодолеят трудностите, чести промени, комуникационни проблеми и други заболявания на домейн, а не развиване грозен, трудно за разбиране система, в която всяка промяна или корекция е в състояние да свалят до лавина от вас все повече и повече нови дефекти.

DDD по никакъв начин не отрича практики за развитие наследство, като например:

DDD само ги допълва. Намирането на правилния модел и черпене в сложни сценарии изисква значителни познания в областта на обектно-ориентиран подход и достатъчно опит в прилагането на различни принципи, модели и практики, а не просто да DDD, колкото може да изглежда.

3. Къде мога да започна?

Ако ми "скучен PR" дизайн въз основа на домейна (ДДД) все още не сте уморени, мисля, че трябва да продължи, а ако по друг начин, след това погледнете в най-връзки към материали.

Първата книга да се хвърли светлина върху DDD за широката общественост е така наречения "Big Blue Book" (мем BBB :. Big Blue Book): Домейн, управляван дизайн: Борбата Комплексността в сърцето на софтуер byEric Еванс (все още преведени на руски).

разказва за книгата убеден, че тя представлява DDD, както и всички свързани аспекти, като например: език на домейн, шаблони, дизайн практика рефакториране, моделиране как да се направи за развитието на гъвкави и много други. Но дори и ако сте запознати с всички въпроси, повдигнати в книгата (което не е съвсем проста игра), ще забележите, че проблемите са решени само от теоретична гледна точка, оставяйки цялото пространство за практикуване на (книгата не е обвързан с определена платформа за развитие). За повечето от нас четат чистата теория, без армировка с практически примери не обичат, във връзка с това, можете да привлека вниманието ви към съкратен (и безплатен достъп) версия на тази книга, изготвен от InfoQ на портала. Домейн Driven Design бързо.

Има и някои добри презентации Ерика Евънс (Eric Evans), с които да започнете:

На InfoQ портал, можете да намерите разнообразие от други презентации, статии и интервюта. посветена на DDD.

Така че, с теоретичната част, сме измислили, където можете да намерите примери за практическото прилагане на DDD? Една отлична книга за това е, .NET домейни, управляван Дизайн с C #, проблем - Дизайн - Решение написан от Тим ​​Маккарти.

В тази книга, която naodete практически примери:

1) Как е процеса на проектиране и развитие, от определение изисквания, за да пишете код

2) Как да се организира архитектурни слоеве в своите решения

3) Как да използвате шаблони и практика DDD

4) Как да се изгради една малка клетка за DDD

5) Как да се изолират домейна, от модела на домейн

6) Настоящите модели на данни и да си взаимодействат с тях (Model-View-ViewModel) в такава среда, като WPF (приложим също и за Silverlight) на практика.

Тази книга - отлична работна среща по DDD, съдържащ една много широка прослойка на идеи. Започва книгата с изискванията на проекта, и завършва с изпълнението на индустриални приложения, изходния код е достъпно на CodePlex.

Цялата концепция на книгата е построена на 3 стълба книги-DDD:

В тази книга повърхностно отговорила на всички въпроси, техники и модели, използвани в DDD, всички примери са придружени с код, който улеснява разбирането. Книгата е отлично, но руски разочарова превод, затова препоръчваме да прочетете оригинала.

Въпреки това, DDD - това е не само практически решения или модели, този начин на мислене и подход, а има твърде много нюанси, които трябва да се разглеждат, ако решите да следвате DDD, като се фокусира върху най-висок приоритет се дава на модела, развитието на контекст език модел домейн моделиране на процесите, разделението на знанието, рефакториране, стратегическо проектиране и др ... това е основната причина, за да прочетете книгата на Ерик Еванс, тъй като тя ще ви даде пълно и дълбоко разбиране на DDD философия.

DDD не е привързаност към определена технология, но за да се съобразят с DDD няма да е лесно, без да се налага добри инструменти и практики в своя арсенал, като: TDD-рамка, на ORM, възможността за прилагане на независимостта на постоянство (Устойчивост невежество) на МОК-контейнер (инверсия на контрол ) и AOP функции (аспект ориентирано програмиране), със сигурност не означава, че всички тези инструменти, от които се нуждаем, но те ще ни доближи до изпълнението на ДДД. Практическата стойност на тези фондове е, че те позволяват да се изолират модела на домейн, което е основна цел на DDD. Book Джими Нилсон може да ви запознае с характеристиките и видовете инструменти. Джими също показва как да използвате за изпълнението на корпоративни приложения шаблони. и да се изгради, благодарение на тях, цялото решение на базата на модерни инструменти и практики.

Някои приложения на DDD модели на Руби на релси:

4. Актуални въпроси DDD

С DDD също тясно свързани с тази тема, тъй като DDDD: Разпределени домейн Driven Design (Distributed DDD). DDDD - DDD се разпространява сценарии. В момента там не са толкова много ресурси, посветени на DDDD, в няколко думи за DDDD: покрива съобщенията реализация проблем и DDD, сплит команди и заявки (Команда за заявки Разделяне (CQS)) помага да се приложи този подход. Грег Young (Greg Young) каза, че той се готви книга за DDDD.

SOA и DDD - това е още една голяма тема често се обсъжда Уди Dahan

5. DDD модели, понятия и определения

Ето някои от тях:

6. Примери за приложения

Намери добри примери за DDD е много трудно, не защото те не съществуват, а защото истинската сила на DDD изпълнява в приложения, използвани в един доста труден райони и, като правило, не-комерсиални проекти. Въпреки това, можете да намерите някои добри проекти, които могат да бъдат проследени обратно някои идеи за реализация DDD модели.

1) Приложение Тим McCarthy на неговия проект. описани подробно в книгата си. Той описва не само използването на шаблони, но също така подчертава развитието на предметната област от гледна точка на DDD модел.

Проектът също е интересен, защото е построен на .NET 3.5 и демонстрира силата на съвременния подход към данните задължителни модел домейн (задължителни данни, внедряване на модела за MVVM). Просто стила му се отличава с възможността да се разпределят абстракции и многократна употреба код.

2) следващия проект, който трябва да се обърне внимание - това е приложение, разработено от Yves Goeleven. създаване на заявление, описана в неговия блог (само посветена на основните понятия DDD). Друго приложение е неговата DDD кадър. Ако обърнете внимание на взаимодействието си изпълнение модели хранилището и спецификация.

3) Били McCafferty зашеметяващ разработва рамка с отворен код се фокусира върху DDD, наречен S # ARP архитектура. Той има много добро описание. включително описание на модели и нагласи на лишените от свобода в рамка. Рамката има за цел да развие ASP.NET MVC приложения, използващи NHibernate.

4) прилагане C # домейн управлявано дизайн проба (ndddsample). е приложение, разработено от Джими Нилсон, демонстрира дял за кандидатстване по ключови слоеве от гледна точка на DDD. Той също така показва, практическото прилагане на градивен елемент модели в предметната област, превоз на товари, описани в книгата си.

Този проект се основава на съвместната работа на Ерик Еванс от "Домейн език" и "Citerus" шведската консултантска компания.

Целта на този проект:

  • Покажи практическото използване на приложението DDD с .NET.
  • Използването на настоящите инструменти, технологии и методики в областта на развитието на .NET, обсъдени ALT.NET -kommuniti.
  • Осигуряване на практически примери за типични приложения DDD.
  • Покажи начините за прилагане DDD за конкретен платформа, която ще прилага една и съща на всяка друга платформа без затруднения.
  • Съдейства при практиките за подбор изпълнени. Различни подходи ще позволят на общността, за да ги обсъдим и да избере най-подходящите за конкретната реализация.

7. Ресурси за домейни Driven Design

8. Заключение

Ако проявявате интерес към разширяване на вашите "обектно-ориентирани хоризонти" в сложни корпоративни среди, както и изучаването на нови начини за развитие и дизайн, DDD - точно това, което ви трябва.

Това е интересно:

Подкрепете проекта - споделете линка, благодаря!