Architektura oprogramowania

Domain Driven Design – krótki kurs #01

Co to?

To początek nowej serii, która przybliży Ci czym jest DDD. Mimo, że temat jest często powtarzany i odsmażany jak kotlet, to postaram Ci go opowiedzieć na nowo, zupełnie z innej perspektywy. Tak, aby było mniej teoretycznie, mniej naukowo, a jak najbardziej przystępnie 😊

Czym jest Domain Driven Design?

Wyobraź sobie miasto. DDD pozwala rozpatrywać je z punktu widzenia całej aglomeracji jak i pojedynczego domostwa, które wchodzi w skład miasta.

Są to dwa poziomy DDD:

  • Projektowanie strategiczne/Strategic design (punkt widzenia całego miasta)
  • Projektowanie taktyczne/Tactical design (punkt widzenia mieszkania)

Projektowanie strategiczne – Strategic design

Projektowanie strategiczne składa się również na szeregi innych elementów:

  • Generic Subdomain
    • Obejmuje ona cześć systemu, którego zadaniem jest prowadzenie biznesu, ale nie stanowi ona podstawy działalności. Przykładem jest tu system dostaw. Zakładamy, że przykładowa firma zajmuje się sprzedażą ubrań. Z punktu widzenia dostarczenie produktu do klienta jest bardzo istotną kwestią jednak nie jest ona kluczowa dla firmy.
  • Supporting Subdomain
    • Stanowi wszystko to co pomaga firmie dobrze prosperować. Czyli np. wdrożenie do firmy frameworku pozwalającego na sprawne zarządzanie zespołami i pracownikami.
  • Core Domain
    • To na czym firma zarabia. To co we firmie ma najwyższy priorytet i stanowi największą wartość.

Projektowanie taktyczne – Tactical design

To wszystko to co ma się znajdować w domostwie. Na dobrą sprawę projektowanie strategiczne i taktyczne są ze sobą silnie skorelowane. Projektowanie taktyczne często nawiązuje do osoby/zespołu realizującego poszczególne zadanie.

Co dalej?

W następnej części tego kursu przybliżę Ci kolejne pojęcia, które stopniowo wprowadzą Cię w głębsze zrozumienie DDD 😊

Tags:
Show Buttons
Hide Buttons