Początek spotkania - jeszcze niewiele osób |
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 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 |
W kolejny czwartek zapraszam na prezentację Mateusza Smolarczyka o tym jak zintegorować się z serwisami społecznościowymi za pomocą OAuth.