Tuesday, July 11, 2017

Devoxx 2017

Devoxx 2017   


Tegoroczny Devoxx w Krakowie trwał  od 21 do 23 czerwca  i odbył się w centrum kongresowym ICE, które według organizatorów może pomieścić ponad 2 tysiące osób, jest to zatem jedna z największych o ile nie największa konferencja dla programistów w naszym kraju. Dzięki uprzejmości JUG Łódź miałem okazję wziąć w niej udział za co jestem niezmiernie wdzięczny.


Przejdźmy zatem do opisu samych prelekcji. Zaraz po otwarciu na scenę wyszedł Venkat Subramanian, który mówił  o potrzebie coraz szybszego wytwarzania rozwiązań programistycznych, o znienawidzonym przez wszystkich programistów pytaniu “Are you done yet ? “ i o tym, jak bez odpowiedniego podejścia doprowadzić projekt do fiaska. Prezentacja pokazała również dlaczego programiści powinni pisać testy i dbać o quality swojego kodu, tak by nie utknąć w JDD, czyli Jesus Driven Development. Kolejną interesująca prezentacja z dnia pierwszego była autorstwa Douglasa Howkinsa zaś jej tytuł to Concurrency concepts in Java” , zatem coś  czym słyszeliśmy już wielokrotnie, prezentacja ta była jednak nieco inna, autor nie skupiał się na konkretnych przykładach programistycznych, ale zamiast tego próbował pokazać jak to wygląda “od środka”, czyli w jaki sposób kompilator może reorganizować kod i jaki to może mieć wpływ chociażby na widoczność zmiennych między wątkami. Następnie trafiłem prosto na wykład o Clean Code prowadzony przez Victora Rentea, poza konceptami szeroko poruszanymi we wszystkich ksiażkach na temat clean code’u, a więc odpowiednim nazywaniu metod, rozważaniami ile linijek może mieę nasza klasa a ile powinna miec metoda, autor mówił również o Javie 8 i o tym jak używac Lambd i Streamow, by nie doprowadzić do sytuacji w której nasz kod staje się zupełnie nieczytelny - każdy kto pracował z Java 8 wie, że o to nietrudno. Następnie rozpoczęła się sesja  Meet & Greet w trakcie której kilku prelegentów prowadziło dyskusje, jedną z nich była dyskusja na temat popularnego ostatnio Kotlina i jego zastosowań w firmie Allegro, z dyskusji można się było z niej dowiedzieć między innymi, dlaczego używają oni Kotlina “na produkcji” w czym jest lepszy od Javy i dlaczego w ich przypadku zdeklasował Scale.


Dzień drugi to między innymi kolejny temat “na topie” a więc nowa Java, Simon Ritter i jego prezentacja 55 new features in JDK 9” jak sama nazwa wskazuje skupiała się na tym co nowego zobaczymy w nowej wersji języka. Poza omawianymi szeroko Jigsawem, czyli modularnością i długo oczekiwanym jshellem, Simon opowiedział również o usprawnieniach związanych ze strumieniami i wielowątkowością, prywatnymi metodami w interfejsach, czy zmianach związanych z zachowaniem struktury kodu w czasie kompilacji. Warto również wspomnieć o prezentacji Sama Newmana, który opowiedział o bezpieczeństwie w mikroserwisach, o tym w czym mikroserwisy są lepsze od monolitu jeśli chodzi o kwestie bezpieczeństwa i dlaczego, ale żeby nie było tak kolorowo, była również mowa o ich wadach w szczególności problemach z maintenance’ m  i wykrywaniem ataków. Jeżeli mielibyśmy zapamiętać z prezentacji tylko jedną rzecz, niech to będzie fakt, że najlepszą metodą reakcji na atak jest usunięcie wszystkiego i przywrócenie backupów z momentu co do którego jesteśmy pewni, że system był “czysty”. Kolejna interesująca prezentacja to znowu Doug Hawkins i  Java Performance Puzzlers”. Jeszcze raz była mowa o JVM i jego wewnętrznym działaniu, o tym jak architektura CPU wpływa na optymalizację JVM, i dlaczego ta architektura nie zawsze działa na naszą korzyść. Była mowa o tym, jaka jest maksymalna długość bytecode’ u która JVM będzie próbował optymalizować. Dzień drugi, podobnie jak pierwszy zakończył się sesją Meet & Greet przy piwku.


Dzień trzeci to talki głównie o architekturze i mikroserwisach, pierwszy z nich “Resilient Architecture” prowadzona przez Matta Stine, skupiła się na pokazaniu różnic między architekturą, którą tworzymy dziś a tą która powstawała dziesięć lat temu. Największą różnicą jest zasada “Embrace Failure”, której trzymamy się dziś. Nie tworzymy więc aplikacji, która jest niezawodna, ale zakładamy, że prędzej czy później dojdzie do jakichś błędów, które spowodują niedostępność części systemu i staramy się na to przygotować,  tak by zminimalizować straty. Pewnym rozwiązaniem tego problemu wydają się mikroserwisy. Które nie rozwiązują jednak wszystkich problemów związanych z resiliency. Na prezentacji była mowa o kilku technologiach, które mogą pomóc w budowaniu tego typu aplikacji. Są to między innymi  Hystrix czy Chaos Monkey. Dalej o architekturze mówił Jakub Kubryński w prezentacji “Microservices - the naked truth of maintainability”. Ta prezentacja była inna niż większość prezentacji o mikroserwisach, zazwyczaj słyszymy jakie to wielkie zyski przynosi przeniesienie się z monolitu na mikroserwisy, mało zaś mówi się, że utrzymanie architektury mikroserwisowej jest zdecydowanie trudniejsze i dużo bardziej wymagające. Testy integracyjne mikroserwisów są zazwyczaj zarówno trudne, drogie i czasochłonne. Jakub starał się pokazać, że z odpowiednim podejściem, możemy ograniczyć koszty i ilość testów integracyjnych, skupiając się na unitowych i pozwalając użytkownikom zweryfikować pełną funkcjonalność.Ostatnia prezentacja miała nieco dziwny i intrygujący tytuł “PsyPhilProg”  i była prowadzona przez Teda Newarda, który mówił o podobieństwach między programistami, psychologami i filozofami, o tym, że przedstawiciele tych trzech grup muszą się zmagać z wielopoziomowymi abstrakcjami, które są niespotykane nigdzie indziej. Jedną najcenniejszych rad wynikających z tej prezentacji była ta, że programiści w pracy powinni zadawać filozoficzne pytania jak “po co?”, “dlaczego?”, gdyż mogą one zmienić nasze postrzeganie problemu z którym się zmagamy.

Tegoroczny Devoxx miał bardzo mocny “skład” i w ciągu wszystkich trzech dni można się było dowiedzieć masy ciekawych i przydatnych rzeczy, trudno by mi było wybrać najlepszą prezentację czy też najlepszego prelegenta. W tym krótkim poście starałem się zawrzeć opisy najciekawszych moim zdaniem prezentacji ze wszystkich trzech dni.

Do zobaczenia za rok w Krakowie!
Dominik