JDD to obowiązkowa pozycja każdego, kto ma do czynienia z językiem JAVA. To konferencja nie tylko dla programistów - jeśli pracujesz, wykorzystując ten język programowania, czy to jako architekt, tester, analityk czy kierownik zespołu - nie może Cię tutaj zabraknąć. JDD to dwa intensywne dni spotkań, rozmów i wykładów. W tegorocznej edycji konferencji prelegenci jak co roku stanęli na wysokości zadania, a szeroki wachlarz zagadnień sprawił, że nie było czasu, by się nudzić. Przeczytajcie naszą relację i dowiedzcie się, co najbardziej zainspirowało naszych specjalistów. Zapraszamy do lektury!
Jarek (programista JAVA): - Tym razem moja uwaga skupiła się sieciach neuronowych, ich uczeniu i optymalizacji, o czym mówił Jarosław Czub podczas prelekcji „Wprowadzenie do DL4J, czyli sieci neuronowe okiem developera”. Koncept sprowadza się do symulowania przyrody. Ludzki mózg to aż 1,5 x 10^11 komórek nerwowych, ciężko to sobie wyobrazić, a jeszcze ciężej zamodelować w świecie cyfrowym. Sztuczny neuron jest bardzo podobny do biologicznej komórki - na wejściu otrzymuje informacje z innych neuronów, sygnały przechodzą przez funkcję aktywacji, która decyduje, czy sygnał przekazać dalej. W zależności od poziomu trudności problemu, potrzebujemy więcej lub mniej warstw w sieci neuronowej, co ma wpływ na czas uczenia. Całe sieci można podzielić na kilka typów: np. sieci konwolucyjne, które wyszukują konkretne cechy w różnych obszarach obrazu. Dla danych zmieniających się w czasie trzeba pamiętać, że wynik przetwarzania musi być jednocześnie częścią danych wejściowych. Przygotowanie sztucznej sieci neuronowej to dopiero początek. Ich optymalizacja i otrzymanie oczekiwanej jakości to bardzo trudny proces. Jakość na poziomie 90% jest możliwa do osiągnięcia, ale otrzymanie wyższej wartości to już prawdziwa sztuka!
Drugi obszar moich zainteresowań to optymalizacja procesów biznesowych. Jakub Kubryński podczas prelekcji „Automate all the things” radził, że zabierając się do poprawy wydajności w zespole, na początku musimy zadać sobie pytanie: „Dlaczego praca jest żmudna i nie posuwa się do przodu?”. Tu przychodzi na pomoc… biologia z psychologią! Nasze ciało i psychika nie są idealne, a ewolucja ma tu jeszcze sporo do zrobienia. Ludzie nie lubią powtarzalnych czynności - powoduje to zmęczenie, a w dłuższym okresie wpływa na nasze zdrowie psychiczne. Ludzie bywają nieprzewidywalni, wiele czynników wpływa na ich działanie. Kiedy automatyzujemy / optymalizujemy proces i jesteśmy w stanie wyeliminować błędy ludzkie, otrzymujemy szybki feedback, co działa, a co nie. Otrzymujemy czytelną dokumentację naszych działań, skrypt, który odpowiada za proces, sam w sobie jest też jego dokumentacją. Przy wyborze procesu, który chcemy zautomatyzować, jest kilka elementów, na które trzeba zwrócić uwagę: ile dany proces trwa, ile zaoszczędzimy na jego optymalizacji, jak często go będziemy używać i czy czynność generuje wiele błędów. To wydaje się dość jasne. Mniej oczywisty może być kontekst społeczno-kulturowy: optymalizacja może pozbawić wielu osób pracy. W takim przypadku najważniejsza jest komunikacja z zespołem - trzeba przedstawić jasno naszą motywację i wyjaśnić, że zaoszczędzony czas będzie można przeznaczyć na naprawdę ważne czynności. Brak wizji i standardów również wróżą klęskę. Nie można automatyzować chaosu, a modne narzędzia nie rozwiążą sprawy.
Konrad (kierownik zespołu R&D w Comarch): - Byłem mile zaskoczony dużą ilością nowych, ważnych tematów zaprezentowanych w formie ciekawych prelekcji przygotowanych przez pasjonatów programowania i ekspertów z czołowych firm informatycznych.
Prezentacja, która szczerze mnie rozbawiła, to „Testing message driven applications with Spring” prowadzona Jakuba Pilimona i Michała Michaluka. Był to dialog między architektem i programistą uważanym za doświadczonego. Momentami wystąpienie przypominało scenkę kabaretową punktującą grzeszki programistów: niedbałe podejście przy pisaniu kodu, przerzucanie zadań na innych, pomijanie testów – każdy zna to z doświadczenia. Przy okazji w przystępny sposób panowie przedstawili na przykładzie Spring Cloud, jak przejść w klasycznej synchronicznej aplikacji na asynchroniczne procesowanie zdarzeniowe. Architektura zdarzeniowa może znacznie zwiększyć wydajność systemu, przy okazji wprowadza dodatkowe funkcjonalności, a poprawny podział domenowy (DDD) umożliwia podział systemu na mniejsze niezależne, łatwiejsze do utrzymania jednostki. Warto skorzystać, bo kto nie idzie z postępem, ten się cofa.
JDD to 4 ścieżki tematyczne, ponad 50 inspirujących prelekcji - spora dawka wiedzy i inspiracji. W tym roku konferencja odbyła się w krakowskim Nowohuckim Centrum Kultury. Miejsce okazało się mało dostosowane do tego typu konferencji. Niektóre prelekcje okazały się takim hitem, że ciężko było wcisnąć się do sali wykładowej, a scen z pojemną widownią było zdecydowanie za mało. Problemem okazał się także obiad, którego jakość pozostawiała wiele do życzenia, a i spożyć go nie było gdzie. Jednak pomimo niewielkich niedogodności, JDD to z pewnością obowiązkowy punkt w harmonogramie każdego specjalisty zajmującego się programowaniem w języku JAVA. Do zobaczenia za rok!