Saturday, March 29, 2014

Play 2 - powrót do prostoty

Trochę obawiałem się o frekwencję na spotkaniu z racji tego, że zostało umieszczone na meetupie dopiero w sobotę i to nawet bez poprawnego tytułu, a pełen opis spotkania pojawił się dopiero w niedzielę. Później powstał event na Facebooku a na koniec zaproszenie z kalendarza Google poszło do grupowiczów subskrybujących Google Groups.

Początek spotkania - jeszcze niewiele osób
O godzinie 1750 na DMCSie był już prowadzący - to połowa sukcesu - i niestety dość mało osób - około 15tu. Szkoda byłoby gdyby na tą prezentację nie przyszło dużo ludzi. Paweł w końcu został uznany najlepszym prelegentem 2013r na JUGu! Na szczęście publiczność zaczęła się pojawiać i gdy prowadzący rozpoczął nie było już tak słabo z ilością osób. Na sam koniec prezentacji podczas losowania wejściówek na Geecona i książki od Manninga okazało się że było ponad 40 osób co chyba jest najlepszym wynikiem w tym roku.

Play uznawany jest za bardzo ciekawy projekt, wspominał o tym Matt Raible w swojej prezentacji na vJugu - Comparing JVM Web Frameworks. Paweł we wstępie powiedział, że filozofia Play przypomina programowanie w Rails - choć przyznał, że sam w RoR nie programuje. Ja osobiście zmusiłem się kiedyś do przeczytania książki Agile Web Development with Rails 3. Zmusiłem to złe słowo bo programowało się całkiem przyjemnie. Niemniej jednak poza scope książki nie przeszedłem.
Centrum sterowania prezentacją - live coding

Wracając do prezentacji, na pewno podejście a-la Rails jest dobre - prosto, lekko i przyjemnie. Tego brakowało w świecie Javy i Play2 to zmienił. A Paweł pokazał jak prosto się gra w Play2. Do tego celu wybrał prelekcję w formie live-coding. Jest to na pewno bardzo trudna forma bo jest duże ryzyko niepowodzenia. Jak coś nie działa to zaczyna się nerwowe szukanie błędów, presja publiczności robi swoje i można na prawdę położyć prezentacje. Jednak z tej konfrontacji zwycięsko wyszedł Paweł - miał przygotowane szablony kodu i tylko wklejał odpowiednie kawałki. Czasami coś nie kompilowało się, ale szybko było poprawiane na bieżąco. Prezentował też niezwykle skuteczny skrót klawiszowy w eclipse ctrl+spacja, którego prostota wywołała zachwyt części publiczności w osobie Mariusza Saramaka :).


Publiczność jeszcze dociera w trakcie

Paweł rozpoczął od pochwalenia się swoją wiedzą na temat różnicy między protokołem HTTP w wersji 1.1 a 1.0, czyli chunked encoding, którego to mechanizmu serwer wbudowany w play2 używa.
Play2 nie wymaga restartu serwera i można go też skonfigurować także w tryb autokompilacji czyli produktywność na maxa. Kolejny ciekawy feature tego frameworku to konsola w scali (lub javie) w której możemy testować kawałki kodu. Dodatkowo widzieliśmy jeszcze worksheet czyli takie żywe szablony dla scali w eclipse.

Do tetowania serwisów Paweł używał też wtyczki w chrome - o nazwie Postman.
Play 2 umożliwia szybkie pisanie ale jednocześnie kompilator jest w stanie wyłapać wiele błędów - nie walczymy z runtimem a kompilator naszym sprzymierzeńcem jest :).

Następnym elementem prezentacji było tworzenie formularzy a nawet testowanie ich bez kompletnego jeszcze widoku. Niektóre testy trzeba było zakomentować bo nie nadążały nad zmieniającym się live codingiem :) - czego oczywiście na prawdziwej produkcji nigdy byśmy nie zrobili.

Kolejne małe a fajne możliwości Play 2 to kompilacja javascript czyli kompilator dba o poprawność naszego js-a. Dodatkowo mamy z paczki funkcję zmniejszania javascript przez minify.

Aplikacja napisana w play2 jest gotowa do deploymentu w postaci jednego jara to kolejny feature jakiego na pewno powstydziliby się wymyślić poważni architekci.

W tym momencie zabrakło wody i dalszy flow był zagrożony - na szczęście woda od publiczności uratowała wieczór :)

W tym momencie Paweł pokazał jak uniknąć callback hell dzięki scali i futures and promises. Wspomniał jeszcze o WebSockets i problemach z firewallem oraz Akka czyli koncepcji aktorów do niezawodnego programowania wielowątkowego.

Dla zainteresowanych Scalą była też wzmianka o polskim projekcie kontenera DI jako makr w Scali napisanych przez Adama Warskiego z SoftwareMill - Macwire

Tak zakończyła się prezentacja będąca nagrodą w konkursie na najlepszego speakera 2013r. Wydaje mi się, że Paweł sprostał wymaganiom jaki ten tytuł ze sobą niesie. Potwierdziły to wyniki ankiety pojugowej. Szkoda tylko, że ankietę wypełniło zaledwie 10% osób obecnych na spotkaniu.
Pytania po spotkaniu - dobry znak - było ciekawie
Na spotkaniu Paweł próbował zacząć temat inkubatora czyli prezentacji dla studentów, które jako łódzki JUG moglibyśmy robić - proszę dajcie znać jeśli bylibyście zainteresowani tym tematem. Oczywiście szukamy prelegentów na takie spotkania.

W kolejny czwartek zapraszam na prezentację Mateusza Smolarczyka o tym jak zintegorować się z serwisami społecznościowymi za pomocą OAuth.

3 comments:

  1. Marek ty tez sie odp... :-)

    ReplyDelete
  2. Jakby co ta anonimowo-trolowa opinia powyżej nie jest moja:)
    Mi recenzja się podoba nawet z początkowym opie.... za zbyt późne umieszczenie opisu na meetupie;)

    ReplyDelete
  3. Kolegom dzisiaj w pracy bardzo spodobał się ten fragment : "Paweł we wstępie powiedział, że filozofia Play przypomina programowanie w Rails - choć przyznał, że sam w RoR nie programuję' ;)

    ReplyDelete