Programowanie

Moje małe DDD

DDD czyli Dobre Dla Domu – sieć salonów z drzwiami i podłogami… Eeee… To przynajmniej podpowiada mi wujek Google jak pytam o DDD. Ale zapewne na tym blogu spodziewalibyście się opisu techniki wytwarzania oprogramowania zwanej Domain-Driven Design.

Do podejścia owego miałem wiele teoretycznych podejść. Oglądałem prezentacje, czytałem blog posty, zacząłem czytać tzw. blue book czyli Domain-Driven Design: Tackling Complexity in the Heart of Software by Eric Evans. Po kolei każde moje wyobrażenie o tym, jak powinno wyglądać DDD się zmieniało. I co najśmieszniejsze jedno z drugim się wykluczało. A tak DDD jest tłumaczone przez Wikipedię:

 

Domain-Driven Design (skrót DDD) jest to podejście do tworzenia oprogramowania kładące nacisk na takie definiowanie obiektów i komponentów systemu oraz ich zachowań, aby wiernie odzwierciedlały rzeczywistość. Dopiero po utworzeniu takiego modelu należy rozważyć zagadnienia związane z techniczną realizacją.

Podejście to umożliwia modelowanie systemów informatycznych przez ekspertów, którzy znają specyfikę problemu lecz nie muszą znać się na projektowaniu architektury systemów informatycznych.

Ponieważ rozważania teoretyczne nie dały mi żadnej konkretnej odpowiedzi, właśnie wyruszam po doświadczenia praktyczne. Mam taką możliwość, że wieczorami siedzę z ekspertem domenowym przy pet-project, który może okaże się odpowiedzią na moje wątpliwości co do DDD. Co prawda projekt jest tajny (i jest to kolejny projekt – pierwszy nie jest związany z DDD, a z językiem programowania i będzie robiony dla Daj Się Poznać), ale postaram się przemycać jakoś rozwiązania technologiczne i teoretyczne. Dla tego też projektu wybrałem się na warsztaty, bo web programowania w pracy mam niewiele 🙁

Na dzień dzisiejszy uknułem taka prostą teorię. DDD służy temu byśmy wszyscy rozmawiali 1 językiem, nie robili sobie problemu z tłumaczeniami i zatrudnianiem kolejnych tłumaczy. Tak kod jak i wszelkie inne elementy powinny być zrozumiałe dla wszystkich w projekcie (a, że nas jest tylko 2-ka tym bardziej powinno to być proste 🙂 ). Jednym słowem robimy wieżę Babel sprzed pomieszania języków.

Teorię tą uknułem ponieważ każdy może robić, tak jak lubi… A tu jak powinno się pić whiskey.

A co do samego projektu: Spec domenowy wskazał mi kilka przypadków użytkownika, w których użył kilku kluczowych słów. Zamieniłem je na rekordy i pola w nich, bo będą to obiekty domenowe. Teraz zamierzam za pomocą BDD czyli Behaviour-Driven Development wymodelować te przypadki użytkownika jako procesy w naszym małym systemie. Wszystko podzielić na składane komponenty… O teorii tego rozwiązania w kolejnych postach.

Jeśli ktoś ma pojęcie większe o DDD lub pracuje w tym na codzień proszę o info, jak uniknąć błędów wieku dziecięcego 🙂

3 thoughts on “Moje małe DDD

Leave a Reply

Your email address will not be published. Required fields are marked *