dla Architektów Oprogramowania
2 godz. 1 min · Full-stack i Programowanie
Rafał PiekaraSoftware KomandosZanurzymy się w definiowanie strategicznych wzorców Domain Driven Design, które stanowią fundament efektywnego zrozumienia problemów biznesowych. Omówimy kluczowe koncepty takie jak Subdomena czy Bounded Context.
Wzorce taktyczne to praktyczne aspekty DDD, które są kluczowe dla każdego architekta oprogramowania. W tej sekcji mocniej spojrzymy na kod. Dowiesz się, jak stosować i testować wzorce takie jak Value Object, Encja czy Agregat.
Bazy danych to serce wielu systemów, a ich prawidłowe użycie w kontekście DDD jest kluczowe. Omówimy najlepsze praktyki związane z integracją domeny i kontekstów z tabelami bazodanowymi. Poznasz techniki, które pozwolą Ci zachować integralność danych i spójność modelu domenowego, niezależnie od wybranej technologii bazodanowej.
Teoria jest ważna, ale praktyka czyni mistrza. Przejdziemy przez konkretne przykłady implementacji DDD w rzeczywistych projektach. Zobaczysz krok po kroku zastosowanie wzorców, zamodelowanie domeny i implementację. Praktyczne przykłady pomogą Ci zrozumieć, jak stosować DDD w codziennej pracy i jak wpływa to na komunikację z interesariuszami biznesowymi.
Każdy architekt oprogramowania spotkał się z systemami, które były nieczytelne i trudne do utrzymania - tak zwanymi "Big Ball of Mud". Nauczysz się, jak za pomocą DDD przeprowadzić refaktoryzację takiego systemu, przekształcając go w dobrze zorganizowane i zarządzalne struktury.
Kurs powstał z myślą o programistach aspirujących do roli architektów, architektach oprogramowania oraz liderach technicznych, którzy chcą pogłębić swoją wiedzę i umiejętności w zakresie stosowania Domain Driven Design. To materiał idealny dla tych, którzy znają już podstawy DDD i chcą podnieść swoje umiejętności na wyższy poziom, aby projektować złożone i skalowalne systemy. Niezależnie od tego, czy pracujesz nad dużymi projektami, chcesz usprawnić komunikację z zespołem i interesariuszami, czy szukasz nowych strategii na rozwiązywanie skomplikowanych problemów biznesowych - ten kurs jest dla Ciebie!
A mówię Ci po krótce kontekst technologiczny tego kursu.
Będziemy przede wszystkim korzystać z języka Ruby.
Jest to kurs o architekturze oprogramowania.
Potrzebny nam jest język programowania.
Dlaczego język RUBI, a nie Java?
Albo i Sharp albo PHP?
Otóż Rubi, jak mówi jego twórca Yuki Jiro Matsumoto, powstał po to, żeby programiści
mogli jak najbardziej skupić się na dołożeniu logiki, tworząc
łatwy w czytaniu kod.
I dlatego Ruby jest bardzo zbliżone do języka naturalnego, konkretnie
angielskiego, a kod w nim często wygląda po prostu jak zdania w języku angielskim.
I wybrałem ten język nie tylko dlatego, że w społeczności często słyszę głosy, że
Rubi to świetny język do pokazywania, demonstrowania i do implementacji
konceptów Domain dream design, ale też dlatego, że jest on wolny od wszelkiego
dodatkowego narzutu typu kompilator typu statyczne typowanie
i będziemy mogli się tutaj skupić na demonstracji koncepcji Domain Review
Design i skupić się na pisaniu kodu, który tę koncepcję spełnia.
Więc nie martw się, jeśli nie znasz języka Ruby.
Nie szkodzi, Jest to bardzo prosty język, a kod, który my będziemy pisać, nie będzie
wcale wymagał jakichś zaawansowanych konceptów i zaawansowanej
znajomości tego języka.
Wybrałem Ruby dlatego, bo w nim najłatwiej jest pokazać koncepcję.
I chciałbym, żebyśmy się skupili właśnie na koncepcjach DDD,
na realizowaniu wzorców implementacji tych wzorców pracy nad architekturą, a nie
na zmuszaniu się nad detalami języka.
Więc będą przykłady w języku Ruby.
Następnie nie będziemy korzystać z konkretnej bazy danych, bo Domain driven
Design to jest podejście architektoniczne i w tym podejściu architektonicznym nie
potrzebujemy bazy, nieważne jaka baza danych jest pod spodem.
DDD działa zawsze tak samo i też nie będziemy potrzebować żadnego
konkretnego frameworka.
Framework nie będzie potrzebny.
Wprawdzie wybrałem język Rubi, ale nie będziemy tutaj bazować na Ruby on Rails.
Będziemy pisać czysty kod w czystym języku programowania, bo Domain Driven Design
jest koncepcją agnostykiem jeśli chodzi o frameworki i ten sam kod napisany w DDD do
każdej innej technologii, innego języka, innego frameworku powinien zachowywać się
tak samo, bo DDD To jest opakowanie reguł biznesowych w procesy, w serwisy.
To jest organizacja reguł biznesowych, budowanie nie zmienników, pilnowanie tych
nie zmienników, a nie praca z frameworkiem, praca z bazą danych.
Te trzy rzeczy zapamiętaj będzie Rubi, nie ma żadnej konkretnej bazy i nie będziemy
pracować z żadnym konkretnym frameworkiem.