Nie był oficjalnym kontrybutorem Zenda. Swoją przygodę z tym projektem zaczął od zgłaszania pomysłów usprawnień frameworka. Teraz jest jednym ze współtwórców Zend Expressive 3. O swoich doświadczeniach w projekcie Zend Expressive 3 opowiada Witek Wasiczko, Software Developer.  

Przykładów rozwiązań wolnego i otwartego oprogramowania jest mnóstwo. Od popularnej przeglądarki Firefox czy system Linux. Zend Framework jest także projektem open-source’owym, przeznaczonym do tworzenia aplikacji webowych w języku PHP.  

W marcu tego roku wydana została jego kolejna wersja Zenda. Jak długo trwały prace?

– Od wydana Zend Expressive 2 do wersji 3 minął okrągły rok. Pierwsza wersja Alpha pojawiła się na początku lutego 2018, więc intensywne prace trwały 3 miesiące. Co nie oznacza, że wcześniej nic się nie działo. Rozwijana była wersja 2, gdzie wyciągano wnioski i przygotowywano elementy, które należy poprawić. – podkreśla.

Głównym założeniem Zend Expressive była architektura oparta o middeware (warstwy obsługi żądań http). Pierwsza wersja bazowała na czymś co określano „Double-Pass Middleware”.

– Po tym okazało się, że brakuje jednolitego standardu, który mógłby wynieść pisanie aplikacji http w PHP na nowy poziom – niezależne komponenty, modułowość, brak przywiązania do frameworka. To się ostatecznie udało osiągnąć w wersji 3, która implementuje standard PSR-15, dzięki temu będzie można pisać komponenty, które będą działać niezależnie od frameworka – dodaje.

Jest to spora rewolucja, która może spowodować większą przenośność kodu i dobór rozwiązań niezależnych od wybranego frameworka, co wcześniej było mocno zależne. Expressive 3 ma znacznie uproszczoną architekturę, dzięki czemu udało się uzyskać o około 10% lepsze czasy wykonywania. Wsparcie dla PHP 7.1 znacznie poprawia design (typowanie) i wprowadza nowo dostępną składnię.

Dzięki udziałowi w projekcie OS zostałeś jednym z współtwórców najnowszej wersji Zenda. Jak znalazłeś się w tym projekcie?

– Wszystko zaczęło się od tego, że potrzebne było usprawnienie w kodzie frameworka (nawet znalazłem PR https://github.com/zendframework/zf1/pull/86). Przygotowałem poprawkę i przesłałem do projektu. Wtedy jeszcze działanie w ramach open source nie było takie proste przy projekcie Zend Framework – wynikało to z licencji. Trzeba było podpisać na papierze i przesłać do biura firmy Zend aby zostać kontrybutorem. Duża bariera, która dość skutecznie mnie wtedy zablokowała. Teraz projekty Open Source mają dużo przyjaźniejsze licencje, które pozwalają w prosty sposób dołączyć do projektów. Moja bardziej regularna praca przy tworzeniu frameworka zaczęła się po rozpoczęciu pracy w RST – rozwijaliśmy narzędzia do mikroserwisów i potrzebowaliśmy czasem coś dodać, usprawnić bądź poprawić. Można było to zrobić wewnątrz RST, ale stwierdziliśmy że możemy coś dać społeczności, a nie tylko brać. – opowiada.

 Jaka była twoja rola w projekcie?

– Zacznijmy od tego, że nie jestem oficjalnym kontrybutorem. Staram się natomiast być na bieżąco z tym, co się dzieje w projektach Zenda, na ile mi czas pozwala. Praca którą wykonuję zależy ode mnie i nie jest narzucana z góry. Zajmowałem się poprawkami znalezionych błędów, optymalizacją wydajności, usprawnieniami designu czy zadaniami utrzymaniowymi (np aktualizacja wspieranych wersji PHP).
Ostatnio miałem okazję zapoczątkować proces refaktoryzacji Zend Expressive w wersji 3 – framework HTTP oparty na middleware. Zaproponowałem szereg uproszczeń, który uprościł i ujednolicił sposób dodawania middleware. Zmiany, które zaproponowałem spodobały się społeczności i trafiły do najnowszej wersji frameworka.

Kultura open-source to kultura code review. Tu liczy się jakość tworzonego softu, bo projekt skupia wąską grupę specjalistów. Zgadzasz się z tym?

– Kultura open-source to przede wszystkim niesamowita społeczność. Praca z ludźmi z całego świata i to czasem ze specjalistami najwyższej klasy. To ogromna zaleta udziału w projektach open source. Cieszę się, że miałem okazję tworzyć z  Marco Pivetta (Ocramius), który jest znany z takich projektów jak Doctrine czy prooph. Podoba mi się jego podejście do tworzenia wysokiej jakości oprogramowania. Cenię sobie doświadczenia pracy z Matthew Weier O’Phinney- Tech Lead projektu Zend. Jest świetnym architektem oprogramowania, który od wielu wielu lat tworzy i nadaje frameworkowi kierunek rozwoju, a także wprowadza zmiany które mają wpływ na całą społeczność PHP. – podkreśla.

– To niesamowite uczucie, kiedy można otrzymać bezpośredni feedback w postaci code review od osób, których prezentacje zwykle ogląda się na popularnych konferencjach IT, bądź czytasz artykuły w sieci. Zdarzało mi się również wykonywać code review im samym.  – dodaje.

Dostęp do oprogramowania o otwartym kodzie źródłowym daje wiele możliwości i wartości. Oprócz realizacji autorskich pomysłów czy projektów, to możliwość uczenia się od bardziej doświadczonych programistów i dążenie do mistrzostwa.

– Tak, zdecydowanie. Udział w projektach open-source cenię i polecam z kilku powodów. Dają niecodzienną możliwość pracy z ludźmi, tak samo zakręconymi tematem jak Ty. Poznajesz najnowsze rozwiązania w branży i to z samego źródła, możesz być częścią zachodzących zmian. Twoje aktywne konto na githubie staje się najlepszą wizytówką developera. Własne projekty open-source często inspirowane były problemami do rozwiązania w ramach pracy w RST, przez co wykorzystuję je i rozwijam w realnych projektach. – mówi Witek.
Pomoc przy innych projektach tak mnie zaraziła swoją ideą open-source, że postanowiłem stworzyć  kilka własnych projektów, które wciąż rozwijam. – dodaje.

Witek Wasiczko jest Developerem w RST Software Masters. Specjalizuje się w technologii PHP. Kładzie nacisk na wysoką jakość kodu, automatycznie testowanie, podejście Domain Driven Design i wydajne rozwiązania architektoniczne. Fan open-source.

Jeżeli jesteście zainteresowani projektami open-source’owymi Witka, możecie je znaleźć na GitHub: https://github.com/snapshotpl

github-witek-wasiczko

Najpopularniejszy to https://github.com/php-middleware/phpdebugbar Dostarcza out-of-box czyli narzędzia developerskie do aplikacji bazujących na architekturze middleware.
Projekty open-source’owe znajdzie również na profilu RST – https://github.com/rstgroup

 


Nawigacja