Archive for the ‘Java EE’ Category
Lazy Loading nie ma sensu?
W najnowszym artykule z serii Receptury projektowe – niezbędnik początkującego architekta, Sławek Sobótka traktuje o mapowaniu relacyjno-obiektowym prawdziwych obiektów na kanwie DDD i JPA. Udowadnia 3 tezy:
- Lazy Loading nie ma sensu,
- Mapowanie @OneToMany z wykorzystaniem tabeli linkującej (domyślne zachowanie hibernate) nie ma sensu,
- Blokowanie Optymistyczne oparte jedynie na @Version nie ma sensu
Artykuł tradycyjnie dostępny jest za darmo w wersji pdf na stronie Autora.
Wyraź siebie dzięki adnotacjom
Wujek Bob prawi, że nadmierne komentowanie to zło (czasem zło konieczne?). Google Annotations Gallery to ciekawa biblioteka, pozwalająca wyrazić nie tylko komentarz, ale także intencję autora, poczucie humoru, stosunek do kodu, a może i coś więcej?:)
Poniżej kilka ciekawych adnotacji:
Read the rest of this entry »
Zarządzenie złożonością przez trójpodział logiki – Open/closed principle w praktyce
Open/closed Principle to jedna z zasad SOLID.
Kod powinien być otwarty na rozbudowę jak kwiat lotosu o świcie i zamknięty na zmiany jak kwiat lotosu o zmierzchu
Jednak jak w praktyce zastosować tą zasadę? Czy aplikuje się ona jedynie na poziomie Object Oriented Design czy również na poziomie architektury aplikacyjnej?
Read the rest of this entry »
4C – Zwinne podejście do odkrywania i dokumentowania architektury
W kwietniowym wydaniu magazynu Programista ukazała się trzecia część artykułu z cyklu Receptury projektowe – niezbędnik początkującego architekta. Tym razem Sławek Sobótka odpowiada na pytanie: W jaki sposób dokumentować architekturę systemu?
Read the rest of this entry »
Zagadka: hackujemy kalkulator
Dawno nie było zagadki! Dziś łamigłówka dla hackerów:)
Poniżej znajduje się klasa Calculator
implementująca metodę add
. Metoda działa poprawnie (o ile nie przekroczy się zakresu inta, ale to nie jest przedmiotem zagadki). Należy tak zhackować kalkulator, aby źle dodawał:)
Read the rest of this entry »
How to create a Memory Leak
Krótki artykuł pokazujący – na podstawie dwóch przykładów – jak łatwo można spowodować wycieki pamięci w Javie. Pierwszy przypadek dotyczy elementów kolekcji, które mają nieprawidłowo zaimplementowane metody equals()
/hashcode()
. Natomiast drugi traktuje o zachowaniu klasy String
w pewnych sytuacjach.
Mock czy Stub? Command-query Separation prawdę ci powie
W lutym pisałem o Czterech smakach odwracania (i utraty) kontroli – pierwszym artykule z cyklu Receptury projektowe – niezbędnik początkującego architekta. Dziś zachęcam do lektury drugiej części pt. Mock czy Stub? Command-query Separation prawdę ci powie.
Read the rest of this entry »
Do You Really Get Classloaders?
Jevgeni Kabanov (ZeroTurnaround) opowiada o niuansach pracy nad JRebel, skupiając się na aspekcie przeładowania kodu aplikacji bez restartu serwera. Mechanizm ładowania klas omawia zarówno od strony JVM jak i programisty. Każdy problem (np. NoClassDefFoundError
, LinkageError
) przedstawia na przykładzie i podaje rozwiązania. Wyjaśnia jak obiekty, klasy i classloadery są ze sobą powiązane.
Read the rest of this entry »
Jak zamienić wartości 2 zmiennych bez zmiennej tymczasowej?
Pamiętacie pewnie z Algorytmów czy Metod Programowania, jak trzeba było zamieniać wartości zmiennych miejscami, np. w algorytmach sortujących. Pisało się wtedy kod w stylu:
tmp = i i = j j = tmp
Poniżej prezentuje znalezione przeze mnie sposoby, jak zamienić wartości dwóch zmiennych bez użycia zmiennej pomocniczej.
Read the rest of this entry »
Nie polegaj (tylko) na testach jednostkowych
Tomasz Nurkiewicz w swoim artykule pisze, aby nie polegać tylko i wyłącznie na testach jednostkowych. Przekonuje, że 100% pokrycie kodu testami nie wystarcza. Złożony system klasy enterprise wymaga testów integracyjnych, testów komponentów a nawet testów całego systemu.