DevCezz

Programistyczny blog dla Ciebie

programowanie

Dlaczego null nie zawsze może być kluczem w mapie?

Na jednej z rozmów kwalifikacyjnych otrzymałem ciekawe pytania dotyczące działania mechanizmów dostępnych w Javie. Jedno z nich naprawdę zapadło mi dobrze w pamięci. Brzmiało ono następująco: „Czy null może być kluczem w HashMap oraz ConcurrentHashMap?”. Przyznam szczerze, że nie umiałem…

Maven Failsafe Plugin, czyli uruchamianie testów integracyjnych w Maven

W jednym z poprzednich wpisów poruszyliśmy temat pluginu Surefire służącego do uruchamiania testów jednostkowych w Maven. Dzisiaj natomiast skupimy się na kolejnym rozszerzeniu, a mianowicie na Failsafe. Powodem jego powstania była chęć uruchamiania testów integracyjnych przy wykorzystaniu jednej komendy. Widać…

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…

Maven Surefire Plugin, czyli uruchamianie testów jednostkowych w Maven

Maven ma wiele ciekawych pluginów, które automatyzują nam powtarzalne czynności. Nie inaczej sprawa ma się w przypadku testowania jednostkowego naszej aplikacji. W tym artykule chciałbym zapoznać Cię z bardzo przydatnym pluginem – Surefire. Jego głównym zadaniem jest uruchamianie wcześniej wspomnianych…

Przepisz swój kod na nowo! #11

Ostatnio sporo czasu poświęciłem kodowaniu aplikacji AnimalShelter. Udało mi się wykonać naprawdę sporo zadań, ale nie obeszło się bez problemów, którymi chciałbym się z Tobą podzielić w tym wpisie. Na pewno przedstawię nowy podział na moduły Mavena jakiego dokonałem, co…

Przepisz swój kod na nowo! #10

To już dziesiąty wpis dotyczący przepisania swojej starej aplikacji na nowe rozwiązanie! W związku z tym przyszła pora na małe podsumowanie dotychczasowych prac. Sprawdzimy co udało się już zrobić, co jeszcze zostało i czy planuję coś dorzucić ekstra. Przy okazji…

Dziedziczenie i agregacja w Maven

W poprzednim wpisie na temat pliku pom.xml wspomniałem, że zajmiemy się zagadnieniem podmodułów. Właśnie w tym artykule chcę Cię przez niego przeprowadzić. Przy okazji poznamy czym jest Super POM, dowiemy się czym różni się dziedziczenie od agregacji w Maven oraz…

Serce Maven, czyli pom.xml

Sporo teorii za nami, więc pora teraz zagłębić się w strukturę pliku pom.xml, który jest sercem Mavena. Zawiera on wszelkie informacje na temat tego w jaki sposób należy zbudować prowadzony przez nas projekt. W tym artykule przejdziemy przez części składowe…

Cykl życia projektu w Maven

Kontynuując myśl z poprzedniego artykułu wyjaśnijmy sobie jakie są cykle życia projektu w ujęciu Mavena. Ta idea jest najistotniejsza w całym narzędziu, ponieważ definiuje proces budowania oraz dystrybucji tworzonych aplikacji. Nie przedłużając przejdźmy do przedstawienia tych cykli i sprawdźmy co…