Thu. Dec 5th, 2019

Host your Website

Read and learn

FatCow Web Hosting $1.00/mo* Trust your web hosting to the #1 web host provider, GoDaddy!

4Developers Kraków 2019: Domain-Driven Design taktycznie i praktycznie, Kamil Grzybek

2 min read



Podejście Domain-Driven Design służące do radzenia sobie ze skomplikowanymi wymaganiami i regułami biznesowymi zaproponowane przez Erica Evans’a w 2004 roku przechodzi renesans. Powodem tego jest rozwój technologiczny w postaci nowoczesnych platform i bibliotek, popularyzacja architektury wielousługowej i stylów architektonicznych takich jak CQRS ale przede wszystkim – co raz większe wyzwania stawiane przed oprogramowaniem.

Architekci i programiści co raz częściej sięgają po wzorce strategiczne i taktyczne DDD z nadzieją, że pomoże im to poradzić sobie ze złożonością ich systemów. Niestety, nawet przy dobrze dobranej strategii nasze podejście może skończyć się niepowodzeniem gdy nieumiejętnie implementujemy model domenowy.

Na prezentacji omówimy na przykładach w .NET (C#) jak przy użyciu taktyk DDD zaimplementować “czysty” model domenowy, który jest adaptacyjny do potrzeb biznesowych i zarazem jest w stanie udźwignąć wysoką złożoność. Taka implementacja nie jest łatwa, ale na szczęście mamy do dyspozycji arsenał praktyk, zasad i paradygmatów programowania obiektowego, które posłużą nam do osiągnięcia tego celu.

Omówimy m. in. najważniejsze atrybuty Modelu Domenowego takie jak nazewnictwo, enkapsulacja czy niezależność od infrastruktury. Zapoznamy się z takimi pojęciami jak Zasada Minimalnej Wiedzy, Kompozycja ponad Dziedziczenie, low coupling i high cohesion. Rozpatrzymy zasady dotyczące Agregatów – ich granicy, persystencji, walidacji. Pozbędziemy się “obsesji prymitywnych typów”, która nijak się ma do języka biznesu. Otoczymy nasz model domenowy odpowiednią architekturą, która nie tylko nie będzie przeszkadzać w jego rozwoju, ale będzie ten rozwój wspierać. To wszystko nie mogło by się odbyć bez testów jednostkowych, których użycie jest koniecznością przy systemach, które mają być gotowe na zmianę. Wszystko w ramach DDD zgodnie z zasadami czystego kodu jak na “rzemieślników oprogramowania” przystało. Challenge accepted!

Poziom średnio zaawansowany

Copyright © All rights reserved. | Newsphere by AF themes.