Przejdź do treści

33rd degree 2013 – śniegowa relacja, dzień 2 i 3

020D702B-54E0-4409-9F62-779644E78FC2Kolejna relacja z  33rd Degree – Conference for Java Masters 13-15 March 2013 Warsaw Poland. Tym razem będzie coś o JRebel, Spock, DDD, Flywaydb i wielu innych… Pogoda nieznacznie się poprawiła, ale nadal zimno było jak diabli ;-)

Dzień 2

Dużo śniegu i zimno, ale atmosfera gorąca podgrzewana bardzo technicznymi przemowami , w przeciwieństwie do dnia pierwszego, gdzie dominowały tematy raczej miękkie.

Reloading objects like a pro (Anton Arhipov)

Kolejna prezentacja na temat JRebel. Narzędzie to bez wątpienia zdobyło swoją pozycję na rynku i raczej nie wymaga opisu. Rozwój frameworków powoduje jednak, że ZeroTurnaround ma ręce pełne roboty, a JRebel nadal nie jest oprogramowaniem działającym w 100% sytuacji, chociażby przykład dodania lub usunięcia implementowanego interfejsu przez klasę. JRebel doskonale współpracuje ze  Spring skanując aplikację podług zastosowanych adnotacji springowych i dobierając optymalną strategię przeładunku klas w razie modyfikacji. Niestety porównując z PHP ciągle wydaje się to być hackowaniem platformy jaką jest Java, by uzyskać efekt natychmiastowej widoczności zmian bez konieczności kompilacji całego kodu.
JRebel coraz lepiej wspiera różne kontenery aplikacji, lista jest naprawdę imponująca. Niestety niewiele więcej dało się z tej prezentacji dowiedzieć… Na przykład nie pojawiła się informacja, jak budować aplikacje aby JRebel lepiej je wspierał. Wydaje się, że odpowiedni podział aplikacji na odseparowane  i osobno osadzane na kontenerze moduły oraz wykorzystanie Maven dałoby podobny efekt. Anton zdradził też, że ostatnich wersjach LiveRebel wyłączono funkcje przeładunku aplikacji, tak jak to robi JRebel, ciekawe dlaczego…

Model is all you need (Sławomir Sobótka)

Opowieść o DDD rozpoczęła się historią o biznesie i IT. Biznes zapragnął checkbox’a na istniejącym formularzu i zapytał ile czasu to zajmie. IT odpowiedziało 100 MD ze względu na tzw. dług technologiczny.Powodem tego, że istniejąca aplikacja staje się bardzo droga w rozwoju jest brak odpowiedniej metodyki projektowania, która zapewniłaby łatwość modyfikacji. To prowadzi, że każda kolejna zmiana wprowadza alternatywne ścieżki wykonania poprzez rozgałęzienia w logice, czyli wszystkim dobrze znane if-y.
IT nerds vs business people
Tzw. biznes ma zupełnie inną perspektywę postrzegania systemów, niż IT, gdyż nie zna się na abstrakcjach i konstrukcjach, jakie zostały powołane do życia podczas wytwarzania oprogramowania. Dla biznesu to tylko zwykły guzik na stronie. DDD jest metodą ułatwiającą rozwiązywanie realnych problemów biznesowych umożliwiając dalsze zmiany.
Sławomir wskazał jak ważna jest rola eksperta domenowego i modelera oraz ich wzajemnej współpracy w odkrywaniu i konstrukcji modelu biznesowego. Dalej omówił Model Exploration Whirlpool, technikę do budowania modeli biznesowych.
Model musi być kompletny, bo „kompilator nigdy nie wybacza”, a pracując podług zwinnych technik wytwarzania oprogramowania „trzymamy jaja w imadle czasu”, jednak „na wypadek niemca” nie powinniśmy modelować lub kodować.
To, co przykuło uwagę, było przytoczenie definicji złożoności incydentalnej oraz złożoności kardynalnej (essencjalnej) oprogramowania. Pierwsza wypływa z tego jak technologia i podejście oraz umiejętności i jakość modelu, natomiast druga jest rdzenną złożonością rozwiązywanego problemu.
DDD wydaje się być obiecującą techniką modelowania oprogramowania, a sama prezentacja zachęciła do głębszego zrozumienia tematu.

SOAP sucks isn’t it? (Tom Bujok)

Używanie Soap w Java jest skomplikowane, ale nie jest złem samym w sobie.
Tom prezentuje projekt SOAP-WS jako metodę prostego budowania usług, podobnie jak można budować je w Groovy.

Flyway: The agile database migration framework for Java

(Axel Fontaine)

Flywaydb

Dziś więcej o narzędziu, które pozwala automatyzować uaktualnianie struktur bazy danych podczas releasowania aplikacji.

Flyway to narzędzie mocno związane z kodem i wywoływane bezpośrednio przez kod Java!
Metody init(), clean(), migrate() to podstawowe api flywaydb.  Zaletą flyway jest fakt, że opiera swoje działanie na skryptach SQL oraz pozwala na całkowite zintegrowanie plików zmieniających struktury bazy danych z kodem i trzymanie ich w jednym repozytorium. Na stronie projektu można znaleźć kilka odnośników do ciekawych artykułów dotyczących narzędzie przenoszenia zmian bazy danych.
Alternatywnym narzędziem do Flyway i chyba trochę bardziej już rozpowszechnionym jest Liquibase.

Domain driven design with Java EE (Reza Rahman)

Reza Rahmen to współautor książki EJB 3 in Action. Według autora nie istnieje uniwersalny model opisujący kompletnie dowolny system, model musi być odkrywany w czasie powstawania. Poniżej znajdują się slajdy z prezentacji.

Trochę ciekawych materiałów dotyczących DDD można znaleźć na http://dddsample.sourceforge.net
W ten sposób skończył się dzień drugi tegorocznego 33rd Degree.  Odpowiednim podsumowaniem tego dnia byłoby stwierdzenie: konferencje technologiczne są jak pudełko czekoladek, nigdy nie wiesz na jaki smak trafisz :-)

Dzień 3

Jak można było się spodziewać na koniec konferencji tematyka znowu zelżeje, by nie przemęczać uczestników.

Mocking, Stubbing and Spying with Spock (Ken Sipe)

SpockSpock to framework do budowania testów jednostkowych opartych o BDD. Główną zaletą Spocka w stosunku do dobrze znanych narzędzi pisania testów jednostkowych, chociażby takich jak JUnit jest siła wyrazu i podobno prostota.
Rzeczywiście pisanie mocków jest bardzo łatwe przy użyciu Spocka. To co wyróżnia Spocka to konieczność pisania testów w Groovy. Przykłady testów znajdują się na koncie Ken’a na GitHub.
class HelloSpock extends spock.lang.Specification {
    def "length of Spock's and his friends' names"() {
        expect:
        name.size() == length
        where:
        name     | length
        "Spock"  | 5
        "Kirk"   | 4
        "Scotty" | 6
    }
}
Whoops! Where did my architecture go? (Oliver Gierke)
W trakcie prezentacji pojawiło się kilka haseł, ale nie udało się zsyntetyzować tego w określoną całość. Tytuł w pewnym sensie okazał się pokrywać z treścią. Olivier wymienił kilka przydatnych narzędzi, między innymi JDepend oraz Sonargraph oraz omówił architekturę warstwową (layered architecture) oraz architekturę plastrową (sliced architecture) systemów.

The rise and fall of empires: Lesson for language designers and programmers (Venkat Subramaniam)

Jedną z zakańczających konferencję prezentacji została wygłoszona przez autora książki Programming Scala. Głównym przesłaniem Venkata było, to że języki programowania przemijają jak starożytne imperia. To, co do niedawna wiodło prym w świecie i było na ustach wszystkich, powoli odchodzi w zapomnienie. Według Venkata lata 2000-2015 to renesans dla języków oprogramowania, można też mówić o językowym ZOO.

W trakcie prezentacji pojawiło się kilka złotych myśli, takich jak „dostosowuj się do sytuacji” i „jeżeli ty tego nie zrobisz, ktoś inny zrobi to za ciebie”. Naturalnym też jest, że z wiekiem promujemy to, co znamy dobrze, a mniej mamy tolerancji dla tego, co nowe.
… w tym punkcie urywa się korespondencja.
Organizatorom dziękujemy za kolejną  edycję 33rd Degree i życzymy aby kolejna odbyła się  w bardziej sprzyjających okolicznościach przyrody :-)

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Witryna wykorzystuje Akismet, aby ograniczyć spam. Dowiedz się więcej jak przetwarzane są dane komentarzy.