W obliczu zmian gospodarczych i technologicznych, rynek IT oferuje wyzwania i możliwości dla Java Developerów, podkreślając znaczenie ciągłego rozwijania umiejętności technicznych i miękkich. Sztuczna inteligencja i adaptacyjność stają się kluczowe w kontekście dynamicznie zmieniających się wymagań rynkowych. Przyszłość w IT zależeć będzie od gotowości do nauki i innowacji, co umożliwi Java Developerom utrzymanie konkurencyjności.
Zero-click deployment dzięki Trunk-based development i Conventional Commits
Wyobraź sobie, że wprowadzasz commit do repozytorium, a następnie automatycznie produkuje się paczka oraz wdraża się na środowisko testowe, albo produkcyjne. Piszesz git commit, git push, a resztę załatwia automatyzacja. W dzisiejszym wpisie podzielę się, jak techniki...
Apache Kafka + Avro + Schema Registry
Apache Kafka dostarczona przez Confluent to prawdziwy kombajn, a nie zwykła kolejka. W dzisiejszym artykule pokażę Ci, jak możemy odpalić klaster Kafki oraz Schemę Registry na Dockerze, następnie wyklikamy topic oraz wgramy schemat Avro. Potem napiszemy przykładową alikację producenta oraz konsumenta w Spring Boot z wykorzystaniem Avro oraz Schemy Registry…
The Outbox Pattern – Komunikacja z zewnętrznymi systemami w ramach transakcji
Często w ramach przetwarzania logiki biznesowej, oprócz modyfikacji różnych danych objętej transakcją pojawia się potrzeba wymiany danych lub komunikacji z zewnętrznymi systemami. Przykładem jest serwer mailowy, inny serwis, system kolejkowy. Wykonując operację z efektem ubocznym w transakcji, mogą wystąpić dwa potencjalne problemy:
- Możesz nie mieć wpływu na działanie tych systemów. Na przykład serwer pocztowy nie odpowiada, pojawia się chwilowy zanik sieci, albo bardzo wolno odpowiada).
- Wykonanie efektu ubocznego i wycofanie transakcji biznesowej. Nie można już odwrócić efektu uczonego (np. nie można wycofać już wysłanego maila).
Jak można sobie z tym poradzić? W tym wpisie opiszę wzorzec The Outbox Pattern.
Równoległy zapis do bazy – 6 sprawdzonych sposobów na rozwiązanie problemu
Na pewno spotkałeś się z pojęciem równoległej edycji, gdzie wielu użytkowników edytuje (lub próbuje edytować) te same w tym samym momencie…
Masa darmowych materiałów z Java developmentu! 💪
Cześć! Dziś chciałbym Ci przesłać kilka materiałów, w których zebraliśmy trochę naszej wiedzy i doświadczenia! 🔥 Przeczytaj ten wpis do końca, bo zawiera wiele ciekawych linków. Jednak zanim do tego przejdę, chcę Ci przypomnieć, że trwa sprzedaż III edycji Programu...
Apache Kafka – Optymalizacja – Ilu partycji potrzebuję?
Apache Kafka umożliwia ustawienie liczby partycji dla każdego topick’a. W jednej z dyskusji z osób z naszej społeczności padło pytanie: Jak obliczyć ile partycji potrzebuję?
Jak podejść do obliczenia oraz co jeszcze należy wziąć pod uwagę?
Schema Registry w Apache Kafka
Apache Kafka jest coraz bardziej popularnym brokerem wiadomości. Wystarczy spojrzeć na oferty pracy dla programistów Java, a szybko przekonamy się, że w większości nowoczesnych projektów, w architekturze mikroserwisów jest jakaś forma komunikacji po systemie kolejkowym. Bardzo prawdopodobne, że będzie to właśnie Apache Kafka.
7 sposobów na przyspieszenie Twoich testów w Spring
Co powoduje, że testy w Spring są wolne?
Szybkość wykonywania testów ma kluczowy wpływ na to, jak szybko dostajemy feedback o poprawności wprowadzanej zmiany oraz jak szybko budowany jest projekt. To z kolei może spowolnić testowanie, a nawet wdrażanie w trybie Continuous Deployment.
W tym artykule omówię ogólne podejście do testowania. Podzielę się też najczęstszymi błędami, z którymi spotkałem się w projektach powodujące wolne działanie testów.
Dowiesz się też, co powoduje, że testy w Spring stają się wolne i jak poprawić sytuację w projekcie.
CI/CD i trunk-based development – wdrażaj częściej i szybciej
Wdrażaj na produkcję kilka razy dziennie za pomocą git’a. Continuous Delivery bez przeszkód.
Zastanawiało Cię kiedyś, które elementy w procesie pisania kodu i współpracy z innymi programistami wpływają na efektywność Twoich działań zmierzających do umieszczenia kodu na produkcji?
Oprócz analizy wymagań, głównym zajęciem programisty jest wytwarzanie kodu i kolaboracja z innymi programistami.
Miejscem tej kolaboracji jest repozytorium kodu w systemie kontroli wersji. To w nim umieszczamy efekt naszej pracy. Tam przeglądamy zmiany innych i łączymy z nimi nasze zmiany.
Na koniec, zmiany te uczestniczą w procesie Contineous Integration (CI), budowane są artefakty wdrożeniowe, a niektóre zwinne zespoły nawet używają procesu Contineous Delivery (CI/CD) do szybkiego i ciągłego wdrażania zmian na środowiska testowe i produkcyjne prosto z pipeline w sposób w pełni zautomatyzowany.