W ostatni poniedziałek (11.04.2016) odbyła się w Warszawie konferencja 4Developers 2016 – jej cechą szczególną, w odróżnieniu od innych konferencji na które jeżdżę, jest fakt że kierowana jest nie tylko do programistów Java. Ścieżka Java oczywiście jest obecna, jednak można też posłuchać o .NET, PHP, platformach mobilnych (Android i iOS) czy też Front-End Development’cie.
Na konferencji było bardzo dużo ludzi (podobno ponad 1200 osób), co rodziło spore problemy komunikacyjne (jedna wąska klatka schodowa łącząca 3 poziomy) oraz początkowy tłok na obiedzie – na szczęście przyjście 30 minut później dało możliwość konsumpcji w cywilizowanych warunkach ;-).
Stoiska sponsorów były „nieprzeszkadzające” – zebrane w jednej dużej sali. Ciekawostka jest taka że wyjątkowo nie było Allegro ;-), za to było dużo ofert dla programistów nie-Javowych.
Poniżej podsumowanie prezentacji których wysłuchałem.
Maciej Aniserowicz „O mikroserwisach mikro-fakty i mikro-mity”
Prowadzący z firmy Bottega w przystępny i atrakcyjny sposób przedstawił i ustosunkował się do szeregu mitów jakie można usłyszeć o architekturach opartych i micro-service’y:
- nie jest to nowość, bo koncepcja była zapoczątkowana wo 2003 roku,
- dają dobrą zabawę programistom, ponieważ można uruchamiać nowe projekty nawet raz w miesiącu za każdym razem korzystając z innej technologii (tzw. hack-value), łatwo się z nich wycofać, jeżeli decyzja jest chybiona,
- nie są proste, bo wymagają skomplikowanej infrastruktury,
- jak bardzo są micro? – trudno określić, jednak dobrą aproksymacją jest taka wielkość aby zespół mógł przepisać cały micro-service w tydzień,
- powinny być niezależne od siebie, w szczególności powinny mieć własne bazy danych,
- komunikacja pomiędzy nimi jest trudna, ale dużo wynika z braku doświadczenia,
- micro-service są trudne w utrzymaniu, bo trzeba utrzymać dokumentacje, monitoringi i uważnie analizować logi,
- nowy projekt może ale nie musi być micro-service’m, zależy od warunków i doświadczenia (trzeba znać Continous Integration i Continous Delivery), przy jego braku bezpieczniej jest robić monolit.
Mariusz Sieraczkiewicz, Paweł Wrzeszcz: Jak zmienić dobre zespoły w świetne zespoły
Drugiego z prezenterów miałem już przyjemność poznać na warsztatach Warsjawa w 2014 roku. Z kolei pierwszy jest autorem książki Technical Leadership. Od eksperta do lidera..
Teza początkowa była taka że w zasadzie nie da się przekształcić dobrego zespołu w doskonały, bo ludzie nie chcą być zmieniani. Jednak prowadzący podali kilka kierunków jak taką prace zacząć od:
- identyfikacji potrzeb i problemów: przez rozmowy, wyznaczenie różnych typów celów dla biznesu i zespołu, zwracanie uwagi na detale,
- informowanie o spostrzeżeniach i budowanie świadomości problemów: wizualizacje, próby mierzenia i wyciąganie wniosków,
- wprowadzania decyzji w życie, także osobiście – obrazowym przykładem było namówienie zespołu do przyjeżdżania do pracy na rowerze przez przyjeżdżanie samemu w ten sposób.
Prezentacja była bardzo interaktywna, prowadzący wciągali słuchaczy w dyskusje i ćwiczenia budząc momentami strach wśród publiki, a późniejsze pytania z sali trochę rozbiły tok prezentacji. Spostrzeżenie uczestników był takie że treść prezentacji odbiegała nieco od przedstawionego abstraktu, a ten był bardzo ambitny. Także ja liczyłem że dostanę gotowe recepty ale takich nie było…
Andrzej Wisłowski: Użycie stosu Elastic (elasticsearch, logstash, kibana) do budowania platform analitycznych
Prowadzący pokazał fajny przykład zastosowania logstash’a do zbierania danych z Twittera, a następnie analizy, wizualizacji, tworzenia wykresów heatmap, itp.
Bardzo ciekawy i „trendy” temat, jednak prowadzący mimo bogatego doświadczenia zawodowego (wcześniej w merlin.pl, agito.pl, teraz grupa Allegro) nie jest (jeszcze) fachowcem od prezentacji: przez pierwszą część prezentacji mówił mówił głownie do ekranu a nie do słuchaczy. Zamiast przygotować prostą prezentacje ze screenshotami to skupił się na pokazywaniu na żywym systemie, bez dokładnego przygotowania, więc dłuższe momenty zajmowało oczekiwanie kiedy znajdzie coś w kolejnych menu aplikacji…
Jakub Marchwicki: JavaEE – nie musi byc tak smutna jak się Tobie wydaje
Jakub Marchwicki w bardzo atrakcyjny sposób przedstawił ideę oderwania się myślami od popularnych frameworków i spojrzenie na to co dostarcza nam sama Java EE i współczesne serwery aplikacyjne, dowodząc że możemy znaleźć nawet lepsze rozwiązania.
W kilku prostych wskazówkach przedstawił alternatywne podejście do wyboru technologii:
- należy znać własny stos bo Java EE jest coraz lepsza: np. posiada już własne wsparcie dla wątków i eventów,
- najczęściej nie zmieniamy serwerów aplikacyjnych, więc powinniśmy korzystać z dodatkowych rozwiązań które oferują („nasz JBoss jest naszym Springiem”),
- mależy unikać „Boilerplate code” korzystając z gotowych rozwiązań jak Apache DeltaSpike, np. Container Control czy Data,
- należy szukać i wychodzić poza standardy nie ograniczając się tylko do popularnych bibliotek,
- nie należy się ograniczać tylko do MVC dostarczanego przez framework.
Reasumując: cichy głos w dyskusji że nie tylko Spring’iem świat Javy stoi :-).
Grzegorz Piwowarek: Java Wars VIII: The Function Awakens
Znajomy mi skądinąd Grzegorz z firmy TouK fajnie opowiedział o nowościach dostarczonych w Javie w wersji 8: lambdy, monady i bardziej szczegółowo Optional’e i Stream’y. Elokwentny prowadzący, fajna prezentacja, dobre przykłady kodu, zabawne obrazki z internetu i hardcore’owe tempo :-).
Tomasz Ducin: Backend-less Development revisited
Fajnie poprowadzona prezentacja omawiająca aplikacje typu SPA, problemy organizacyjne przy tworzeniu takich aplikacji oraz ich testowaniu, a także przykłady sposobów mockowania zachowania back-end’u w taki sposób żeby można było tworzyć front-end bez obecności tego pierwszego.
Adam Sznajder: Taking advantage of microservice architecture and DynamoDB for costs optimization
Kolejna fajna prezentacja poprowadzona przez Adama – byłego pracownika e-point S.A. aktualnie pracującego dla firmy Sumo Logic z Doliny Krzemowej specjalizującej się przetwarzaniem logów dostarczanych przez ich klientów.
Adam opisał case-study refaktoringu jednego z micro-service’ów związanego z zastąpieniem Cassandry na DynamoDB z chmury Amazon (AWS) i różnymi, niekiedy zabawnymi, perypetiami związanymi z używaniem tejże chmury.