Skip to content Sign up Why GitHub? Features → Mobile → Actions → Codespaces → Packages → Security → Code review → Issues → Integrations → GitHub Sponsors → Customer stories →TeamEnterprise Explore Explore GitHub →Learn and contribute Topics → Collections → Trending → Learning Lab → Open source guides →Connect with others The ReadME Proje...
Strona głównaUżytkownik
oskar-at-net | użytkownik
Zmotywowany ostatnimi wątkami na HackerNews i Reddit, postanowiłem tym razem odpowiedzieć! EventStreaming jest zbyt często mylony z EventSourcing. Jest to szkodliwe dla obu wzorców, a najbardziej dla ludzi popełniających ten błąd. W swoim artykule wyjaśniłem, czym się różnią i dlaczego jest to ważne.
Architektura 1114 dni, 7 godzin, 47 minut temu 72 źrodło rozwiń
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.
Architektura 1122 dni, 7 godzin, 51 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 1167 dni, 9 godzin, 3 minuty 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 1177 dni, 9 godzin, 52 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 1192 dni, 9 godzin, 10 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 1198 dni, 9 godzin, 32 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 1206 dni, 9 godzin, 17 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 1220 dni, 8 godzin, 59 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 1241 dni, 9 godzin, 13 minut 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 1254 dni, 10 godzin, 21 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 1258 dni, 10 godzin, 4 minuty 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 1269 dni, 8 godzin, 54 minuty 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 1275 dni, 9 godzin, 15 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 1283 dni, 8 godzin, 14 minut temu 65 źrodło rozwiń
The story behind creating my first general use, performance-first library.
SourceGear.Llama.Swift.Sdk, now available on NuGet, is an MSBuild project SDK for .NET 5 that allows compiling Swift, with support for calling .NET class libraries. This blog entry is a closer look at those features. Reminder: Llama is at the "proof of concept" stage, and is not production ready. In my previous Llama blog entry, I walked through a simplistic implementation of "grep" in both C# and Rust. Let's revisit that sample now in Swift.The .swiftproj file Recall that the project file for the C#...