Miesięczne archiwum: Kwiecień 2012

4Developers – relacja

Miesiąc temu miałem okazję uczestniczyć w konferencji 33rd Degree, która tylko utwierdziła mnie w przekonaniu, że warto pojawiać się na imprezach branżowych. Pomijając możliwość wysłuchania ciekawych prezentacji, konferencje pozwalają na poznanie wielu ciekawych ludzi i wymienienie się swoimi poglądami. Zgromadzenie dużej grupy programistów na ograniczonej powierzchni skutkuje niekontrolowanymi wybuchami kreatywności, które są prawdziwą esencją tych imprez. Dlatego też byłem niezwykle ciekaw, jak będzie przebiegać 4Developers, którego tegoroczna edycja odbyła się w Poznaniu…

Czytaj dalej

TIOBE – Java na drugiej pozycji

W przeciągu ostatnich kilku lat Java niemal nieprzerwanie utrzymywała pierwszą pozycję w rankingu popularności języków programowania TIOBE. Dziś jednak sytuacja się zmieniła – Java spadła na drugie miejsce, a nowym liderem zostało… C. Jak czytamy na oficjalnej stronie rankingu, krzywa trendu spadkowego Javy przecięła w końcu stabilną krzywą C. Specjaliści z TIOBE prognozują, że mimo iż Java nie powinna spaść jeszcze niżej, to C może utrzymać pierwsze miejsce przez najbliższe miesiące. Co ciekawe, przed dalszym spadkiem Jave ma uchronić popularność Androida.

Integer i cache’owanie

Większość osób używających Javy na codzień jest zapewne świadoma tego, iż liczby całkowite z zakresu od -128 do 127 są cache’owane. Objawia się to np. tym, że podczas kilkukrotnego autoopakowywania (autoboxing) liczby 1, za każdym razem otrzymamy tą samą instancję klasy Integer. Taka sama sytuacja ma miejsce w przypadku metody Integer.valueOf() – z tego też powodu korzystniejsze jest używanie jej zamiast konstruktora. Nie trudno więc zgadnąć, co zostanie wydrukowane przez poniższy kod.

public class IntegerCache
{
    public static void main(String[] args)
    {
        boolean same = areSame(1, 1);
        boolean sameBig = areSame(1000, 1000);

        System.out.println(same + " " + sameBig);
    }

    public static boolean areSame(Integer first, Integer second)
    {
        return first == second;
    }
}

Będzie to oczywiście true false. Ale czy zawsze?

Czytaj dalej

Z życia wzięte – Quartz, SQL Server 2008 i znikające zadania

Ostatnio zdecydowałem się na wykorzystanie Quartz w celu stworzenia zaawansowanego i elastycznego harmonogramu wykonania  zadań należących do pewnej, definiowanej przez użytkownika grupy. System miał być zintegrowany z już istniejącą bazą danych opartą o SQL Server 2008 R2. Z Quartz korzystałem już wcześniej, dlatego też cieszyłem się, że będę mógł zapoznać się z najnowszą wersją tego popularnego narzędzia. Miałem nadzieję na bezproblemowy development, ale nie obeszło się bez przygód, o których przeczytacie poniżej.  Czytaj dalej

Confitura 2012

Confitura 2012

Już 30 czerwca w Kampusie Uniwersytetu Warszawskiego na Krakowskim Przedmieściu odbędzie się kolejna edycja Confitury – największej w Polsce, darmowej konferencji poświęconej Javie. Pomimo tego, że do Confitury zostało jeszcze sporo czasu, rejestracja nie jest aktywna i nie znamy listy prelegentów, to możemy zapewnić, że zdecydowanie warto zarezerwować sobie jeden dzień na przyjazd do stolicy. Jeżeli macie wątpliwości to przeczytajcie naszą relację z przebiegu ubiegłorocznej edycji. Jeżeli z jakiś powodów ominie Was Confitura, to możecie jak zawsze liczyć na nas :)

PowerMock – pomoc w testach jednostkowych

Na łamach bloga opisane były wielokrotnie różne narzędzia testowe. Mi szczególnie odpowiada połączenie JUnit + Mockito. Duet ten ma jednak kilka braków – nie ma możliwości mockowania i weryfikacji metod statycznych, prywatnych, czy konstruktorów. Skutkiem tych ograniczeń jest niejednokrotnie poświęcanie spójnej architektury aplikacji na rzecz testów jednostkowych. Za przykład niech posłuży zmiana metod prywatnych na package-private tylko po to, by móc na potrzeby testów zmienić ich zachowanie. Jest jednak dużo prostsze wyjście – można użyć biblioteki PowerMock i nigdy więcej nie mieć tego typu zmartwień.

Czytaj dalej