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.
Mikroserwisy: Monitoring, Tracing i Log Aggregation – diagnostyka problemów w środowisku rozproszonym
Wyobraź sobie, że wystąpił problem w produkcyjnym systemie zbudowanym z sieci rozproszonych mikrousług. Błąd przekazuje zespół, który złożył żądanie do Twojego systemu i operacja zawiodła – obsługa trwała długo, a następnie został zwrócony błąd. Podają requestId oraz szczegóły żądania.
Czy byłbyś w stanie szybko odpowiedzieć, co konkretnie było przyczyną błędu?
W tym wpisie chciałbym poruszyć problematykę Observability (obserwowalności) systemów opartych o architekturę rozproszonych mikrousług. Opowiem o:
- Log Aggregation, zbieranie logów w środowisku rozproszonym
- Distributed Tracing, czyli śledzenie konkretnego żądania
- Monitoring ogólnej kondycji systemu
- Perspektywa ogólna serwisu
- Perspektywa szczegółowa instancji
Apache Kafka – wprowadzenie
Zanim przejdziemy do artykułu - mam dla Ciebie 2 ważne informacje Chciałbym zaprosić Ciebie na darmowe szkolenie z Apache Kafka, które prowadzę online 15 listopada o godzinie 18:00. Poniżej znajdziesz link, dzięki któremu możesz zapisać się na szkolenie:...
Jak zamapować agregat DDD w Hibernate
Korzystając z Hibernate czy też Java Persistence API dla konfiguracji mapowania danych i operacji korzystasz z mapowania dla encji, operacji i relacji. Ale Hibernate dostarcza dodatkowych anotacji, z których chciałbym Ci przedstawić kilka wybranych.
Rodzaje obiektów w Java (encja, POJO, ValueObject, DTO)
Korzystając z Hibernate czy też Java Persistence API dla konfiguracji mapowania danych i operacji korzystasz z mapowania dla encji, operacji i relacji. Ale Hibernate dostarcza dodatkowych anotacji, z których chciałbym Ci przedstawić kilka wybranych.
Zasady pisania dobrych testów – F.I.R.S.T. i konkretne techniki żeby je zastosować
Istnieją ogólnie przyjęte zasady, które warto stosować podczas pisania testów. Sprawiają, że testy są bardziej użyteczne w Twoim projekcie. Do każdej z tych zasad podam Ci konkretne techniki i wskazówki, aby je spełnić. Zasady mają akronim F.I.R.S.T. i kolejne litery oznaczają:
- Fast
- Isolated / Independent
- Repeatable
- Self-validating
- Timely
Assert Object Pattern – wyraź w testach biznesowe znaczenie obiektu
Assert Object pattern to bardzo prosty wzorzec stosowany w kodzie testowym sprawiając, że są prostsze i bardziej czytelne. Koncentruje się na fazie sprawdzania obiektów ukrywając złożoność sprawdzenia.
Ideą wzorca Assert Object jest „owinięcie” testowanego obiektu w obiekt Assert i stworzenie metod sprawdzających. Dzięki temu możemy wyrażać biznesowe znaczenie.
Mockować czy nie? 🤔 Czym jest Unit w unit testach? Dwie szkoły pisania testów
Być może uczestniczyłeś w dyskusjach – co mockować, a czego nie. Albo czym jest unit w unit testach?
Żeby coś porządnie przetestować to mockować, czy nie? Jakie są problemy z mockowaniem? Kiedy mockować, a kiedy nie? Co daje nam piramida testów w kontekście mockowania?
W tym wpisie podejdę do tematu z wielu stron.