JavaCamp #3

Posted by Ktoso on 12/04/2010 – 10:29

Polish Java User Group10 Kwietnia 2010, odbył się trzeci już, organizowany przez PJUG na terenie AGH, JavaCamp.

Niestety tego samego dnia, około godziny 9:00 doszło do katastrofy polskiego samolutu z b. ważnymi osobami rządowymi i nie tylko Polski… Trudno jest sprawę opisać słowami i chyba każdy wie o czym mowa, także podobnie jak na JavaCampie, pozostawiam to w chwili ciszy i kontynuuję z materiałem…

[...]

Piotr Jagielski – “Testowanie z użyciem obiektów zastępczych”

Świetna prezentacja na której w końcu zobaczyłem EasyMock (okazało się że wcale nie jest taki Easy jakby nazwa sugerowała) Mockito oraz PowerMock w akcji. Jedyne co miałem dotychczas wspólnego z testowaniem przy wykorzystaniu Mock obiektów to ręcznie napisana MockCrosswordGeneratorokazało się że jest to w pełni normalne i porządane czasami podejście do mockowania – także ucieszyłem się że moja domorosła odpowiedź na pytanie “jak to sensownie przetestować + słyszałem coś o mockowaniu ale franeworka to mu tutaj nie trzeba” pod tytułem “a napiszę klasę co implementuje ten interfejs i zwraca gotowce” okazała się być normalnym i słusznym w niektórych sytuacjach podejściem.

Wracając do przedstawianych bibliotek -  Mockito wydaje się faktycznie przyjemny (no i był mocno reklamowanego podczas prezentacji), chyba że znajdę coś lepszego… Groovy wydaje się trochę fajniejszy do takich rzeczy “na szybko”, no ale może już dość pakowania go wszędzie gdzie się da hm hm… Mockito po przedstawionych możliwościach i przyjemności pisania testów w oparciu o niego, jest bardzo przyjemny.

Potem Piotr pokazał jeszcze armatę jaką jest PowerMock… Która po prostu potarfi mockować wszystko – magicznie. Bo jak wiemy niezbyt da się mockowanie zastosować przy metodach statycznych czy metodach/klasach finalnych. PowerMock trochę “czaruje” bytecode’em i nawet takie trudne sytuacje potrafi mockować… Co fajne – buduje on “na” tym co już mockito i easymock zdążyły stworzyć – nie jest to kolejne API które trzeba kuć absolutnie od zera :-)

Prezentacja była na prawdę świetna i chętnie posłuchałbym Piotra ponownie na jakimś innym spotkaniu.

Tomasz Kaczanowski – “Gradle”

Tą prezentację Tomek przedstawiał na tegorocznym Studenckim Festiwalu Informatycznym i akurat na niej miałem okazję być (oraz na prezentacji Jacka Laskowskiego oraz “warsztatach” z GWT… ale o tym post kiedy indziej). Także “nic nowego”, co nie zmienia faktu iż była zarówno wtedy jak i teraz porządnie przygotowana – co na prawdę było widać, oraz prowadzona “z sensem” – jakieś tezy, jakieś zestawienia, przykłady a następnie sprawdzenie co faktycznie Gradle nam daje a czego nie.

Na JavaCamp w przeciwieństwie do SFI było obecnych więcej prawdziwych programistów Java na codzień pracujących z Maven2, oraz będących dobrze poinformowanych o nowościach w Maven3. Dzięki temu prezentację często przerywano i dyskutowano na temat “czy gradle pozwala na XYZ” lub “w Maven też da się ABC” itp. Bardzo mi się to podobało, z dwóch powodów: prezentację już znałem więc powiew świeżości był mile widziany oraz “życiowe” spojrzenie na prezentowany materiał zawsze jest najważniejsze a na “wielkich konferencjach” często unika się takiego spojrzenia. Słowem? Kolejna bardzo dobra prezentacja z dużym zaangażowaniem publiczności.

Waldemar Kot – “Współbieżność w aplikacjach Java EE”

Bardzo bardzo podobną prezentację Waldemar prezentował Java Developers’ Day 2009, gdzie również miałem okazję go posłuchać. Tam prezentacja nazywała się “Asynchroniczność, współbieżność i rozproszone przetwarzanie w Java EE
- przykłady z użyciem technologii middleware Oracle: WebLogic Server,
EclipseLink/TopLink JPA i Coherenc
e” i jak można zgadnąć po nazwie… było trochę “hmmm”. Tym razem, pod prostszą nazwą, i odświeżonym podejściem Waldemar skupił się na pokazaniu nam WorkManager API – de facto standardu w przetwarzaniu równoległym w JEE. Bardzo ganił dziwne podejście ludzi który twierdzą że współbieżności w JEE “się nie da” (pewnie że się da, ale po prostu nie Thread’em droga) lub “a jeśli musisz to użyj JMS” – dziwne podejścia, faktycznie – skoro WorkManager jest tak ładnym i banalnym API… Standaryzacji się niestety wątki w JEE nie doczekały, ale WM jest dobrym i sprawdzonyum rozwiązaniem. No i mamy również w springu: http://static.springsource.org/spring/docs/2.0.x/reference/scheduling.html Więc w sumie zaskoczył mnie że spotykał się z takimi poglądami dot współbieżności a JEE…

Potem mała prezentacja tego co taka współbieżność w efekcie daje – przykładowe odpalanie wątków i zabawa ograniczaniem ThreadPoola z poziomu serwera aplikacyjnego – to samo było na JDD jeśli dobrze pamiętam.

Kolejne demko dotyczyło już Oracle Coherence. Czyli witamy w świecie DataGrid. Jak to najprościej opisać? “Taka Map… rozproszona na 200 serwerów i samoczynnie replikująca się do baz danych z np. opóźnieniem – dramatycznie redukując ilość zapytań SQL.” Oczywiście to nie tylko tyle, ale również dostęp poprzez Java/C++/.NET do jednej i tej samej instancji serwera. Prezentacja była fajna i ciekawa – szkoda że takie cuda dopiero mają sens gdy ma się miliony zapytań dot. danych – ale technologia z pewnością jest bardzo ciekawa – a wydajność “widać”, skalowalność również ogromna… Cud miód i orzeszki. Na tym się coherence oczywiście nie kończy – pomysł wysyłania “kodu do wykonania” (uproszczona nazwa oczywiście…) zamiast pobierania danych, zmiany, i wysłania również jest fajnie wspierana. Zamiast na bazie danych i SQL po prostu pracujemy z API coherence, które pozwala nam tworzyć pewne zapytania – przedstawiony przykład był takim SELECT AVG(…) FROM, ale wykonanym na mapce coherence… Zwyczajne włączenie kolejnego serwera pozwalało drastycznie zmniejszać czas potrzebny na wykonanie takiej operacji – serwery same się dogadują i replikują między sobą dane aby potem wykonać 1 zapytanie (nic nie programujemy co by mówiło o jakiś serwerach) na wszystkich serwerkach na raz – ot takie podejście do współbieżności. Bardzo ciekawa technologia, no ale niestety wielka armata – chciałbym kiedyś z takich strzelać ;-)

Informacja dla zainteresowanych UniversityDay na GeeCONie:

Waldemar Kot będzie przeprowadzał na UniversityDay całodniowe szkolenie z Coherence – więc jeśli Cię to zainteresowało – zapraszamy.
Inna z ścieżej najprawdopodobniej będzie dotyczyć Gradle, także jeśli interesuje cię gradle, miej oko na informacje publikowane na stronie domowej GeeCON.

Pizza jak zawsze – dobra ;-)

Powyższy post napisano na nudnym wykładzie… ;-)

Tags: , , , , , , ,

This post is under “java, polish, review” and has no respond so far.

Post a reply