July 9, 2016
By: Patryk Żmigrodzki

Która to godzina? Czas na Devoxxa! [Dzień 1]

Konferencja konferencja i po konferencji. W tym cyklu postów postaram się przybliżyć co działo się na Devoxx Poland 2016, czego ciekawego mogliśmy się dowiedzieć i przedstawię kilka subiektywnych opinii na temat wystąpień.
Tegoroczny Devoxx Poland odbył się w dniach 22-24.06.2016, podobnie rok temu, na terenie Centrum Kongresowego ICE w Krakowie.

Why does Yesterday's Best Practice Become Tomorrow's Antipattern?

Neal Ford - ThoughtWorks

Keynote Neala Forda w nieludzko szybkim tempie. Jak sam prezenter pisze na swoim blogu, jego keynote'y są ogólne i poruszają wiele tematów, aby trafić do jak najszerszej publiczności. Ta prezentacja nie była wyjątkiem. Prowadzący przemknął przez kilka historycznych anty-wzorców i ich wpływ na późniejsze rozwiązania, np. Continuous Integration uznawano za zły pomysł, gdyż faza integracji kojarzyła się ze żmudnym i bolesnym procesem. Neal na tej historii nie poprzestał i wspomniał o niedawnej dramie z Leftpadem, co podsumował cytatem swojego kolegi z ThoughtWorks:

Dependency management will be our "Goto Considered Harmfil" moment

Jeśli mówimy o cytatach, to jako jedną z przyczyn powstawania anty-wzorców prelegent zobrazował słowami George Santayana:

Those who cannot remember the past are condemned to repeat it.

Transpiling, powszechnie używany przy tworzeniu javascriptowych frontendu, nie jest niczym innym jak, od dawna uznawaną za anty-wzorzec, generacją kodu.

EDIT: Otrzymałem komentarz, że generacja kodu nie jest anty-wzorcem, a chodziło tu o wymyślanie wszystkiego na nowo. Cóż mogłem źle zrozumieć przekaz (albo po prostu nie lubię generowanego kodu).

Na prezentacji nie zabrakło prawa Conwaya, wypominania, ze developerzy szukają wrażeń w pracy oraz przypomnienia, że powinniśmy wybierać biblioteki zamiast frameworków. Neal przytoczył także kolejne prawo (które sam sformułował?), prawo Dietzler'a. 2016 i wystąpienie na konferencji bez wspomnienia o mikroserwisach?! No oczywiście że nie mogło i ich zabraknąć. Przy tej okazji Neal nawiązał do architektury ewolucyjnej, czyli tematu jego kolejnej prezentacji.

Ogólnie to keynote był przedsmakiem wszystkiego co mogliśmy doświadczyć przez kolejne trzech dni Devoxxa, świetnie przedstawione dzięki niebywałym umiejętnościom prezenterskim Neala Forda. Jeśli ktoś ma okazję jakiegokolwiek posłuchać wystąpienia tego pana, szczerze polecam.

The Good Monolith

Łukasz Szydło - Bottega IT Solutions

Dobry monolit czyli jak skutecznie tworzyć aplikacje, które nie są mikroserwisami (coś strasznego). Prosty przepis? Projektować tak jak mikroserwisy, ale deployować jako pojedynczą usługę. Przynajmniej tak próbował przekonać nas Łukasz Szydło porównując systemy monolityczne do wielkich budowli, a mikroserwisowe do miasteczek skupiających mniejsze budynki. Dobry monolit ma być miastem pod wielką kopułą. Prowadzący, nawiązując do Domain Driven Design, wspomniał o Encjach i Bounded Context. Duży nacisk położył na problem z tworzeniem przeładowanych modeli, gdzie jeden obiekt jest wykorzystywany w różnych kontekstach. Przytaczając prosty przykład: człowiek jest bardzo skomplikowanym obiektem, ale kiedy znajduje się na basenie - jest pływakiem, na strzelnicy - strzelcem, itd.

Według mówcy, przewaga dobrego monolitu nad mikroserwisami to mniejsze skomplikowanie, głównie komunikacyjne. Jednak jeśli w przyszłości takie podejście okaże się niewystarczające, to z dobrze zamodelowaną dziedziną i luźno związanymi komponentami, przepisanie istniejącego systemu na architekturę mikroserwisową będzie mniejszym wyzwaniem niż stworzenie wszystkiego od podstaw.

Wystąpienie niezbyt przeładowane informacjami, duża zmiana po poprzednim wystąpieniu. Można było spokojnie przeglądać skrzynkę mailową i nadążać za prelegentem.

Hotspot & AOT

Dmitry Chuyko - Oracle

Co to jest AOT i dlaczego powinno nas obchodzić. Dmitry przedstawiał nowe eksperymenty Oracle nad kompilatorem Javy. Wyjaśnił pokrótce jak działa Hotspot VM i czym od niego różni się GraalVM - nowy kompilator Javy napisany w Javie. Plus AOT jest taki, że JIT nie zajmuje zasobów w trakcie działania systemu oraz dostajemy przewidywalne wyniki wydajnościowe. Slajdy były słabe i w większości przypadków mogłoby ich w ogóle nie być, a sam Dmitry raczej nie może się poszczycić mocnymi umiejętnościami oratorskimi, a szkoda.

Successful startup is NOT enough. You must scale technology to ENTERPRISE while maintaining your startup creativity.

Marek Grochowski, Cezary Zminkowski - Sabre

Panel sponsorski Sabre. Chyba najgorszy na jakim byłem na tej konferencji. Panowie opowiadali o ich produkcje, TripCase, i o drodze jaką przebył. Projekt powstał i był rozwijany przez mniej więcej 5 lat, przy czym wymierny sukces odniósł w ostatnim roku. Zaraz, zaraz! To nie miało być o osiąganiu startupowego sukcesu? Dowiedziałem się, że 90% startupów upada, bo robią to źle. A jak dobrze robić? No trzeba stworzyć idealną architekturę, oszacować teoretyczną złożoność naszych algorytmów, monitorowaćlogowaćanalizowaćtrendyblablablab........

Antifragile Architectures

Matt Stine - Pivotal

Jeśli rzeczy wrażliwe (fragile) niszczą się pod wpływem stresu, to antifragile w tej samej sytuacji powinny wzmacniać się. Co więcej, antifragile jeśli nie są poddawane ciągłemu stresowi, słabną.

Tak antifragile opisał Matt Stine w swoim wystąpieniu. Twierdzi on, że systemy informatyczne muszą być antifragile, aby móc sprostać ciągłym zmianą. Konieczność zmian zmotywował istnieniem prawa Lehmana o ewolucji oprogramowania.

Według prelegenta systemy failsafe powinny być bezusterkowe oraz samodiagnozujące. Jako przykład podał produkty Netflixa oraz stworzone przez nich narzędzia, Hystrix i Simian Army, zapewniające takie cechy. Szczególnie podkreślił rolę Chaos Monkey, gdyż wstrzykiwanie defektów zmusza do ciągłego myślenia o błędach i zapobieganiu nim.

Prelekcja całkiem ciekawa, ale jak dla mnie za dużo filozofii o ultrawielkich systemach (wg mnie trochę zbyt odległy temat).

JVM Dive for mere mortals

Jakub Kubrynski - Devskiller

JVM is just an application

Jakub przedstawił JVM jako zwykły program, który można poznać i zrozumieć (co więcej, można zajrzeć w kod :)) Omówił również cykl życia kodu w Javie, od kodu źródłowego, przez bytecode, JIT, aż do kodu natywnego. Podał kilka technik wykorzystywanych przez JIT do optymalizacji, zaznaczając wartość tej wiedzy. W skrócie, znając je wiemy czego się spodziewać po optymalizacji i nie wprowadzać tych zmian samemu, aby niepotrzebnie nie zmniejszać czytelności kodu. Solidnie i przyjemnie.

How to survive and thrive in a BigCo

Michael Coté - Pivotal

Jesteśmy śmieciarzami, nie kowbojami, ale bez kowbojów świat nie byłby taki zły jak bez śmieciarzy.

Taka myśl z ostatniej prezentację dnia pierwszego, jak przetrwać w korpo. Pierwszą radą Michaela jest znalezienie w korporacji mentora, który pomoże nam odnaleźć się w firmie. A jeśli nie chcemy zostać przeciętnymi klepaczami kodu, powinniśmy znaleźć czempiona mogącego angażować nas w rozwijające projekty.

Prelegent radzi również, aby wkopywać się w dodatkową pracę, poza naszym zakresem obowiązków, nie dać się zadaniowym wampirom. Podobno dobrze sprawdza się poproszenie o wprowadzenie do zadania, wybranie konkretnych slajdów z otrzymanej prezentacji. Jeśli poświęcą swój czas, może im jednak zależeć na współpracy, nie na wykorzystywaniu innych.

Michael poruszył również kwestię wprowadzania zmian korporacji, zaznaczając że nie jest do prosta sprawa. Potrzeba wielkiego nakład pracy, aby naprawić ogromną organizację. Najlepiej pracować nad wprowadzaniem zmian czy nowych projektów w ukryciu i ujawnić się dopiero po osiągnięciu sukcesu.

Poza kilkoma poradami co do tworzenia prezentacji, które jak wiadomo są podwaliną każdej korporacji, Michael podsumował swoje wystąpienie dwoma stwierdzeniami (mniej więcej coś takiego):

Największą konkurencją jest status quo

Pracuj najmniej jak możesz

Jako korposzczurowi, trudno mi się nie zgodzić z jego spostrzeżeniami :)

Wyszła niezła ściana tekstu. Jednak to był najbardziej owocny dzień konferencji i obiecuję, że relacje z kolejnych będą krótsze.

Zobacz także Dzień 2 oraz Dzień 3 z tej serii postów.

You can find english version of this post here

Tags: pl devoxx conference poland