Na front-endzie

Na front-endzie

Rozmowa z Tomaszem Buszewskim

W podstawówce dorwałem jakąś gazetę z grami – chyba „CD Action” – gdzie był kurs HTML. Trzeba było przepisać kod i zobaczyć, co z tego wychodzi. I faktycznie wyszło – taka ordynarna, granatowa strona z żółtymi napisami. Nie wiem, czy jest się czym chwalić, ale nie przeczytałem w życiu żadnej książki o programowaniu

Jeszcze 3 minuty czytania

OLGA DRENDA: Jesteś programistą portalu beehype, który pozwala na bieżąco śledzić najciekawsze nowości muzyczne z całego świata. Jak wyglądała praca nad nim? Współtworzyłeś też projekt?
TOMASZ BUSZEWSKI:
To pomysł Mariusza Hermy – kiedyś podlinkowałem jego bloga, on znalazł ten link, zobaczył, że robię strony i napisał do mnie z propozycją. Nad projektem Beehype pracowaliśmy częściowo wspólnie: ja robiłem szkic, Mariusz go zmieniał, a potem ja dodawałem jeszcze swoje zmiany. Pierwszy raz czułem, że pracuję z klientem, a nie dla niego. Początkowy pomysł to był zwykły blog z listą krajów. Potem Mariusz się zorientował, że możemy zrobić więcej i się zaczęło. Najpierw napisał mi, że chciałby interaktywną mapę albo flagi. Nie wiedziałem, jak to zrobić, żeby można było kliknąć w nieduży kraj, Chorwację albo Polskę. W końcu wpadliśmy na obecny pomysł – na mapie świata klika się w kontynent i dopiero na podstronie kontynentu pojawia się menu krajów. Każdy element tej strony był przemyślany i nie było chyba sytuacji, w której i ja, i on byśmy skapitulowali. To, co widzimy teraz na stronie, to chyba dwudziesta wersja.

W dodatku strona szybko się rozwija i ciągle rośnie. Trudno to ogarnąć?
Poza spojrzeniem raz na jakiś czas na coś, czego obaj nie przewidzieliśmy, podmianą jakiegoś rozwiązania (np. jakiś czas temu nagle zaczęły nam się sklejać wpisy), pierwsze poważnie posiedzenie od czasu startu miałem dopiero niedawno, kiedy robiliśmy podsumowania roku. Ale najtrudniejsza na pewno jest optymalizacja – i wtedy, na początku, i teraz, kiedy przybywa treści. Muszę się nagimnastykować, żeby dobrze chodziły podsumowania złożone z pięćdziesięciu płyt w momencie, gdy strona zalicza tyle odwiedzin na dobę. Sporym kłopotem mogą być rzeczy, które wydają się błahe na pierwszy rzut oka, jak praca nad kolejną wersją playera.

A muzycznie? Beehype trafia w twoje gusta?
Na początku słuchałem wszystkiego, ale szybko mi przeszło. Teraz czasem przesłucham jeden czy dwa kawałki, z ciekawości.

beehy.pe

Jesteś samoukiem?
W podstawówce dorwałem jakąś gazetę z grami – chyba „CD Action” – gdzie był kurs HTML. Trzeba było przepisać kod i zobaczyć, co z tego wychodzi. I faktycznie wyszło – taka ordynarna, granatowa strona z żółtymi napisami. Nie wiem, czy jest się czym chwalić, ale nie przeczytałem w życiu żadnej książki o programowaniu. Teraz uczę się nowego frameworka (szkieletu do budowy aplikacji – przyp. OD), i wiem, że są książki, płatne kursy, ale wolę swoją starą metodę – szukam informacji w internecie albo pytam na forach, np. Stackoverflow.

Czy samodzielna nauka programowania ma jakiś odpowiednik w świecie analogowym? Nauka języka z samouczka, majsterkowanie?
Angielskiego też nauczyłem się sam, z filmów, ale jeśli chodzi o PHP czy inne języki programowania, to majsterkowanie jest lepszym porównaniem – to nauka składania, montowania – jest jakiś końcowy wzór, ale musimy wykombinować, jak to osiągnąć.

Dzisiaj zajmujesz się i programowaniem, i grafiką. Czy to tylko odpowiedź na potrzeby rynku, czy naturalny proces – jedna rzecz pociąga za sobą drugą?
Kiedy zaczynałem zajmować się internetem, nie można było wykręcać się, że znamy się tylko na jednej rzeczy. Trzeba było zrobić stronę, czyli całość. Potem zauważyłem, że znajomość wielu rzeczy się opłaca – nie tylko ze względu na klienta, ale też na mnie samego. Dawniej projektantów stron i programistów postrzegano jako komputerowych czarodziejów. Wymagania były niższe. To się skończyło, i to bardzo brutalnie. Teraz robienie strony polega na tym, że pan ma magiczny system WordPress albo Joomla, gdzie sobie dwa razy coś wciśnie, wpisze dwie linijki i wszystko działa. A WordPress to przecież bardziej framework niż CMS.

Tomasz Buszewski / fot. Bartek WarzechaCzym one się od siebie różnią?
CMS to gotowy system, który można sobie zainstalować i od razu używać. Wordpress to niby system w podstawowym tego słowa znaczeniu, ale jeżeli chcemy, żeby działał, to musimy go dostosować, wykorzystać możliwość dodawania własnych typów treści. Jeżeli jest „goły”, to pozwala tylko na dodawanie tekstu i wpisów do gablotek (elementów szablonu). Framework to zestaw gotowych metod, z których możemy korzystać, żeby budować własne aplikacje.
Zaczynałem robić strony w okolicach 2002–2003 roku. Wtedy korzystanie z CMS-a było trudniejsze i bardziej wymagające, niż robienie wszystkiego ręcznie, o znalezieniu darmowego hostingu oferującego 50 MB miejsca i dostęp do bazy danych nie wspomnę. Zabawne, że dziś te systemy wygryzł WordPress, który – jeśli wierzyć statystykom – zasila obecnie najwięcej stron na świecie. Kosmos.

Skoro narzędzia takie jak WIX albo nawet Tumblr pozwalają postawić stronę od ręki nawet amatorowi, to po co komu projektant, programista?
Nie czuję zagrożenia ze strony Blogspota czy WordPressa, bo tak naprawdę takie strony oferują bardzo małe pole do improwizacji, wszystkie wyglądają bardzo podobnie, są budowane według kilku schematów. Jeżeli ktoś chce mieć stronę, która faktycznie coś przedstawia, albo porządną stronę firmy, to nie zdecyduje się na szablon.

Wspomniałeś o tym, że odpowiada ci wszechstronna praca. Ale dzisiaj programowanie i projektowanie to tak rozbudowane dziedziny, że w czymś trzeba się wyspecjalizować.
Z jednej strony bardzo lubię front-end development, czyli HTML, CMS i Javascript, a z drugiej strony back-end, czyli PHP, bazy danych, które są bardziej skomplikowane i dzięki temu pociągające. Front-end jest jak część z obsługą w sklepie, gdzie jest miły pan, ładna lada i elegancka ekspozycja, a back-end to zaplecze – ludzie, którzy dostarczają produkty, zapewniają dobre działanie, żeby miły pan wiedział, co może podać.

Specjalizujesz się głównie we front-endzie. Na pierwszy rzut oka wydaje się prostszy, ale może tak mi się tylko wydaje.
Kiedyś projektowałem stronę dla Cytrynówki Podlaskiej. Klient chciał mieć na stronie „wirtualny shaker” – musiałem napisać system, który pozwoli łączyć składniki w drinki. Tu tak naprawdę skomplikowany był front-end – składniki miały pojawiać się na okrągłej tacy, którą można było sobie zakręcić. Użyłem wtyczek – bo tak się robi – ale z back-endowego punktu widzenia rozwiązanie było całkowicie moje.

ROZMOWY Z PROGRAMISTAMI

Programiści, koderzy, projektanci interakcji to ukryci rzemieślnicy i artyści dzisiejszej kultury, w dużej mierze cyfrowej. Kod ubrany w grafikę trafia na nasze ekrany i determinuje sposób użycia i doświadczenia danego tekstu, dźwięku, filmu. Hybrydowych form nie da się zredukować do ich poszczególnych elementów. W nowym cyklu przeprowadzamy rozmowy z programistami, którzy umożliwiają ich powstawanie. 

Rozmowa z Michałem Szotą.

Jak radzisz sobie z sezonowymi modami, gdy przychodzi czas, kiedy wszyscy chcą, powiedzmy, animacje?
Ostatnio na przykład popularne są strony na całą szerokość przeglądarki. Wielu klientów chce ciekawe animacje, sporo osób lubi płaskie przyciski, takie jak w interfejsie Google’a – Material Design.
Teraz zajmuję się front-endem nie tylko dlatego, że mam etat, ale też dlatego, że jestem zmęczony klientami, którzy narzekają na grafikę i zmieniają zdanie tysiąc razy, nie zdając sobie sprawy, że wszystko musi być przemyślane. Nawet zmiana koloru wymaga zmiany całego zapisu. Ciągle są tacy klienci, którzy zmieniają co rusz kolory albo rozmieszczenie obiektów. Dlatego łatwiej mi pracować we front-endzie, gdzie są gotowe wytyczne i tyle.

To chyba powszechny problem programistów – konieczność tłumaczenia niekodującym, ile pracy wymaga nawet mała zmiana.
Od kiedy pracuję na etat, muszę często szukać rozwiązań, które nigdy by mi nawet do głowy nie przyszły i które rzadko są używane, ale trzeba je skądś jednak wygrzebać. Często klienci i graficy mają pomysły, które musimy wdrożyć bez jakichkolwiek ustępstw z ich strony. Tak się wydaje, że coś jest do obrobienia w 15 minut, a potem okazuje się, że siedzimy nad tym dwa dni w trzy osoby. Teraz mamy w pracy preprocesory takie jak Sass czy Less, które skracają trochę czas pisania kodu CSS, ale nadal ktoś musi go wymyślić i jednak mieć o nim pojęcie. No i jest jeszcze świetna wtyczka Emmet (dawniej ZenCoding), też przyśpieszająca i HTML, i CSS.

Programowanie i projektowanie to jedne z najpopularniejszych zajęć wśród wolnych strzelców. Ty długo pracowałeś jako freelancer, dzisiaj masz etat. Czy te doświadczenia bardzo się od siebie różnią?
W mojej obecnej pracy jest trochę powtarzalności, ale tak naprawdę nigdy nie robię dwa razy tego samego. Jeśli chodzi o zlecenia freelancerskie, coraz częściej klienci chcą „takie strony, jakie mają wszyscy”. Teraz popularne są takie strony, jak ta: southerntl.com – duże zdjęcie na początek, a potem płachty tekstu. Wysyłają mi listy linków, więc muszę zrobić tylko podstawowy projekt i kilka dodatków. Trudno mi dodać coś od siebie.

beehy.pe

Z punktu widzenia dewelopera, ale też użytkownika: co najbardziej przeszkadza ci w dzisiejszych rozwiązaniach internetowych?
Największym problemem jest dla mnie to, że użytkownicy nie radzą sobie z nowościami. My chcemy iść do przodu, ale nie możemy, bo użytkownicy są nawet o parę lat doświadczenia za nami. To, co jest intuicyjne dla mnie, nie jest takie dla kogoś, kto nie siedzi w tym temacie.

Pamiętasz przykłady takich rozwiązań, na których poległ użytkownik?
Na beehy.pe wraca jeden temat – ludzie nie wiedzą, że wpisy można rozwijać. Myślą, że to tylko zdjęcie i dwa zdania, nie wiedzą, że po kliknięciu pojawi się jeszcze piosenka i wpis na blogu. Takie problemy rozwiązuje się różnie. Czasem się stosuje pogrubienie, podświetlenie, czasem po najechaniu myszą wyświetla się komunikat: „kliknij, żeby rozwinąć”. Ale to bardzo cienki lód, bo część użytkowników może poczuć, że traktujemy ich jak idiotów. 

A jak wyobrażasz sobie przeciętnego użytkownika stron, które projektujesz?
Często robię strony firmowe dla ludzi, którzy swój kontakt z internetem ograniczają do sprawdzania, co nowego na Onecie. Muszę więc być bardzo ostrożny. To jeszcze dodatkowe wyzwanie – kiedy robię piętnastą stronę, która działa tak samo, muszę zaprojektować ją tak, żeby wyglądała inaczej.

Tomasz Buszewski / fot. Bartek Warzecha

Cykl tekstów dotyczących kultury cyfrowej powstaje we współpracy z Centrum Kompetencji ds. Digitalizacji Narodowego Instytutu Audiowizualnego.


Tekst dostępny na licencji Creative Commons BY-NC-ND 3.0 PL.