Dzisiaj zajmiemy się konsumpcją! Oraz tym jak napisałem nową wersję biblioteki MediatR, no prawie. Opisuję jak można zrobić elastyczny pipeline, gdzie komponujemy zwykłe metody bez zbędnych interfejsów i magii refleksji.
Strona głównaUżytkownik
oskar-at-net | użytkownik
Sztuka programowania 25 dni, 3 godziny, 56 minut temu 93 źrodło rozwiń
Mam coś dużego dla Was. Właśnie wydałem bezpłatnie pierwszą część zadań do warsztatu „Wprowadzenie do EventSourcing”. Przygotowanie ćwiczeń zajęło mi dwa tygodnie pełnego skupienia plus godziny, które spędziłem na Event Sourcing w ostatnich latach 🙂 Stworzyłem go na prywatny warsztat, ale jak zawsze zdecydowałem się udostępnić zadania jako open source. Możesz wykonać warsztaty jako zestaw do samodzielnego uczenia. Wiadomo, że to nie to samo co pełen warsztat, ale powinno dać Ci dobre podstawy do rozp...
Architektura 67 dni, 2 godziny, 51 minut temu 86 źrodło rozwiń
"Jak zapewnić wyjątkowość w Event Sourcing"? To jedno z najczęściej powtarzających się pytań. Najprostsza odpowiedź brzmi: „Czy naprawdę musisz?” Jeśli szukasz dokładniejszej, sprawdź mój nowy artykuł, opisałem ten problem w detalach.
Sztuka programowania 74 dni, 3 godziny, 12 minut temu 68 źrodło rozwiń
Moja wypowiedź na temat obecnej szalonej sytuacji na świecie i barbarzyńskiej wojnie, którą wypowiedziała Rosja, Ukrainie. Jest też sporo moich przemyśleń o naszej banieczce IT i tym, że "ja nie interesuje się polityką" już jest nieaktualne (o ile kiedykolwiek było). Jest też trochę linków popierających moje tezy.
"Immutable Value Objects" brzmi to poważnie i nieco strasznie. Jednakże, jest to prosty, praktyczny i bardzo przydatny koncept. Pomaga on w pisaniu mniej kodu, testów. Nasze klasy stają się bardziej przewidywalne. W swoim najnowszym artykule pokazałem na przykładzie, jak możesz skorzystać z tego konceptu.
Sztuka programowania 94 dni, 2 godziny, 36 minut temu 144 źrodło rozwiń
Legacy Monolit to zwykle bestia. Rozmowy konferencyjne pchają nas do zmiany go w mikroserwisy, wydzielenia Bounded Contextów użycia Kubernetes itd. Są to często dobre rady, ale nie zawsze wykonalne. Są momenty, gdy musimy działać pragmatycznie. Migracja może być zbyt kosztowna i zbyt wymagająca czasowo. Jak przeskalować monolit, gdy kończy nam się czas? Przeczytaj w moim nowym artykule!
Architektura 98 dni, 2 godziny, 49 minut temu 62 źrodło rozwiń
Testy na produkcji zwykle pojawiają się w niezbyt chlubnych, ale za to śmieszkowatych historiach. A to dziwne powiadomienie z banku, a to dzwoni do nas klient i pyta się co to jest za typ słownika "twoja stara ubiera się u Prady". Ja testowałem na produkcji i się tego nie wstydzę. Zobacz dlaczego.
Sztuka programowania 109 dni, 34 minuty temu 64 źrodło rozwiń
W ciągu ostatnich kilku dni kilka razy zostałem zapytany: „Jak używać silnie typowanych identyfikatorów w Marten?”. Postanowiłem napisać swoje przemyślenia na ten temat, bo trzeba znać kilka „sztuczek”, aby to zadziałało. Zobacz jak to zrobić w moim nowym artykule.
Sztuka programowania 122 dni, 22 godziny, 40 minut temu 55 źrodło rozwiń
My programiści uwielbiamy pokazywać kreatywność w fantazyjnym formatowaniu, regułach stylistycznych, niezliczonych dyskusjach na temat wyższości spacji nad tabami. Dynamiczna składnia, czy mocno typowana? Tak czy śmak? Opisałem jak radzić sobie z tymi dyskusjami i efektywnie pracować z kodem i PRami.
Sztuka programowania 130 dni, 3 godziny, 32 minuty temu 79 źrodło rozwiń
„Nie, to się nigdy nie może wydarzyć!”. Czy znasz te zdanie? Założę się, że tak. Oprócz Dekalogu nie ma wiele zasad wyrytych w kamieniu. Systemy idealne to nie te, które są bezbłędne. Idealne systemy to takie, które odzwierciedlają proces biznesowy i są odporne na nasze błędy.
Sztuka programowania 136 dni, 3 godziny, 15 minut temu 86 źrodło rozwiń
Prosta implementacja Outbox'a w F#
Architektura 144 dni, 2 godziny, 52 minuty temu 51 źrodło rozwiń
Jak zintegrować Martne z narzędziami typu Kafka czy nawet innymi bazami danych? Pomoże w tym funkcja zwana Async Daemon. W skrócie, jest to proces działający w tle, który zapewnia asynchroniczne przetwarzanie zdarzeń. Domyślnie używany jest do projekcji, ale może być używany jako baza do pub/sub.
Architektura 144 dni, 2 godziny, 52 minuty temu 31 źrodło rozwiń
Snapshoty w Event Sourcing są przereklamowane. Nie powinny być używane jako domyślny wybór architektoniczny, ale raczej jako czysto techniczna optymalizacja. Czasami jednak może to być pragmatyczny wybór lub dobry kompromis. Napisałem, jak sobie z nimi radzić przy pomocy Marten.
Architektura 151 dni, 2 godziny, 3 minuty temu 41 źrodło rozwiń
.NET się zmienia. Staje się coraz lżejszy. Minimal API są tego przykładem. Pozwalają na szybkie zbudowanie API i uruchomienie nowego serwisu. W dobie mikroserwisów i Cloud jak znalazł. Przetestowałem, jak sprawdzą się z innym wzorcem promującym prosty podział kodu: CQRS. Czytaj dalej by zobaczyć jakie są moje wnioski.
Architektura 158 dni, 3 godziny, 12 minut temu 198 źrodło rozwiń
Wersjonowanie zdarzeń dla osób uczących się Event Sourcing jest jak potwór, którym straszy się dzieci. To upiorna opowieść opowiedziana przy ognisku. Jest w tym trochę prawdy, bo migracje są zawsze wyzwaniem. W nowym artykule pokazałam proste, praktyczne wzory z próbkami, jak sobie z tym poradzić!
Architektura 165 dni, 3 godziny, 3 minuty temu 47 źrodło rozwiń
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...
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 171 dni, 3 godziny, 3 minuty temu 61 ź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 179 dni, 3 godziny, 6 minut temu 106 ź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 224 dni, 4 godziny, 19 minut temu 31 ź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 234 dni, 5 godzin, 8 minut temu 70 źrodło rozwiń