4Developers Łódź 2017 – Relacja

Relacja z konferencji 4Developers Łódź 2017.

Za nami 4Developers Łódź – czyli regionalna edycja jeden z największych polskich konferencji dla programistów. Najwidoczniej sukces i zainteresowanie wokół konferencji, skłonił organizatorów do wyjścia z mniejszymi edycjami w różnych częściach naszego kraju. Łódź jest drugim miastem gdzie zagościła niniejsza forma 4Developers. Pierwsza edycja odbyła się we wrześniu w Gdańsku.

Z naszej strony nie był to jedynie standardowy udział w konferencji. Po raz pierwszy jako DevEnv, udzieliliśmy wsparcia, obejmując patronatem medialnym 4Developers Łódź. Tego dnia mogliście zauważyć znaczący wzrost aktywności na naszym fanpage, gdzie staraliśmy się prowadzić relację w czasie trwania konferencji. Zdjęcia które zgromadziliśmy z tego wydarzenia możecie podejrzeć w dedykowanym albumie

4Developers Łódź

Wydarzenie odbyło się w ciekawym miejscu – Bionanopark (Łódzki Park Naukowo-Technologiczny). Wybierając się do Łodzi nie znaliśmy w zasadzie żadnej firmy z branży, która się tam znajduje więc zlokalizowanie konferencji w tym mieście mogło nieco przybliżyć „rynek” osobom z zewnątrz. Była na to duża szansa, jednak w tym wypadku wyglądało to zupełnie inaczej. Dało się zauważyć, że jest to konferencja kierowana w lokalny rynek i raczej rzadko można było spotkać osoby z innego miasta. To też przełożyło się raczej na frekwencję bo organizacyjnie można było tam zmieścić zdecydowanie większą liczbę osób.

Wygląda na to, że konferencje regionalne spod szyldu 4Developers nie są jeszcze na tyle popularne, aby osoby z innych miast się na nie wybierały. Oczywiście być może w przyszłości się to zmieni – to fajna inicjatywa, za którą trzymamy kciuki.

Prelekcje

Jak sensownie tworzyć testowalny code w JavaScript? – Łukasz Olbromski

Adrian: Podczas prezentacji Łukasz zdefiniował cechy testowalnego kodu. Mocno podkreślał fakt wprowadzania abstrakcji nad zależnościami, a nie skupianiu się jedynie na implementacji. Która w efekcie końcowym utrudnia testowanie tworzonego kodu, chociażby poprzez nadmiarowe używanie Test Doubles.

JavaScript daje dużą dowolność programiście – od standardów kodowania po strukturę projektu. Dzieło leży jedynie w rękach rzemieślnika. Powinniśmy o tym pamiętać i starać się wprowadzać zasady w kwestii struktury projektu, jego podziału na mniejsze moduły (niezależne, aby otrzymywać luźno powiązane komponenty – loose coupling) oraz dbać o abstrakcję zależności i jednolity standard kodowania.

Wisienką na torcie było polecenie pewnego repozytorium w serwisie GitHub. Zawiera ono definicję kilkunastu dziwnych zachowań w JavaScript: What the f*ck JavaScript?.

Marksizm w JavaScripcie albo czemu klasy mogą nie być najlepszym pomysłem – Michał Przybyś

Adrian: Michał przedstawił na jakie pomysły mogą wpaść programiści realizując koncept klas w zorientowanym obiektowo JavaScripcie. Pokazał również, jak pod spodem wygląda wygenerowany kod po kompilacji z użyciem narzędzia Babel oraz TypeScript. Liczyłem na solidny „pojazd” odnośnie wykorzystywania klas w JavaScript… Jednak pomimo wstępu który mógłby to sugerować, prezentacja zakończyła się podsumowaniem: „klasy są wszędzie i będą rozwijane – trzeba przygotować się na ich wykorzystanie” 🙂

W poszukiwaniu zaginionej wydajności, czyli słów kilka o tym, jak podkręcić aplikacje działające na MongoDB – Wiktor Sztajerowski

Mateusz: Prezentacja zaczęła się od sporych problemów, bo prelegent najpierw miał problemy z podłączeniem MacBooka do rzutnika, a później okazało się, że przez restart komputera serwer mongodb również nie chodził – a był potrzebny bo prezentacja opierała się w głównej mierze o livecoding. Kolejny raz to pokazuje jak bardzo livecoding jest złym pomysłem na tego typu konferencje, bo zawsze możemy spodziewać się złośliwości rzeczy martwych.

Ostatecznie kiedy udało się uporać z przeciwnościami losu Wiktor Sztajerowski pokazał kilka ciekawych sztuczek jak poprawna optymalizacja z użyciem indexów można przyspieszyć zapytania (np. jeden z przykładów pozwolił na przyspieszenie zapytania na kolekcji o wielkości miliona dokumentów z blisko 1900ms do 25ms).

Blockchain: Developer perspective – Michał Przybyś

Mateusz: uwielbiam słuchać pasjonatów, którzy opowiadają o tym co ich interesuje. Michał z dużym zaangażowaniem, a przy tym w bardzo luźnym stylu wyjaśnił podstawy Blockchain. To była naprawdę dobra prezentacja.

Adrian: Prelekcja dotycząca wprowadzenia w temat Blockchain była jedną z najbardziej wyczekiwanych przeze mnie. Po zakończeniu wychodziłem „oświecony” – z pełną świadomością mogłem powiedzieć sobie: „w końcu wiem o co w tym wszystkim chodzi”. Wiem czym jest Block, czym Chain, co to znaczy kopać BitCoina. Świetna prelekcja, której towarzyszyła solidna dawka teorii oraz kodu w postaci przykładowego rozwiązania. Michał – rewelacyjna prezentacja!

Sagi, strumienie, reaktywność i inne buzzwordy – Jarosław Pałka

Mateusz: Jeśli na konferencji Jarosław Pałka przedstawia jakiś temat to zawsze warto się udać na tą prezentację, bo na pewno nie będzie to stracony czas. A często jest taka okazja 😉

Prelekcja odbyła się w bardzo luźnym stylu co sprawiło, że nie było nudno. Oprócz tego, że Jarosław przekazał dużo ciekawych informacji na temat tego co miał do wykonania ze swoim zespołem i jak rozwiązali ten problem to znalazło się jeszcze miejsce na anegdotę na temat tego jak wykorzystywany jest machine learning przez duże sklepy, takie jak Walmart.

InfluxDB and Grafana fighting together with IoT data attack – Ivan Vaskevych

Adrian: InfluxDB jest bazą którą od pewnego czasu obserwuję z zaciekawieniem. Spowodowane jest to pracą w projektach związanych z IoT, gdzie na co dzień mamy do czynienia z Time Series Data. InfluxDB jest bazą zaprojektowaną specjalnie do tego typu danych, dając dostęp za pomocą DSLa zbliżonego do języka SQL. Ivan zaprezentował sposób komunikacji z InfluxDB oraz dostarczania danych do narzędzia Grafana (analiza i wizualizacja danych).

TDD AngularJS application – Wojciech Przechodzeń

Mateusz: Zaprezentowana została autorska biblioteka, która wspiera pisanie testów aplikacji tworzonych w AngularJS. Autorzy uważają, że w przypadku aplikacji frontendowej unit testy nie są na tyle ważne co testy funkcjonalne. Nie chodzi tutaj jednak o testy e2e np. z wykorzystaniem Protractora, który testuje całą aplikację z poziomu przeglądarki – twórcom chodzi bardziej o testowanie komponentów w separacji.

Adrian: Biblioteka Angular Test Runner jest ciekawą alternatywą dla Protractora. Zaprezentowany przykład testowania jednego wybranego komponentu był defakto testem integracyjnym komponentu – z tą zaletą, że uruchamiał się równie szybko co test jednostkowy. Moim zdaniem temat warty wypróbowania, jako test pośredni pomiędzy dłuuugo trwającymi testami E2E, a testami jednostkowymi, które nie zapewniają weryfikacji integralności kilku współdziałających ze sobą elementów.

Vanilla TypeScript – Łukasz Łuczak

Mateusz: W tym wypadku mieliśmy raczej wprowadzenie do języka i zostały omówione podstawy, osobiście dla mnie nie było tam wielu nowości bo miałem z nim już małą styczność pisząc aplikację z wykorzystaniem frameworka Angular, ale z pewnością pomogła mi ta prezentacja trochę uporządkować stan wiedzy.

Adrian: Przeciwnie do Mateusza, dla mnie temat był całkowicie nowy. Łukasz omówił bardzo podstawową składnię oraz najważniejsze zalety tego „dialektu”. Niestety pewne punkty prezentacji były nadmiarowo przedłużone (chociażby temat enumów). Można było pokazać nieco więcej składni i narzędzi związanych z TypeScript.

To zależy… czyli niezawodne i przewidywalne budowanie i dostarczanie aplikacji w node.js i nie tylko. – Michał Ostruszka

Mateusz: Tego dnia była to dla mnie najbardziej wartościowa prezentacja, ponieważ dotykała tego co akurat rozwijamy w pracy. Otrzymałem odpowiedź na pytanie, które od pewnego czasu do mnie wracało: czy podczas deploymentu aplikacji w node.js powinna odbywać się instalacja paczek npm czy jednak dostarczać całość na serwer – po tej prezentacji już wiem, że instalacja paczek zewnętrznych podczas deploymentu to zła praktyka.

Adrian: Deployment aplikacji opartych o node.js często wygląda na proces projektowany „na kolanie”. Michał podrzucił kilka trafnych tipów, które mają wpływ na pozytywny rezultat deploymentu aplikacji. Wersjonowanie w repozytorium pliku package-lock.json, proxy pośredniczące w komunikacji z serwerami npm (Nexus który kilkanaście dni wcześniej został uruchomiony w naszym projekcie) czy też budowanie obrazu kontenera Docker z całościową aplikacją (włącznie z node_modules!). Utwierdziłem się w przekonaniu, że decyzje które podjęliśmy w naszym projekcie mają sens i warto zmierzać w obranym kierunku.

Podsumowanie

Z naszej perspektywy konferencja 4Developers Łódź była ciekawym i kameralnym wydarzeniem. Nie mniej jednak, oprócz całej otoczki, która jest na drugim planie – najważniejsza część czyli prelekcje były na dobrym poziomie. Wyciągnęliśmy z nich sporo merytorycznych wniosków do zastosowania w najbliższej przyszłości. Dodatkowo, zawsze można porozmawiać z innymi osobami z branży. My spędziliśmy sporo czasu na rozmowie z tegoroczną finalistką Daj Się Poznać Olgą, która prowadzi bloga – Sowa Programuje.

Podsumowując – edycje regionalne 4Developers to ciekawa inicjatywa, która pozwala na poznanie mniej znanych części kraju pod kątem branży IT. Najbardziej jednak liczymy na edycję na Śląsku! 😉

PODZIEL SIĘ