Czym są archetypy modeli domenowych? Do czego mogą się przydać i jak uzupełniają się z technikami z Domain Driven Design?
Sztuka programowania 171 dni, 17 godzin, 25 minut temu 121 ź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 191 dni, 16 godzin, 57 minut temu 58 ź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 219 dni, 18 godzin, 19 minut temu 105 ź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 230 dni, 19 godzin, 20 minut temu 87 źrodło rozwiń
In previous posts I’ve talked about a problem which I’ve seen many times – modern coupling. In this post I will give you a list of tools for discovering proper service boundaries that will reduce that coupling to its minimum.
Architektura 384 dni, 18 godzin, 29 minut temu 74 źrodło rozwiń
We’ve all seen systems that were tightly coupled, and maybe you are working in that kind of system right now. It seems that keeping codebase without high coupling its hard. Because most of the systems ends as not maintainable mess, we just need some time to make it like that. And I want to be clear, I’m not trying blaming any of you because I’ve done the same. But after 60 years from when coupling was invented, I think it’s time to stop chasing the newest technologies and focus on what is causing those p...
Architektura 443 dni, 17 godzin, 32 minuty temu 71 źrodło rozwiń
During the analysis of a certain process, you might end up with just one command that leads only to one event. It has happened to me during our first Process Level sessions. We did find commands to the events that we’ve spotted in the Big Picture session and it felt just right. Is It Really That Simple? There’s a catch though. You might end up with a model of the system that looks just like a CRUD. Is the whole system just a CRUD? Hmm… In most cases probably not. In my case, it was the s...
How to handle concurrency conflicts and enforce invariants using Entity Framework Core and Domain-Driven Design Aggregate Pattern.
Architektura 734 dni, 18 godzin, 47 minut temu 92 źrodło rozwiń
CQRS is a simple pattern that strictly segregates the responsibility of handling command input into an autonomous system from the responsibility of handling side-effect-free query/read access on the same system. If you are familiar with Domain-Driven Design, you’ve most likely heard about, Command-Query Responsibility Segregation (CQRS). Though the CQRS pattern is well-known, there are still a lot of misconceptions around this pattern, especially when it comes to applying it in real-world software proje...
Sztuka programowania 741 dni, 18 godzin, 48 minut temu 96 źrodło rozwiń
Attributes of Clean Domain Model
Sztuka programowania 926 dni, 17 godzin, 56 minut temu 126 źrodło rozwiń
Kolejny odcinek z cyklu o Bounded Contextach - tym razem czym jest ostateczna spójność i dlaczego warto ją stosować przy wykorzystaniu kontekstów.
Sztuka programowania 961 dni, 18 godzin, 49 minut temu 160 źrodło rozwiń
Eric Evans in the book DDD: Tackling Complexity in the Heart of Software presents a model characteristic for Domain Driven Design, which consists of layers: User Interface, Application, Domain and Infrastructure.
Sztuka programowania 962 dni, 18 godzin, 46 minut temu 84 źrodło rozwiń
Domain-Driven Design #06: aggregate and aggregate root
Architektura 990 dni, 19 godzin, 38 minut temu 106 ź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 1044 dni, 18 godzin, 25 minut temu 258 źrodło rozwiń
How to handle Domain Events in complicated cases.
Sztuka programowania 1065 dni, 18 godzin, 46 minut temu 134 ź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 1070 dni, 19 godzin, 14 minut temu 365 ź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 1077 dni, 19 godzin, 22 minuty temu 199 źrodło rozwiń
Kolejny post z serii o Bounded Contextach - przykład w jaki sposób narzędzia BI potrafią zaburzać pracę kontekstów i jak sobie z nimi radzić. A także nieco o socjotechnicznych aspektach BC 😊
Sztuka programowania 1087 dni, 16 godzin, 49 minut temu 96 źrodło rozwiń
Domain-Driven Design #03: bounded context
Architektura 1095 dni, 18 godzin, 1 minutę temu 205 ź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 1105 dni, 19 godzin, 8 minut temu 281 źrodło rozwiń