Wielu programistów, zwłaszcza początkujących, nie zwraca uwagi na jakość kodu, który tworzą. Czasami brak nam czasu lub wiedzy na wytworzenie kodu, który – poza tym że działa – jest czytelny, zrozumiały i wydajny. Jakość kodu to nie tylko sławne „do not repeat yourself” (swoją drogą często zapomniane…), ale także całe zestawy reguł dbające o prostotę utrzymania, łatwość zrozumienia, wydajność itd. Na szczęście nie musimy znać ich wszystkich, bo istnieją narzędzia które mogą nas wspierać w pisaniu kodu wysokiej jakości. Jedno z nich chciałbym przedstawić w tym artykule – jest to Sonar.
Archiwum dla kategorii ‘Java’
JSR-303 – przepis na fasolkę. Bardzo dobrą poniekąd. Cz. 1
czwartek, Luty 11, 2010Finalna wersja specyfikacji JSR-303: Bean Validation ukazała się światu pod koniec ubiegłego roku (2009). Jest to kolejny przysmak a’la carte z renomowanej kuchni Gavin’a King’a i spółki, który doczekał się formalnej specyfikacji. Zatem – delektujmy się przez chwilę…
(więcej…)
Autor: Daniel Ramotowski
Hibernate i efektywne sekwencje
wtorek, Grudzień 15, 2009Do napisania kilku słów na temat optymalizacji używania generatorów w Hibernate 3 natchnął mnie kolega z pracy Krzysiek – prawdziwy specjalista Oracle i tropiciel motocyklistów w białych pantoflach
(użyłem określenia „tropiciel”, w celu podkreślenia swobodnego charakteru tej publikacji i zwiększenia percepcji treści merytorycznych wśród czytelników; ma to oczywiście związek z pewnym zabawnym wydarzeniem ale nie o tym będzie tutaj mowa).
Autor: Daniel Ramotowski
Java – elementarz serializacji
poniedziałek, Sierpień 17, 2009Temat serializacji obiektów w języku Java jest z pozoru trywialny : wystarczy zaimplementować malutki interfejsik – i gotowe! Czasem jednak to, co wydaje się tak oczywiste, przysparza inżynierom pracy na wiele dni…
Za większością publikacji, więc również i za tą, kryje się głębsza historia opowiadająca o pewnym systemie informatycznym zaimplementowanym w języku Java, który można opisać nośnymi przymiotnikami, takimi jak „skalowalny”, „rozproszony”, „wielowarstwowy” itd.
Jak powszechnie wiadomo (a jeżeli nie, to od tej chwili będzie), inżynierowie, którzy rozpraszają systemy
, bardzo często stosują mechanizmy związane z replikacją danych. Takim mechanizmem jest z całą pewnością rozproszony bufor (cache) obiektów Java i to na nim będziemy się teraz skupiać.
Stosując mechanizmy buforowania zawsze dbamy o to, aby obiekty były „serializowalne”, ponieważ zawartość bufora może być zapisywana również na dyski lub do baz danych. W przypadku bufora rozproszonego (tzn. takiego, który dba o to aby każdy z systemów miał taką samą zawartość bufora) obiekty są przesyłane przez sieć, co również wymusza serializację.
Tyle tytułem wstępu – teraz konkrety.
Autor: Daniel Ramotowski
