Własna tożsamość to główny wyróżnik Encji w DDD. Jest ona wyrażana przez Id obiektu, którym w praktyce najczęściej okazuje się … int z bazy danych. Nie jest to najlepsze rozwiązanie, skoro w DDD chodzi o modelowanie biznesu. Postaram się przedstawić alternatywne podejście i jego implementację, która pozwala w możliwie bezbolesny sposób wprowadzić biznesowe identyfikatory do naszych encji.
Strona głównaUżytkownik
Konstanty Orzeszko | użytkownik
Sztuka programowania 2491 dni, 14 godzin, 38 minut temu 228 źrodło rozwiń
Persystencja zawsze budzi wiele emocji i skrajnych opinii. W tym artykule pokażemy, jakie opcje są do wyboru przy persystowaniu agregatów z DDD i jak pragmatycznie do nich podejść. Przejdziemy kolejno przez bezpośredni zapis agregatów, robienie Snapshotów, tworzenie osobnego modelu danych na podstawie zdarzeń, a na koniec dotrzemy do Event Sourcingu.
Sztuka programowania 2448 dni, 13 godzin, 16 minut temu 283 źrodło rozwiń
Dobra architektura kojarzy się zwykle z bardzo dużym wysiłkiem przy starcie projektu. Czy jednak musi tak być? Czy nie da się tego zrobić lekko i rozwijać architektury wraz z rozwojem potrzeb projektu? Co tak naprawdę sprawia, że architektura kojarzy się z ogromem pracy? Warto odpowiedzieć sobie na te pytania, bo system nie może nie mieć architektury.
Architektura 2080 dni, 13 godzin, 40 minut temu 266 źrodło rozwiń
Kiedy możemy powiedzieć, że architektura naszego systemu jest dobra ? Czy da się znaleźć rozwiązanie, które będzie się dobrze sprawdzać w wielu systemach przez długi czas ? Dobre określenie tego czego się szuka jest kluczowe dla sukcesu poszukiwań. Dlatego warto zastanowić czego oczekujemy od architektury naszych systemów i jakich kryteriów użyć, żeby określić czy jest ona faktycznie dobra.
Architektura 2073 dni, 13 godzin, 51 minut temu 231 źrodło rozwiń
Jak podejść do projektowania architektury systemu ? Co trzeba określić już na start, a co może poczekać ? Od czego mogą zależeć wybory architektoniczne i kiedy jest najlepszy moment na ich podjęcie ? Pytania te nie mają niestety jednej prostej odpowiedzi. Przyjęte podejście ma jednak niezwykle istotny wpływ na powstający system.
Architektura 2065 dni, 13 godzin, 37 minut temu 233 źrodło rozwiń
Na poziomie aplikacji architektura powinna wspierać modelowanie domeny czyli serca całego systemu. Czym powinna się charakteryzować architektura, żeby wspierać podejście Domain First? Czy tradycyjne warstwy są dobrą odpowiedzią na te potrzeby?
Architektura 2058 dni, 13 godzin, 2 minuty temu 185 źrodło rozwiń
Architektura nie musi być kosztowna, trzeba tylko podejść do jej tworzenia w rozsądny sposób. Istotne jest, żeby nie popaść w over-engineering z jednej strony i kompletny chaos z drugiej. Na szczęście są zasady i narzędzia, które mogą nam w tym istotnie pomóc.
Architektura 2045 dni, 14 godzin, 32 minuty temu 92 źrodło rozwiń
Projekty i namespace’y to niedoceniane elementy, które mogą znacząco poprawić czytelność naszego kodu. Warto stosować je w sposób przemyślany, a nie „jakkolwiek, bo to przecież nieistotne”. Kod czyta się co najmniej 10 razy częściej, niż się go modyfikuje. Warto więc zainwestować w jego czytelność i wymusić na poziomie kompilacji tak wiele sprawdzeń jak to tylko możliwe.
Sztuka programowania 2013 dni, 14 godzin, 7 minut temu 286 źrodło rozwiń
W DDD najważniejsze jest oczywiście poznanie naszej domeny, zbudowanie Ubiquitous Language i Modelu wiernie odzwierciedlającego biznes. Na koniec dnia trzeba jednak ubrać to w kod. Ten projekt jest ilustracją różnych podejść do implementacji wzorców znanych z DDD i nie tylko.
Sztuka programowania 1985 dni, 14 godzin, 20 minut temu 202 źrodło rozwiń
Value Object to bardzo użyteczny Building Block z DDD. Jego użycie znacznie zwiększa ekspresywność kodu i redukuje ilość defensywnej logiki. Jak składnia C# wpiera implementację Value Objectów? Których konstrukcji językowych używać, żeby maksymalnie zwiększyć czytelność? Na szczęście C# ma w tym obszarze sporo do zaproponowania, więc kod może być naprawdę elegancki.
Sztuka programowania 1978 dni, 14 godzin, 12 minut temu 369 źrodło rozwiń
Polityka to Building Block z DDD, który pozwala otwierać model na rozbudowę w tych miejscach, w których biznes może tego faktycznie potrzebować. Pojedyncze Polityki zwykle są stosunkowo proste, ich kompozycja może jednak modelować bardzo złożone wymagania biznesowe. Jak zaimplementować je w C#, żeby maksymalnie zwiększy czytelność?
Sztuka programowania 1952 dni, 13 godzin, 24 minuty temu 268 źrodło rozwiń
Czym zajmuje się programista? Pisaniem kodu, konfiguracją środowisk, debugowaniem, integracją z zewnętrznymi systemami? Z pewnością, ale czy jest to istota jego pracy?
Sztuka programowania 1138 dni, 14 godzin, 19 minut temu 92 źrodło rozwiń
W pracy nad każdym systemem IT opracowujemy "MODEL". Czym on jednak jest? Po co go robimy? Czy wszystkie modele są błędne? Czasami warto oderwać się nieco od technikaliów i spojrzeć na tworzenie systemów IT z nieco "filozoficznej" perspektywy.
Sztuka programowania 1127 dni, 13 godzin, 17 minut temu 108 źrodło rozwiń
Tworząc model domeny co konkretnie modelujemy? Czy chcemy mieć jeden model dla całego przedsięwzięcia czy wiele modeli? Czy można nie mieć modelu? Warto odpowiedzieć sobie na te pytania przed przystąpieniem do modelowania, żeby wiedzieć do jakiego celu zmierzamy.
Sztuka programowania 1099 dni, 11 godzin, 55 minut temu 63 źrodło rozwiń
Czym są archetypy modeli domenowych? Do czego mogą się przydać i jak uzupełniają się z technikami z Domain Driven Design?
Sztuka programowania 1079 dni, 12 godzin, 24 minuty temu 135 źrodło rozwiń