Czym są archetypy modeli domenowych? Do czego mogą się przydać i jak uzupełniają się z technikami z Domain Driven Design?
Sztuka programowania 486 dni, 49 minut temu 128 ź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 506 dni, 20 minut temu 59 ź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 534 dni, 1 godzinę, 42 minuty 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 545 dni, 2 godziny, 44 minuty temu 88 ź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 699 dni, 1 godzinę, 53 minuty 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 758 dni, 55 minut 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 1049 dni, 2 godziny, 10 minut temu 93 ź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 1056 dni, 2 godziny, 12 minut temu 96 źrodło rozwiń
Attributes of Clean Domain Model
Sztuka programowania 1241 dni, 1 godzinę, 19 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 1276 dni, 2 godziny, 12 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 1277 dni, 2 godziny, 9 minut temu 85 źrodło rozwiń
Domain-Driven Design #06: aggregate and aggregate root
Architektura 1305 dni, 3 godziny, 1 minutę temu 113 ź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 1359 dni, 1 godzinę, 49 minut temu 263 źrodło rozwiń
How to handle Domain Events in complicated cases.
Sztuka programowania 1380 dni, 2 godziny, 10 minut temu 135 ź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 1385 dni, 2 godziny, 37 minut temu 366 ź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 1392 dni, 2 godziny, 46 minut 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 1402 dni, 12 minut temu 97 źrodło rozwiń
Domain-Driven Design #03: bounded context
Architektura 1410 dni, 1 godzinę, 24 minuty temu 207 ź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 1420 dni, 2 godziny, 32 minuty temu 281 źrodło rozwiń