chevron-left chevron-right

Jaki był dla mnie rok 2018 jako programisty?

Miniony rok był dla mnie rokiem pełnym wyzwań. Największe wyzwanie pochodziło ze strony własnej rodziny, gdzie trzeba było się oswoić z rolą ojca małego dziecka i poświęcać mu czas, który do tej pory mogłem poświęcać na rozrywkę, sport, bloga czy rozwijanie innych pasji. Notoryczny brak czasu niestety nie pozwolił mi na osiągnięcie wszystkich celów zawodowych.

Na szczęście, mimo braku czasu udało mi się wspólnie z zespołem, z którym pracuję na co dzień, osiągnąć mnóstwo sukcesów. Końcówka 2017 roku była szalona, gdyż w 4 miesiące przepisaliśmy od podstaw produkt który do tej pory był rozwijany przez 5 lat. Euforia, satysfakcja, zaangażowanie i wszystkie pozytywne emocje jakie za tym szły zapewniły paliwo na rozwój nowej wersji eZ Platform i przepisywanie od podstaw ficzerów z wersji komercyjnych. Tylko zaczęliśmy nieco obniżać intensyfikację developmentu. W dłuższej perspektywie tak intensywny proces twórczy mógłby doprowadzić do wypalenia zawodowego naszego zespołu.

Projekty

Przez miniony rok udało się przepisać od podstaw i/lub stworzyć nowe ficzery takie jak:

Wymienione wyżej projekty były oparte o PHP na warstwie backendowej (bazując w 100% na frameworku Symfony) oraz na ReactJS i czystym kodzie JavaScript na warstwie frontendowej. To co było ciekawe to fakt, że wykorzystaliśmy bibliotekę ReactJS w sposób niestandardowy, tj. zbudowaliśmy bazę modułów, które są ładowane na żądanie. Co oznacza, że interfejs eZ Platform nie jest aplikacją Reactową, tylko jest renderowany na backendzie przez PHP. Moduły Reactowe są ładowane dopiero przez skrypty JS w momencie wystąpienia jakiejś akcji, bądź od razu (jeśli jest taka potrzeba).

Page Builder

eZ Platform Page Builder UI

Największe wyzwania jakie napotkałem miały miejsce przy przepisywaniu Page Buildera, który opiera się na interakcji użytkownika z elementami strony na żywo, tj. strona wyświetlona w podglądzie jest rzeczywistą stroną internetową, którą za pomocą Page Buildera możemy modyfikować na żywo w określonych, przez osoby wdrażające daną stronę, miejscach. To co jest ciekawe, to cała interakcja opiera się na funkcjonalności Drag'n'Drop.

Dzięki odejściu od koncepcji replikacji layoutu po stronie aplikacji, zarówno wydajność jak i responsywność aplikacji. Stało się to dzięki temu, że zdecydowaliśmy zmienić sposób wyświetlania stron internetowych w podglądzie pochodzących z innych domen niż domena na której jest uruchomiony panel administracyjny systemu. Konsekwencją tego jest też brak potrzeby kopiowania stylów CSS i aplikowanie ich do każdego elementu reprodukowanego layoutu jako style inline'owe, co było sporym performance killerem.

Form Builder

eZ Platform Form Builder UI

Drugi z projektów, czyli Form Builder, jest w zasadzie funkcjonalnym klonem Page Buildera. Różnica polega na tym, że nie musimy mieć podglądu na żywo pól formularza. Ten sobie renderujemy po zamknięciu interfejsu Form Buildera.

Editorial Workflow

eZ Platform Editorial Workflow 1

Trzeci z projektów, był sporym wyzwaniem po stronie backendu. Funkcjonalnie bardzo przypomina narzędzie o nazwie JIRA, z tym że jest dostosowane pod kątem tworzenia nowych treści w systemie. Zapewnienie odpowiedniej elastyczności oraz zgodności z obecnym sposobem przetrzymywania danych dotyczacych treści w systemie eZ Platform było kluczowym wymaganiem. Po stronie frontendu, to nie było wielkie wyzwanie.

eZ Platform Editorial Workflow - widok dashboardu

Konferencje i meetupy

W minionym roku miałem przyjemność wystąpić na dwóch scenach. Na obydwu poruszałem tematy związane z procesem tworzenia aplikacji internetowych w oparciu o swoje doświadczenia związane z developmentem eZ Platform.

eZ Conference 2018 | Kolonia, Niemcy

Moje wystąpienie podczas eZ Conference 2018

Najpierw, w czerwcu 2018, występowałem na eZ Conference 2018 w Kolonii, gdzie prezentowałem nasze osiągnięcia dotyczące przepisania CMS eZ Platform na nowy stack technologiczny oraz przedstawiłem po krótce, jak można rozszerzać funkcjonalności systemu, dzięki przygotowanym przez zespół rozwiązaniom. Niewątpliwie, prezentacja była dużym sukcesem, a końcowe slajdy na których pokazano o ile udało się poprawić szybkość działania aplikacji wzbudziły niemałe poruszanie. Czyste eZ Platform przyspieszyło miejscami 23-krotnie! To jest znaczące poprawienie wydajności. Jednocześnie zmniejszyliśmy wagę aplikacji.

MeetJS Katowice 09.2018

Moje wystąpienie podczas MeetJS Katowice 09.2018

Następnie występowałem na meetupie lokalnej społeczności programistów JavaScript w Katowicach - MeetJS. Podczas swojego wystąpienia skupiłem się na architekturze frontendowej aplikacji w oparciu o eZ Platform. Poruszyłem też tematy związane z pracą zespołu w przypadku tzw. code rushu czyli ekstremalnie szybkiego procesu produkcyjnego. Omówiłem zalety i wady tego podejścia oraz sukcesy jakie osiągnęliśmy, jako zespół, stosując to podejście przez 4 miesiące pracy.

2019 - co dalej?

Rok 2019 będzie podobny, ale jednocześnie inny. Podobny w tym względzie, że będę dalej skupiony na rozwoju eZ Platform. Myślę by wprowadzić kolejne nowinki technologiczne do stacku technologicznego, m.in. TypeScript. Lecz wdrożenie akurat tego dialektu języka JS musi być zrobione w taki sposób, aby społeczność jaka jest zbudowana wokół OpenSource'owego projektu to zaakceptowała. Nie możemy wprowadzać wszystkiego co nam się podoba. Są w tym względzie ograniczenia.

Jednocześnie, rok 2019 będzie inny. Podjąłem decyzję by nie występować w tym roku na scenach ze swoimi prezentacjami. Jest to niejako związane z faktem, że urodził się mi syn i chcę poświęcić wolny czas jemu. Dodatkowo, być może zdajesz sobie sprawę, przygotowanie prezentacji jest bardzo czasochłonne, a fakt by w swojej prezentacji nie mówić o banałach, które niczego nie wnoszą do życia innych programistów skutkował u mnie zwiększonym stresem. Samo występowanie już nie stanowi dla mnie stresu, bardziej proces tworzenia wysokiej jakości prezentacji. Z tego względu musiałem odmówić wystąpienia na WarsawJS (organizowanej przez Piotrka Kowalskiego), w marcu 2019, mimo zaklepanego terminu.

Być może tą decyzję zmienię, ponieważ nie spodziewałem się tego, że aż tyle osób będzie starało się odwieść mnie od tego zamiaru.

Warto prześledzić cały wątek na Twitterze

Natomiast, co dalej z tym blogiem? Przez ostatnie miesiące niewiele się działo tutaj. Wynikało to z ustalenia sobie innych priorytetów życiowych. Generalnie, na pisanie tekstów na bloga nie zawsze znajduję odpowiednią ilość czasu. Jest kilka w połowie skończonych tekstów. Ale wracanie do pisania ich po dłuższej przerwie mija się z celem, bo trzeba byłoby zgłębić temat od nowa, przypomnieć sobie przesłanie tekstu, itd., itp. Podsumowując, będę zamieszczał nowe wpisy jak tylko znajdę czas na dokończenie rozpoczętych tekstów bądź na spisanie nowych pomysłów. Tak że: Stay tuned!