Gdy kilka procesów może jednocześnie modyfikować ten sam zasób, istnieje ryzyko, że jeden UPDATE zostanie pominięty. Dlatego warto się przed tym zabezpieczyć
Testy bez I/O
Mając w aplikacji bogatą logikę biznesową, chcielibyśmy móc testować ją jak najszybciej, niezależnie od innych warstw oraz punktów wejścia i wyjścia naszej aplikacji. Żeby osiągnąć ten cel, może nam pomóc idea portów i adapterów!
Architektura Portów i Adapterów | Heksagonalna
Porty i Adaptery, znane również jako architektura heksagonalna, to podejście, które pozwala na odseparowanie logiki biznesowej od pozostałych warstw w aplikacji. Jest to ogólna idea, która na pewno warto mieć w swoim tool boxie!
Testcontainers: Docker w testach integracyjnych
W testach integracyjnych często musimy zadbać o to, aby nawiązać kontakt z zewnętrznymi usługami, np. z bazą danych. Najlepiej, żeby te usługi były identyczne jak na środowiskach wdrożeniowych, a ich tworzenie w testach było szybkie i zautomatyzowane. W tym celu może nam pomóc Testcontainers!
Java 21: Nowości z przykładami
Java 21 przynosi wiele nowości, między innymi Virtual threads, Sequenced Collections, Record Patterns i wiele innych. W tym wpisie omówione są te innowacje wraz z przykładami zastosowania w kodziku 😀
Niejednoznaczność zasad programowania
Zasady programowania, to niewidzialne linie, których programista stara się nie przekroczyć. Często jednak bywają one trudne do jednoznacznej interpretacji. Każdy deweloper może inaczej rozumieć daną zasadę, a to może prowadzić do chaosu, utrudniając efektywną współpracę i rozwój oprogramowania.
Kohezja i coupling
Większość zasad programowania aplikowalnych w Javie wywodzi się z podstawowych koncepcji programowania obiektowego, między innymi z kohezji i couplingu. Warto znać te metryki, bo mogą one wskazać nam potencjalne problemy w kodzie.
Value Object
Niektóre wzorce są proste do użycia, ale mogą znacznie poprawić jakość naszego kodziku. Takim właśnie wzorcem jest Value Object.
Outbox Pattern
Jeśli w ramach jednego procesu komunikujesz się z dwoma niezależnymi narzędziami, np. bazą danych i brokerem wiadomości, to zawsze jest ryzyko, że jedno z tych narzędzi jest niedostępne. Jak więc zwiększyć szanse na powodzenie takiego procesu? W tym może nam pomóc Outbox Pattern!
Command vs Event
Command i Event to dwa typy wiadomości często stosowane w systemach rozproszonych. Każdy z nich ma jednak swoje przeznaczenie i role do odegrania w procesie komunikacji.