W CQRS często definiuje się interfejsy dla handlerów, aby wymusić ujednoliconą strukturę kodu. Takie podejście stosowane jest m.in. przez bibliotekę MediatR. Nawet jeśli nie używasz żadnych bibliotek, ale ręcznie dziergasz swoje rozwiązania, możesz chcieć iść tą drogą. W moim najnowszym artykule wyjaśniłem, jak zarejestrować wszystkie handlery według konwencji za pomocą biblioteki Scrutor.
Strona głównaUżytkownik
oskar-at-net | użytkownik
Architektura 1092 dni, 3 godziny, 1 minutę temu 118 źrodło rozwiń
Dyskusje o pozycjach mogą być krępujące. Nie inaczej jest w przypadku Event Sourcing. Pozycja, wersja, rewizja, numer sekwencji. Nazewnictwo bywa mylące, a zrozumienie tych konceptów jest ważne do efektywnego używania event store'ów. Przeczytaj mój nowy artykuł i dowiedz się co jest co!
Architektura 1137 dni, 4 godziny, 14 minut temu 39 źrodło rozwiń
Entity Framework i projekcje zdarzeń? Czy to nie brzmi jak ogień i woda? W moim najnowszym artykule opisałem, jak połączyć te dwa żywioły i stworzyć czyste, samodokumentujące się i łatwe w utrzymaniu API. Miłej laktury!
Architektura 1147 dni, 5 godzin, 3 minuty temu 88 źrodło rozwiń
„Obsesja stanu” to nowy anty-wzorzec #EventSourcing, z którym postanowiłem się zmierzyć! To jeden z typowych problemów, gdy tkwimy w myśleniu o obecnym stanie, tabelach, zamiast rejestrować wynik operacji biznesowej. Przeczytaj więcej o tym, jak to diagnozować leczyć!
Architektura 1162 dni, 4 godziny, 21 minut temu 78 źrodło rozwiń
Dyskusje o tym jak strukturyzować nasz kod potrafią się szybko zrobić gorące. Dorzućmy więc nieco ognia do pieca! Opisałem swoje podejście do cięcia kodu, oraz opisałem dlaczego pozwala mi ono lepiej się skupić i pracować efektywnie.
Sztuka programowania 1168 dni, 4 godziny, 43 minuty temu 126 źrodło rozwiń
Jakiś czas temu napisałem, że "Czy to się skaluje?" nie jest pytaniem, ale mantrą. Zdałem sobie sprawę, że obecnie skalowanie w dół, może być bardziej krytyczne niż skalowanie w górę(biorąc pod uwage ARM, serverless, edge computing). Przeczytaj więcej w najowszym artykule.
Architektura 1176 dni, 4 godziny, 28 minut temu 70 źrodło rozwiń
Komputer mówi nie! Gartner ocenił, że w 2030 roku 85% projektów z AI będzie zwracało błędne wyniki. W swoim eseju napisałem dlaczego uważam, że jeszcze daleka droga zanim AI będzie w pełni używalne. Podałem też dlaczego ślepe zaufanie w sprawiedliwość algorytmu to droga donikąd.
“Knowing anti-patterns is as important as knowing any other patterns. Today I tackled #PropertySourcing. It's one of the most common anti-patterns while starting to implement #EventSourcing. Read more in my latest article!
Architektura 1190 dni, 4 godziny, 9 minut temu 96 źrodło rozwiń
This week, I'm continuing the Docker topic. Last time I explained how to build an optimal image for your application. Today I wrote how to publish it to the DockerHub and Github Container Registry using Github Actions.
With the simple tricks, you can make your Docker image less cluttered and build faster. In my recent article, I explained practical patterns on how to do that. I showed real-world samples with .NET and NodeJS applications.
I gathered my notes from playing with C# records and Nullable Reference Types. Read more if you want to learn if you can use them e.g. for Value Objects or want to do Type-Driven Development.
Sztuka programowania 1211 dni, 4 godziny, 23 minuty temu 85 źrodło rozwiń
When I started my career, SQL Injection and Cross-Site Scripting were perceived as sophisticated attacks. Mature admins installed MSSQL servers with the Internet turned off, because by default, open to the world was a potential source of the attack. Setting up the firewall wasn’t even a standard. Today we have easier. By using the cloud, many things are warranted. Suppliers protect us from basic break-ins. For instance, they’re blocking DDoS attacks and many other attacks that we don’t even know existed...
Sztuka programowania 1224 dni, 5 godzin, 31 minut temu 73 źrodło rozwiń
Hey Developers! I'll tell you a secret. You don't have to break each other work. Breaking changes are overrated. Read more about how to live without them!
Sztuka programowania 1228 dni, 5 godzin, 15 minut temu 15 źrodło rozwiń
This week I decided to back to the basics of Event Sourcing. I explained how to build the current state from events in: - object-oriented style in C# - functional style in TypeScript. This is an essential part of treating events as the source of truth.
Architektura 1239 dni, 4 godziny, 5 minut temu 44 źrodło rozwiń
I hear the question "When not to use Event Sourcing?" a lot. Event Sourcing is an extremely useful pattern, but not a silver bullet. I decided to share my thoughts on when you ain't gonna need it.
Architektura 1245 dni, 4 godziny, 26 minut temu 72 źrodło rozwiń
🚨 Quite often, to make our code simpler, we're trying to make our code more reusable and generic. I wrote an article with a warning that "generic" does not mean "simple". I did that on the example of #CQRS code evolution. Beware and have a read!
Architektura 1253 dni, 3 godziny, 25 minut temu 65 źrodło rozwiń
If you're going from C# to TypeScript, it's worth checking the differences without assuming straight that's the same type of language. TypeScript has structural typing, which might not be the typing you're looking for. Read more in my latest article
Sztuka programowania 1260 dni, 5 godzin, 4 minuty temu 42 źrodło rozwiń
Today I want to invert the classical pro-agile drawing. Let’s talk about the devaluation of functionality that occurs in Agile projects and the cases when Agile is not enough.
Sztuka programowania 1266 dni, 5 godzin, 6 minut temu 46 źrodło rozwiń
People want to scale up everything. In the past, the recipe for everything was to buy a larger server. Today, the answer is to add another instance. Does it always make sense? “Will it scale?” is not a question, it is a mantra. In my opinion, the best is to verify if you need to scale it at all. Read my take in my newest article.
Architektura 1274 dni, 5 godzin, 17 minut temu 41 źrodło rozwiń
Snapshots in Event Sourcing are a controversial topic. It's tempting to use them, but in my opinion, they should be used only when you had to, as a technical optimisation technique. Read more in my latest article!
Architektura 1277 dni, 4 godziny, 56 minut temu 69 źrodło rozwiń