Tworzenie klas-potworków z wykorzystaniem Lomboka
Lombok wzbudza wiele emocji. Tych pozytywnych jak i negatywnych. Ma on wiele zalet, ale nie jest też wolny od wad. Na pewno nie można powiedzieć o Lomboku, że przechodzi bez echa wśród programistów Java. W wielu sytuacjach jego funkcjonalności dają…
Pisanie kodu przy wykorzystaniu Object Calisthenics
Słowo kalistenika to połączenie dwóch słów wywodzących się ze starożytnej Grecji: kállos (piękno) i sthénos (siła). W kontekście aktywności fizycznej odnosi się to do pracy nad mięśniami bez żadnego dodatkowego sprzętu czy obciążenia. Chodzi o opieranie się na ćwiczeniach tylko…
Short & Long Polling
Minęły już prawie dwa miesiące odkąd powstał mój ostatni wpis na tym blogu. Pomimo wielkiej chęci powrotu do tworzenia nowych treści, poległem. Na ten stan rzeczy złożyło się wiele spraw w pracy oraz życiu osobistym. Jednak wracam i mam nadzieję,…
Czy MapStruct rozleniwia?
Na początku bieżącego roku napisałem 3 artykuły na temat MapStruct („Podstawy biblioteki MapStruct”, „Użycie wzorca dekorator w MapStruct”, „Różne przypadki wykorzystania biblioteki MapStruct”). Wtedy za cel postawiłem sobie, aby przybliżyć Tobie ideę stojącą za tą biblioteką. Dzisiaj natomiast chciałbym przestrzec…
Wzorzec Transactional Outbox
Tworzone aplikacje często muszą informować swoich użytkowników o jakimś zdarzeniu poprzez SMS czy email. Powodem może być wystawienie faktury, potwierdzenie złożenia rezerwacji czy też nowa promocja. Co jednak w przypadku, gdy chcemy mieć pewność, że wiadomość nie dotrze do adresata…
Feature envy, czyli zazdrość metody o funkcje
Czym byłoby ludzkie życie bez emocji, a zwłaszcza takiej jaką jest zazdrość? Można uważać, że bez niej żyłoby nam się po prostu lepiej. Ale to nie pora i miejsca na takie filozoficzne rozkminy. Dlaczego jednak wspominam o zazdrości? Ponieważ możemy…
Prawo Demeter – jak uchronić kod przed katastrofą
Zdarzyło Ci się spotkać albo, co gorsza, samemu napisać kod o następującej strukturze bank.getAccountingDepartment().getAccountingTeam().getAccountant().process(invoice)? Ewidentnie jest z nim coś nie tak. Nie dość, że grzebie on w wewnętrznej implementacji wielu klas to jeszcze ma potencjalnie aż 3 miejsca na rzucenie…
GRASP – garść zasad wytwarzania oprogramowania
W świecie programistycznym istnieje wiele wskazówek jak tworzyć dobre oprogramowanie. Jedną z nich jest znany (i zapewne lubiany) mnemonik SOLID, o którym powstało wiele artykułów. Opisuje on podstawowe zasady jakich powinno się przestrzegać podczas programowania. Jeśli, więc oprze się swój…
W czym pomoże nam Value Object?
Value Object, jak sama nazwa wskazuje, jest obiektem przechowującym jakąś wartość. Ta koncepcja pomaga nam nadać znaczenie danej liczbie bądź literałowi czy też ich grupie. Zastanów się czym jest dla Ciebie cyfra 3. Jest to miesiąc marzec? Ilość produktów? A…
Dependency Injection
Podczas wieczornej przebieżki myślałem o tym jak ugryźć temat opisania Dependency Injection (DI). Nagle usłyszałem to zdanie, które chyba każdy z nas krzyczał będąc dzieckiem. “Mamo, rzuć picie!” 😂 I wtedy wyobraziłem sobie sytuację, w której to młody adept sztuki…