Learning tervezés alapján a domain (ddd domén vezérelt tervezési)

1. Bevezetés

Ebben a cikkben szeretnék mondani erről a három betű, lakóhelye a tárgyaláson, de sok rejtély, valamint eredményeként számos források, amelyek jó lenne megismerni, ha azt szeretné, hogy fejlesszék tovább a tervezés alapján a domain ( DDD: Domain Driven design),.

2. Miért DDD?

Számos sablonok végrehajtása domain (Domain Logic) vagy az üzleti logika (Business Logic):

1) Táblázat modul - egy tárgy, egy példányban, kezeli az üzleti logikát az összes rekordot, egy adatbázis tábla vagy nézet.

2) Tranzakciós script - szervezi a kölcsönhatás az üzleti logika eljáráson keresztül, a kérelmek fogadása a megjelenítési réteg.

3) Domain Model - közvetlenül az objektum tartomány modell, amely magában foglalja mind a viselkedés és az adatok.

Ennek alapján, akkor egy kis következtetésre jutott, hogy ezt a mintát ( „Domain Model”) leginkább alkalmas, például az ilyen nehéz terület, mivel a pénzügyi piacon. A legtöbb által gyártott szoftver célja különböző napon az üzleti igényeket, ezért valamilyen elvont, általános megoldásokat találni a helyüket a piacon (egy elég magas szintű verseny) kevésbé. Miért írom ezt az egészet? Mivel DDD - nem csak egy kiváló minőségű design, hanem egy jó példa arra, hogyan válasszuk ki a tárgykörben a szoftver, hogy könnyebb leküzdeni nehézségek, gyakori változások, a kommunikációs problémák és más betegségek domain, ahelyett, csúnya, nehezen érthető rendszer, amelyben minden változás vagy korrekció képes lehoz egy lavina a még több és több új hibák.

DDD nem tiltott az örökség fejlesztési gyakorlatok, mint például:

DDD csak kiegészíti azokat. Megtalálni a megfelelő modellt és az absztrakció összetett forgatókönyvek igényel jelentős ismeretek terén az objektum-orientált megközelítés és kellő tapasztalata a különböző elvek, minták és gyakorlatok, ahelyett, hogy csak DDD, mint amilyennek látszik.

3. Hol kezdjem?

Ha a „unalmas PR” design domain alapján (DDD) még mindig nem fáradt, azt hiszem, folytatni kell, és ha másként, akkor nézd legalább linkeket anyagokat.

Az első könyv, hogy fényt derítsen a DDD a nagyközönség volt az úgynevezett "Big Blue Book" (mém BBB :. Big Blue Book): Domain-Driven Design: Küzdelem komplexitás a Heart of Software byEric Evans (még nincs lefordítva orosz).

A könyv elbeszéli meggyőződött arról, hogy az általa képviselt DDD, valamint az összes kapcsolódó szempontokat, mint például: domain nyelv, sablonok, tervezési gyakorlat, újraírás, modellezés, hogyan lehet a rugalmas és még sok más. De akkor is, ha ismeri az összes felvetett kérdések a könyvben (ami nem annyira egyszerű időtöltés), akkor veszi észre, hogy a kérdésével csak elméleti szempontból, így az egész teret a gyakorlat (a könyv nem kötődik egy adott platform fejlesztés). A legtöbbünk számára az olvasást a tiszta elmélet, vasalás nélkül gyakorlati példákkal nem tetszik, ebben a tekintetben, meg lehet hívni a figyelmet, hogy a rövidített (és ingyenes) változata ez a könyv által készített, a portálon InfoQ. Domain Driven tervezésük gyorsan.

Van még néhány jó előadást Erica Evans (Eric Evans), a kezdéshez:

A InfoQ portálon megtalálható számos egyéb előadások, cikkek és interjúk. szentelt DDD.

Tehát az elméleti rész, rájöttünk hol találhatunk példákat a gyakorlati alkalmazása DDD? Egy kiváló könyv ez .NET Domain-Driven Tervezés C #, Problem - Design - Megoldás Tim McCarthy.

Ebben a könyvben naodete gyakorlati példa:

1) Hogyan a tervezési és fejlesztési folyamat, a követelmények meghatározása, a kód írása

2) Hogyan szervezzük építészeti réteg számára a döntések

3) Hogyan kell használni a sablonok és a gyakorlat DDD

4) Hogyan építsünk egy kis ketrecben DDD

5), hogyan lehet elkülöníteni a domain a domain modell

6) A jelenlegi minták és adatok, hogy kölcsönhatásba lépnek velük (Model-View-ViewModel) ilyen közegben a WPF (is alkalmazható Silverlight) a gyakorlatban.

Ez a könyv - egy kiváló workshop DDD, amely egy nagyon széles réteg az ötletek. Kezdődik a könyvet a tervezési követelmények, és végül a végrehajtása az ipari alkalmazások, a forráskód elérhető a codeplex.

Az egész koncepció a könyv épül 3 pilléren könyveket DDD:

Ebben a könyvben felületesen foglalkozott a kérdésekkel, technikák és minták használt DDD összes példa kíséri kód, amely megkönnyíti a megértést. A könyv kiváló, de az orosz fordítás csalódást, ezért javasoljuk, hogy olvassa el az eredetit.

Azonban DDD - ez nem csak gyakorlati megoldásokat vagy minták, ez a gondolkodás és szemlélet, és vannak nagyon sok árnyalatok, figyelembe kell venni, ha úgy dönt, hogy kövesse a DDD, így összpontosítva a legmagasabb prioritást kap a modell, a fejlesztési tartomány nyelvi modell keretében modellezési folyamat, a szétválás a tudás, újraírás, a stratégiai tervezés, stb ... ez a fő oka, hogy olvassa el a könyvet Eric Evans, hiszen kapsz egy teljes és mély megértése DDD filozófia.

DDD nem ragaszkodik egy bizonyos technológia, de ahhoz, hogy DDD nem lesz könnyű, anélkül, hogy a jó eszközök és gyakorlatok a fegyvertár, mint például: TDD-keretet, a ORM, végrehajtásának lehetőségét a függetlenségét a perzisztencia (perzisztencia tudatlanság), NOB-tartály (Inversion of Control ), és AOP funkciók (aspektus-orientált programozás), természetesen nem jelenti azt, hogy ezeket az eszközöket, amit kell, de közelebb visz a DDD végrehajtását. A gyakorlati értéke ezeknek az alapoknak az, hogy lehetővé teszi, hogy izolálja a domain modellt, amely egyik fő célkitűzése DDD. Book Jimmy Nilsson lehetne bemutatni, hogy a funkciók és típusú eszközöket. Jimmy is megmutatja, hogyan kell használni a végrehajtása a vállalati alkalmazás sablonokat. és épít, hála nekik, egész megoldás alapja a modern eszközök és gyakorlatok.

Néhány megvalósításai DDD minták Ruby on Rails:

4. időszerű kérdései DDD

C DDD is szorosan kapcsolódik ehhez a témához, mint DDDD: Elosztott Domain alapú tervezés (Distributed DDD). DDDD - DDD oszlik forgatókönyveket. Jelenleg nincs olyan sok erőforrást szentelt dddd, egy pár szó DDDD: borító üzenetek megvalósítása probléma DDD, split parancsok és lekérdezések (Command Query Separation (CQS)) segít, hogy végre ezt a megközelítést. Greg Young (Greg Young) azt mondta, hogy készül egy könyvet DDDD.

SOA és DDD - ez a másik nagy téma gyakran vitatják Udi Dahan

5. DDD minták, fogalmak és meghatározások

Íme néhány közülük:

6. Példák alkalmazások

Keresse meg a jó példákat DDD nagyon nehéz, nem azért, mert nem léteznek, hanem azért, mert az igazi erőssége DDD alkalmazásokban használt meglehetősen nehéz területen, és mint általában, nem kereskedelmi projektek. Azonban, ha talál valami jó projekteket lehet visszavezetni néhány ötlet megvalósítása DDD mintákat.

1) melléklete Tim McCarthy a projekt. részletesen könyvében. Leírja nemcsak a sablonok használata, de azt is hangsúlyozza, a fejlődés a tárgykörben szempontjából DDD modell szerint.

A projekt azért is érdekes, mert épül a .NET 3.5 és bemutatja a hatalom a modern megközelítését adatok kötő domént modell (adatkötéseket végrehajtása MVVM minta). Csak az ő stílusa méltó képessége kiosztani vízkivételek és újrafelhasználható kód.

2) A következő projekt, amely kell figyelni - ez egy olyan alkalmazás által kifejlesztett Yves Goeleven. létrehozása leírt alkalmazás blogján (csak fordítani az alapvető fogalmakat DDD). Egy másik alkalmazás a DDD-keretet. Kell figyelni, hogy a végrehajtás interakciós minták tároló és specifikáció.

3) Billy McCafferty lenyűgöző fejleszt, nyílt forráskódú keretrendszer összpontosított DDD, az úgynevezett S # arp Architecture. Van egy nagyon jó leírást. leírásával együtt minták és attitűdök foglyok keretében. A keretrendszer célja, hogy fejlessze ASP.NET MVC alkalmazások NHibernate.

4) C # Domain-alapú tervezés mintafelviteli (ndddsample). egy alkalmazás által kifejlesztett Jimmy Nilsson, bemutatja az alkalmazás partíciót a legfontosabb réteg szemszögéből DDD. Ez azt is bizonyítja a gyakorlati alkalmazása építőköve minták a tárgykörben áruszállítás, leírt könyvében.

Ez a projekt alapja a közös munka Eric Evans a „Domain nyelve” és a „Citerus” svéd tanácsadó cég.

A projekt célja az:

  • Itt található a gyakorlati alkalmazás DDD .NET.
  • A jelenleg ismert eszközök, technológiák és módszerek terén a .NET fejlesztési tárgyalt ALT.NET -kommuniti.
  • Gyakorlati példákat a tipikus alkalmazásokat DDD.
  • Mutassa az utat, hogy végre DDD egy adott platform, amely végrehajtja az azonos bármely más platformon nehézség nélkül.
  • Segíti a kiválasztásban gyakorlat végrehajtását. Különböző megközelítések lehetővé teszik a közösség megvitatja, és válassza ki a megfelelő az adott végrehajtását.

7. Források Domain alapú tervezés

8. Következtetés

Ha érdekel a bővülő „objektum-orientált horizontok” a komplex vállalati környezetben, és a tanulás új módjait fejlesztés és tervezés, a DDD - pontosan mire van szüksége.

Ez érdekes: