czwartek, 3 lipca 2014

Relacja z 33 Degree 2014

Tegoroczną konferencję 33Degree rozpocząłem od wykładu Tomka Bujoka pt. 33 things you want to do better. Pierwszy poprzedzający go keynote był nudny, a drugi gdzieś już chyba widziałem lub słyszałem.

Tomek przedstawił sporo narzędzi ze swojego toolboxa, z którymi warto się zaznajomić i w razie konieczności używać. I tak było o bibliotekach: Guava, Lombok, SLF4J, Unitils (testy jednostkowe na plikach), JUnitParams, Awaitility (do testowania wielowątkowego), Byteman (ciekawy projekt do zmiany zachowania kodu produkcyjnego w locie), Spock, grape (do skryptów shelowych w Groovy’m), Git, bash i inne. Na koniec Tomek zareklamował swój projekt: babun. Jest to skonfigurowana powłoka z preinstalowanym gitem i paroma narzędziami do przyjemniejszej pracy z shellem pod Windowsem.

Z powyższych warto sobie odświeżyć Lomboka. Kiedyś już przyglądałem się tej bibliotece, ale był wtedy problem ze wsparciem dla IntellJ Idea. Teraz wygląda na to, że jest już lepiej i doszła możliwość tworzenia builderów za pomocą adnotacji.

O kolejnej prezentacji: RESTing away from hell Jakuba Janczaka nic nie napiszę, bo było nudno i nawet nic nie zanotowałem.

Kolejna prezentacja Get Back in Control of Your SQL Lukasa Edera bardzo mi się podobała. Początkowo prelegent przedstawił wady na przykładowym kodzie takich rozwiązań jak: JDBC, EJB 2 / 3 i Hibernate. Rozwiązaniem na wszystko ma być JOOQ. Narzędzie to generuje na podstawie schematu bazy danych stałe zawierające nazwy tabel, kolumn itp. Później możemy z tego korzystać za pomocą fluent API, które jest bardzo zbliżone do SQL. Właściwie jedno i drugie czyta się tak samo, tyle że w Javie dochodzi kilka kropek i nawiasów. Jeszcze przyjemniej wygląda to w Scali. A całość jest Type Safe. Jest nawet jakiś prosty mapping na obiekty POJO. Niestety JOOQ, jest rozwiązaniem komercyjnym, dla komercyjnych baz danych.

Narzędzie spodobało mi się i chętnie bym z niego kiedyś skorzystał w projekcie. Jakby ktoś chciał obejrzeć wystąpienie (ale z GeeCON'a), jest już dostępne:


A w tak zwanym międzyczasie rozwinął się gorący wątek na Wrocław JUG (wielkie brawa za reaktywację) i padło tam jeszcze parę innych narzędzi tego typu: LIQUidFORM (ale to już trochę martwy projekt) Prevayler i Querydsl.

Kolejny wykład był dosłownie sprintem po nowościach w JEE 7. Prelegent (Arun Gupta) przeleciał w 50 min po 50 nowinkach, dotykając każdego aspektu tej technologii. Dla mnie były to jedynie zmiany kosmetyczne, żadnej nowej wielkiej rewolucji.

Następnie słuchałem prezentacji Josh Longa pt. Microservices and REST with Spring Boot. Było kodowanie na żywo, ale bardzo fajnie. Prelegent zaczął od start.spring.io i pokazał jak niewiele należy samemu dopisać, aby mieć już coś działającego. Było sporo o Richardson Maturity Model i trochę o bezpieczeństwie. W międzyczasie prelegent korzystał z ciekawej wtyczki do Chrome’a do generowania zapytań RESTowych: Advanced REST client.

Dzień drugi zaczął się znów od keynotów. Pierwszy był wypełniony tabelkami z Excela i kolorowymi Clipart’ami z Worda bez konkretnego przesłania. Typowy przykład jak nie robić prezentacji... Szybko opuściłem salę.

Drugi keynote był już lepszy. Prelegent wziął na studium przypadku pisanie latarki na iOS. Najważniejsze jest, aby przy różnych przedsięwzięciach nie tylko programistycznych, odpowiedzieć sobie na pytanie „What, Whoam and Why?”

Prelegent opowiadał dalej o aplikacjach i ich interakcji z użytkownikiem. Nasza aplikacja powinna mówić do pojedynczej osoby (używać odpowiednich form gramatycznych), bo interakcja jest między użytkownikiem a sprzętem. W ten sposób uda nam się przemówić do tłumów. Nie zmienimy w ten sposób całego świata (bo nie możemy), ale zmienimy świat dla jednej osoby, a to już jest sukces. A zmieniając rzeczywistość pojedynczych osób zmieniamy świat wielu osób.

Było jeszcze o reklamach Apple które nie mówią o tym jak świetny jest ich produkt, ale uderzają w ludzkie życie, uczucia i inne wartości. Na koniec było jeszcze o córce prelegenta, która mu zmarła, przez co wykład bardzo oddziaływał na emocje prelegenta, jak i słuchaczy.

Następnie byłem na wystąpieniu Tomka Nurkiewicza na temat OLAPowej bazy danych Saiku. Bardzo fajne narzędzie do generowania raportów, trendów, wykresów itd. Wykład był fajny, było wiele przykładów użycia… Jakbym kiedyś potrzebował, to chętnie spróbuję.

Później byłem na wykładzie Jarosława Pałki na temat Patterns for Organic Architecture. Spodziewałem się, że będzie to prezentacja bardziej techniczna, z przedstawieniem konkretnych wzorców, ale było bardzo miękko, więc się zawiodłem.

Następnie byłem na prezentacji Venkat’a Subramaniam’a, który przedstawiał Projekt Nashorn. Jest to narzędzie, które kompiluje kod JavaScript’a do bytecodeu JVM. Czyli możemy sobie po stronie serwera pisać w JavaScript. Prelegent pokazywał na żywo, jak można wywoływać JS z Javy i na odwrót.

Kolejnym slotem byłem mocno zawiedziony. Najpierw byłem na prezentacji Abdelmonaim Remani dotyczącej debuggingu. Wykład był tragiczny, jak dla studentów pierwszego roku. „Aby znaleźć bug’a trzeba najpierw zlokalizować komponent w którym on jest”. Musiałem opuścić prezentację. W innych salach również nie było lepiej, gdyż sporo ludzi wędrowało wte i wewte.

W końcu wylądowałem na prezentacji dotyczącej github’a i gerrit’a Luca Milanesio. Prelegent porównywał oba systemy i przedstawił workflow, aby push’ować do innego brancha, który po przeglądnięciu się merguje z masterem. Było również wspomniane o Git review plugin, który po wypushowaniu zmian podaje linka do review. Było również o jakimś pluginie do Jenkinsa, który wspiera Gerrita. Całość można przetestować na gerrithub.io, które się integruje z naszymi repozytoriami z GitHuba.

Następnie byłem na prezentacji JavaScript Design Patterns Pratika Patela. Było o wzorcach z JS, za pomocą których możemy osiągnąć pewne elementy, które mamy w Javie. I tak przykładowo za pomocą namespace możemy utworzyć globalny obiekt, w ramach którego możemy trzymać sporo rzeczy. Należy jednak uważać, aby nam ten twór nie urósł za bardzo, bo nie będzie on odśmiecany. Było jeszcze o Mixin module (coś na kształt Dependency Injection), publish subscribre w ramach jednego kontekstu, Command (jako Aspect) i Factory (np. w backbone).

Na koniec została jeszcze zaprezentowana ciekawa stronka: TodoMVC.com na której jest napisana jedna i ta sama aplikacja z wykorzystaniem różnych bibliotek JavaScriptowych.

Trzeciego dnia keynote’y były przesunięte na koniec dnia, więc na szczęście można było je bezboleśnie pominąć. A dzień rozpocząłem od wystąpienia Jarka Ratajskiego Doing WEB development clean way, gdyż miało być duże show i ciekawy sposób prowadzenia prezentacji. I rzeczywiście było trochę strzelania do zombie i wywoływania osób z publiczności do odpowiedzi. Było również poprawianie kodu JS na żywo, ale nie do końca ono działało, ze względu na przeskalowanie ekranu.

Co do konkretów, to Jarek pokazał, że należy korzystać ze statycznej analizy kodu, zwłaszcza w dynamicznych, słabo typowanych językach jak JS, gdzie można bardzo łatwo zrobić sobie krzywdę. Takową analizę można przeprowadzić za pomocą np. jshint. Prelegent również namawiał do korzystania z frameworków JS, takich jak angularjs i do używania pluginów w przeglądarkach wspierających development.

Było również o trendach, jak kiedyś, a jak obecnie tworzy się strony internetowe. I tak na dzień dzisiejszy królują single page applications. Z narzędzi było jeszcze o Lesscss które pomaga nam generować CSS. Wartością dodaną jest możliwość tworzenia zmiennych funkcji itp. do lepszego zarządzania tymi stylami.

Prezentacja fajna w formie, ale jak na konferencję pokroju 33 Degree, to było za dużo show, a za mało konkretów. A wiem, że Jarka na pewno stać na więcej.

Później byłem na prezentacji Jakuba Kubryńskiego na temat Spring Boot. Już wcześniej o tym na konferencji słyszałem, ale postanowiłem jeszcze raz zobaczyć. Generalnie framework (a właściwie zbiór frameworków) został pomyślany dla, ostatnio dość popularnych, microserwisów. Jest również świetną baza, dla nowych projektów, gdyż trzeba bardzo mało napisać aby wystartować z aplikacją. Dodatkowo aplikacja zawiera wbudowanego tomcata lub jetty, więc można bardzo szybko ją wystartować.

Jakub pokazał możliwości frameworka i ostatnie 15 minut był live coding. Poprzez lokalne Wi-Fi można było się połączyć ze stworzoną na szybko stroną i dzięki temu prelegent mógł pokazać satystyki jakie daje nam spring boot. Prezentacja bardzo udana.

Następnie byłem na reaktywnej Javie Tomasza Kowalczewskiego. Było o bibliotece RxJava, ale jakoś mnie nie poniosło. Sposób przemawiania do mnie nie dotarł.

Na koniec konferencji byłem chyba na najmniejszym wykładzie podczas całej imprezy. Była to prelekcja Dariusza Lukszy pt. Your own full blown Gerrit plugin. Na sali było jakieś 10 osób, i wszyscy zgromadzili się bliżej prelegenta. Ale trudno się dziwić, skoro w sali obok było show Venkata.

Darek opowiadał, jak łatwo można napisać plugin do Gerrita, który wykonuje ponowny build naszego kodu na Jenkinsie. Kod można znaleźć tutaj: gerrit-retriggerme. Darek bardzo zwinnie przełączał się pomiędzy otagowanymi wersjami swojego kodu, opowiadając przy tym co się w nim zmieniło. Temat ciekawy, jakby ktoś potrzebował.

Podsumowując konferencję było bardzo gorąco, zwłaszcza w namiocie ze stoiskami sponsorskimi. Dmuchawy i otwieranie kolejnych ścian trochę pomagało, ale to i tak lepiej niż gnieździć się w wąskich korytarzach kina. Na szczęście stanowiska sponsorskie szybko reagowały na upał i załatwiały zimne napoje w kolejnych dniach konferencji.

Fajnie też, że przygotowano aplikację na telefon z rozkładem jazdy, ale brakowało mi w niej informacji o tym, kiedy, gdzie, jaki konkurs jest rozstrzygany. Pomogłoby to jeszcze bardziej promować się sponsorom konferencji. W tym roku chyba najbardziej zaszalał Luxoft, dając (prawie) każdemu uczestnikowi tableta. Wiadomo, że nie był to jakiś super sprzęt, ale zasponsorowanie tak sporej ilości urządzeń to na pewno było nie lada wyzwanie i koszt. Choć pewnie spora większość uczestników już takie zabawki dawno posiada w swoich zasobach.

Co do poziomu wykładów, to było bardzo nierówno. Nie było chyba żadnego, który by wywrócił, lub choćby zachwiał mój dotychczasowy światopogląd. Brakowało mi również bardziej praktycznych warsztatów.

Sporo czasu zajęło mi sporządzenie tej notki, ale niełatwo jest streścić 3 dni konferencji w jeden wpis. A już na dniach zbliża się Confitura. Mam nadzieję, że relacja z tej imprezy powstanie szybciej.

środa, 23 kwietnia 2014

DevCrowd 2014

W tym roku udało mi się ponownie (bo po raz drugi) zawitać na konferencję DevCrowd do Szczecina. Nie jest to kolos kalibru GeeCona czy 33rd Degree, ale tworzy ona swój własny specyficzny klimat. Przygotowano nawet aplikację na androida, pomagającą w podjęciu decyzji, na którą prelekcję wybrać się aktualnie. A do wyboru były dwie równoległe ścieżki.

Rozpoczęcie konferencji przeciągnęło się mocno, przez co do obiadu wszystkie wystąpienia zostały przesunięte o kilkanaście minut. Na szczęście po obiedzie wszystko wróciło na swoje miejsce.

Na początek udałem się na prezentację Macieja Opały i Wojtka Erbetowskiego pt. Designing API for Mobile App. Jak więc projektować serwerowe API dla aplikacji mobilnych? Przede wszystkim z powodu powolnych łączy komórkowych, problemów z zasięgiem, przemieszczania się użytkownika, należy ograniczyć liczbę przesyłanych danych do minimum. Jeśli wystawiamy po stronie serwerowej RESTa, to lepiej jest przesyłać dane za pomocą JSONa niż XMLa. W przykładzie prelegentów, pozwoliło to na zmniejszenie wielkości wiadomości o 37%.

Warto również korzystać z Cache’a Http po stronie serwera, jak i Androida. W telefonie można w tym celu skorzystać z tych narzędzi: retrofit, OkHttp i HttpResponseCache. Dobrym sposobem na zmniejszenie rozmiaru paczki danych przesyłanej przez sieć, jest skorzystanie z kompresji GZIPa. Trzeba jednak uważać, gdyż dla małych plików, może ona nie opłacać się.

Przedstawiony był również problem wersjonowania naszych Interface’ów. Wynika on z opóźnionego aktualizowania aplikacji na telefonach użytkowników, czyli mogą wymagać starego API. Najlepiej, aby się ono nie zmieniało, ale najczęściej jest to niemożliwe. I tak można podawać Path parameter (np. http://api.example.com/res/v1) media type (lub custom header) (np. http://api.example.com/res+v1) albo subdomenę (np. http://v1.api.example.com/res). Wszystkie rozwiązania posiadają jednak swoje wady.

Na koniec wspomniano jeszcze o narzędziu Swagger, do tworzenia dokumentacji (coś ala javadoc) dla RESTowych aplikacji.

Zawsze bałem się prezentacji, gdzie jest dwóch prelegentów. Najczęściej oznaczało to, że prowadzący zbytnio nie znają się na temacie, lub mają opory przed wystąpieniami publicznymi. Tutaj jednak wypadło to dobrze i sprawnie.

Na drugą prezentacje wybrałem wystąpienie Mateusza Kaczmarka pt. Good design makes us happy – czyli podejmij tę decyzję za mnie. Na początku Mateusz polecał książki, od których wszystko się u niego zaczęło, czyli pozycje Dona Normana (nie pamiętam którą dokładniej) i Steva Kruga Don’t Make Me Think. Na zajawkę zamieszczam prezentację z TEDa tego pierwszego Pana.



Następnie prezentacja była wypełniona przykładami, gdzie zastosowano fajne, udane pomysły, jak i przedstawiono firmowe porażki. I tak Apple swego czasu było warte więcej niż polskie PKB, Amazon stworzył przyjemny proces zakupowy, Google uznało, że wyszukiwanie musi być proste itd. Natomiast w sektorze gier, firma EA zdobyła 2 razy z rzędu tytuł najgorszej firmy roku w USA. A zasłużyła sobie na to, dzięki wypuszczaniu niedokończonych tytułów. Inaczej było w przypadku Diablo 2 i Starcrafta, na które wydawcy kazali sobie dłuuugo czekać, co zostało sowicie nagrodzone. Również Blizzard (wydawca Diablo) pokazał, jak można naprawić swoje błędy. Przykładowo firma zamknęła sklep, za pomocą którego gracze handlowali przedmiotami w grach, gdyż to psuło rozrywkę. I ogłosili to ludzie wyglądający jak gracze, a nie panowie w garniturkach.

Co więc robić aby uzyskać UX User experience? Dla ludzi biznesu trzeba wkładać więcej wykresów do naszych aplikacji, a dla szarych Kowalskich należy upraszać nasze interfejsy graficzne. Dzięki temu użytkownicy czują się bezpieczniej i będą korzystać z naszej aplikacji. Warto też podejmować typowe decyzje za użytkownika, ograniczając mu liczbę opcji do skonfigurowania, gdyż najgorzej to stracić zaufanie użytkownika, a jeszcze gorzej jego pracę.

Prezentacja fajna, aczkolwiek był to raczej wstęp do tematu, który nie jednemu zapewne uświadomił istnienie problemu. Brakowało mi bardziej konkretnych rad i wytycznych, jak tworzyć proste i przyjemne interfejsy użytkowników. Na koniec wspomniano o innej książce Steva Kruga Rocket Surgery Made Easy, traktującej o tym, w jaki sposób tworzyć testy interfejsów na użytkownikach końcowych.

Następnie udałem się na prezentację Koziołka: Jak pracować i nie zwariować. Rozmawialiśmy o tym, co najbardziej wpływa na naszą pracę (a wiec krzesło, klawiatura, dysk SSD, RAM i 2 monitory). Każdego dnia powinniśmy lepiej poznawać nasze IDE, biblioteki i narzędzia. Warto też automatyzować jak najwięcej, gdyż jesteśmy leniwi, a jak nie będziemy musieli wielokrotnie pisać tego samego, to życie będzie przyjemniejsze.

Dalej było o introwertykach, psychopatach, dzieciach autystycznych, mądrej asertywności, drugim znaczeniu słowa SCRUM, potrzebie twardego resetu, śnie i przerywnikach w pracy. Ciekawy był pomysł Koziołka, jak odliczać sobie czas w technice pomodoro. Warto do tego użyć gier na facebooku, w których coś tam po jakimś czasie można zebrać i na nowo posiać. Wymusi to na nas regularne przerwy dla umysłu. Z praktycznych narzędzi, było wspomniane o bibliotece jFairy. która to generuje losowe dane.

Była to fajna i śmieszna prezentacja.

Następnie byłem na prezentacji Bartłomieja Nićka pt. Programista to za mało. Prelegent bardzo chaotycznie mówił i w ogóle nie zrozumiałem ani grupy docelowej, ani celu prezentacji. Było coś o wadach naszego zawodu, wadach samych programistów, jak się dawniej realizowało projekty, a jak się to robi obecnie. Prezentacja bardzo nieudana. Z prezentacji jedynie utkwiła mi różnica miedzy Computer Programer a Software Developer wg. US Bureau of Labor Statistic. A więc:

Computer programmers write code to create software programs. They turn the program designs created by software developers and engineers into instructions that a computer can follow.

Software developers are the creative minds behind computer programs. Some develop the applications that allow people to do specific tasks on a computer or other device. Others develop the underlying systems that run the devices or control networks.

Następnie był smaczny obiad i wystąpienie Pawła Szulca na temat JavaScriptu. Nie wiem czy to był celowy zamysł organizatorów, aby Pawła umieścić zaraz po obiedzie, ale jak dla mnie był to strzał w dziesiątkę! Nieprzerwany potok słów Pawła nie pozwalał ani na chwilę nudy i raczej nikomu nie chciało się spać.

Prelegent przekonywał nas, że JavaScript nie jest Mordorem, którego należy się obawiać, a wystarczy poznać i zrozumieć różnice w stosunku do Javy, to będzie dobrze. Przede wszystkim JS jest językiem funkcyjnym, a nie obiektowym. To, co początkowo przeraża, to możliwość wywołania funkcji z inną liczbą argumentów niż ją zadeklarowano! I tak niezdefiniowane argumenty będą undefined, a nadmiarowe będą zignorowane. W JS każda funkcja posiada lokalną zmienną argumentsktóra to przechowuje wartości argumentów przekazanych nam do funkcji.

Następnie Paweł bardzo fajnie omówił sposoby wywoływania funkcji w JS i czym się one od siebie różnią. A różnią się zazwyczaj kontekstem, na rzecz którego będzie odbywać się wywołanie, tzn. możemy otrzymać coś innego pod lokalna zmienną this. I tak mamy 4 możliwości:

1.    Wywołanie bezpośrednie powoduje, że funkcja otrzyma domyślny context, w przypadku przeglądarki jest to obiekt window
function func() {
    console.log(this)};

func();
// [object Window]
2.    Wywołanie jako metoda. Polega to na przypisaniu funkcji do pola w obiekcie. Dzięki temu dostajemy metodę, którą mozemy wywołać. W tym przypadku jako this otrzymujemy obiekt na rzecz którego funkcja została wywołana.
function func() {
    console.log(this)
}

var variable = {
    property: 'value'
};

variable.method = func;
variable.method();
// Object { property="value", meth=func()}
3.    Wywołanie jako konstruktor, a więc ze słówkiem kluczowym new powoduje utworzenie pustego obiektu (dziedziczącego z prototype). Funkcja ma w takim przypadku za zadania zainicjowanie obiektu, który zostaje zwrócony jako rezultat wywołania.
function func() {
    console.log(typeof(this))
}

var obj = new func('abc');
// object
4.    Wywołanie za pomocą applay() i call(). Przydaje się ta możliwość, gdy nie chcemy kopiować funkcji do innego obiektu, aby nie powtarzać kodu. Podmienimy jednak przez to context, czyli this. Predefiniowana funkcja applay() przyjmuje poza pierwszym argumentem tablicę z argumentami, a call() przyjmuje argumenty osobno (po prostu po przecinku)
function func() {
    console.log(this)
}

var variable = {
    property: 'value'
};

func.call(variable)
// Object { property="value"}
Było jeszcze trochę o Scop’ach, Hoistingu, domknięciach i modułach. Warto swój kod Javaskriptowy testować, np. Za pomocą narzędzi jak jasmine, czy mocha. Warto również testować swój kod statycznym analizatorem, np. JSLint. A jak musimy się na szybko nauczyć tego języka, to warto się zabrać za czytanie 2-giego i 3-ciego rozdziału Secrets of the JavaScript Ninja.

Kolejną prezentacją, na którą się udałem, było wystąpienie Tomka Borka, na temat zaawansowanego testowania. Chciałem początkowo iść na SCRUM, but, ale już miałem dość miękkich prezentacji i potrzebowałem czegoś technicznego posłuchać.

Na początku Tomek przestrzegał, aby nie używać PowerMocka, gdyż jest bardzo czasożerny, gryzie się z narzędziami do testowania pokrycia kodu, rzuca kiepskie wyjątki, a przede wszystkim pomaga początkującym pisać brzydki kod.

Dalej było trochę o adnotacji Parameterized z JUnita i ich alternatywach. Ciekawie wygląda projekt zohhak, którego wcześniej nie znałem.

Prelegent opowiedział jeszcze o paru ciekawych pomysłach, dotyczących testowania. Przykładowo, gdy wystawiamy usługi RESTowe na zewnątrz, to warto sprawdzić, czy te opublikowane interfejsy nie zmieniły się. Co do adnotacji @Ignore, to powinna być przy niej data do kiedy może ona być w teście i dlaczego.

Było jeszcze o narzędziach pomagających ogarnąć nam bazę danych, tj Liquibase, DBUnit i Databene Benerator. To ostatnie narzędzie pomaga generować testowe zbiory danych.

Z innych ciekawych (albo też egzotycznych) narzędzi był wspomniany Sureassert. Działa on tylko z Eclipse i pomaga realizować ideę design by contract i ciągłego uruchamiania testów (czyli coś jak infinitest). Niestety nie jestem fanem podejścia programowania kontraktowego i rozwiązanie działa tylko w Eclipsie.

Było jeszcze wspomniane o trzech bibliotekach, pomagających w skanowaniu naszych klas w celu poszukiwania adnotacji: Scannotation, Reflections i Classindex. Na koniec prezentacji było fajne podsumowanie, pokazujące co było omawiane na prezentacji.

Na koniec organizatorzy konferencji przygotowali niespodziankę, a mianowicie zdalne wystąpienie Adama Bienia z tematem How To Tackle Java EE 7. Live streaming był bardzo dobrze przygotowany, całość była transmitowana przez platformę ustream.tv. Prelegent zmieniał tło na którym mówił i wyglądało to bardzo profesjonalnie. Inne jego prezentacje można obejrzeć tutaj: tv.adam-bien.com.

Widać że Adam ma sporo doświadczenia w tym temacie. Było sporo kodowania na żywo, niewiele slajdów (które są dostępne tutaj), a pytania z publiczności można było zadawać za pomocą twittera. Ciekawe rozwiązanie, aczkolwiek z telefonu trochę dłużej pisze się twitnięcie, przez co było spore opóźnienie w dialogu.

Co do samej prezentacji, to Adam pokazał nam, jak można łatwo i szybko zbudować projekt z wykorzystaniem Javy EE 7. Polegało to na skorzystaniu z archetypu mavenowego i wyrzuceniu połowy domyślnego pom’a. Projekt Prelegent twierdził, że nie powinno się dodawać biblioteki do projektu „na zaś”, tylko w momencie gdy naprawdę są potrzebne. Przez to czas build’a i deploymentu powinien (przynajmniej początkowo) trwać krócej.

Generalnie kodzenia było za dużo i po jakimś czasie człowiek się wyłączał i gubił w kodzie. Dla mnie był to trochę odgrzewany kotlet, gdyż podobną prezentację widziałem na JDD 2012 z tą różnicą, że wtedy była Java EE 6 na tapecie. Jeśli ktoś chce obejrzeć tą prezentację, to jest ona dostępna poniżej:


Na zakończenie było jeszcze zbieranie ankiet i losowanie nagrody.  Konferencja wypadła bardzo fajnie. Brakowało mi jedynie typowo technicznych zagadnień, no ale trudno. Może następnym razem.