Dlaczego frameworki HTML często nie mają sensu?

Dlaczego frameworki HTML często nie mają sensu?

Mówi się, że dostępne frameworki HTML znacznie przyspieszają pracę i minimalizują rozbieżności pomiędzy przeglądarkami. Dostarczają one bowiem masę gotowych komponentów – są sprawdzone i gotowe do użycia. Ale jak to przekłada się na praktyczne zastosowania?

W swojej krótkiej karierze postawiłem kilkanaście stron opartych na ZURB Foundation, kilka w Boostrap i Base. Pomimo, że tworzone są przez zupełnie inne organizacje, doszedłem do wniosku, że są one do siebie bardzo podobne. Typowy framework HTML/CSS obejmuje kilka składowych:

  • reset domyślnych CSS,
  • „grid system” i zestaw klas pomocniczych,
  • bazę ostylowanych komponentów,
  • czasami również JavaScript.

Pomimo szeregu ułatwień jakie oferują, od pewnego czasu przestałem wykorzystywać je w większości swoich projektów. Powodów jest co najmniej kilka.

Wszystkie strony wyglądają tak samo

Budowanie interfejsów aplikacji czy stron internetowych to nie tylko składanie klocków w jedną całość. Dla mnie zawsze na pierwszym miejscu stała unikatowość i innowacyjne podejście do problemu. Korzystanie z gotowych bibliotek zgodnie z ich specyfikacją okazuje się bardzo ograniczające, bo narzuca swój charakter wizualny. Oczywiście możesz poświęcić długie godziny na całkowitą zmianę wyglądu komponentów i ich działania ale to mija się z celem. W internecie wiszą tysiące stron zbudowanych na Foundation czy Boostrap-ie. To co najbardziej rzuca się w oczy, to fakt, że poza treścią, typografią i paletą kolorów nie różnią się od siebie niczym. Dlatego tak bardzo ich nie lubię.

Framework vs. dedykowany projekt

Zdecydowana większość moich realizacji to dedykowane szablony serwisów www, projektowane specjalnie na potrzebę konkretnej firmy. Widoki przygotowywane przez projektantów, którzy nie mają żadnej wiedzy na temat kodowania, często stanowią nie lada wyzwanie. Tego typu projekty zawierają masę nietypowych elementów, których nie znajdziemy w żadnym z frameworków. Dlatego właśnie unikam korzystania z nich. Co z tego, że do dyspozycji mam dziesiątki przygotowanych buttonów, przełączników, ikon czy bloków treści skoro każdy z nich muszę zawsze re-definiować? Ostatecznie proces sprowadza się do tego, że aby wykorzystać gotowy komponent, muszę go najpierw zbadać, zmienić wygląd, zmienić zachowanie na różnych szerokościach ekranu. Jeszcze trudniejsze w użyciu są komponenty JavaScript chociażby z popularnego Foundation. Mechanizmy ich działania, zaszyte gdzieś głęboko w zminimalizowanych plikach, praktycznie uniemożliwiają ingerencję w sposób ich zachowania w specyficznych dla projektu sytuacjach.

Nie rozwijają

O ile nie jesteś web-developerem z kilkunastoletnim doświadczeniem, używając frameworków ograniczasz swoją zdolność myślenia analitycznego. Mądry człowiek powiedział, że programowanie to sztuka rozwiązywania problemów. Kodowanie stron i aplikacji webowych opartych na HTML/CSS jest łatwe do nauczenia się lecz wymaga znajomości wielu „magicznych sztuczek”, których nie zrozumiesz dopóki nie dojdziesz do nich sam. Nie rozwiązując problemów samodzielnie i nie popełniając błędów, nigdy nie będziesz dobrym programistą. Nawet jeżeli nadłożysz trochę czasu w pracy, będziesz dumny z tego, że zrozumiałeś napotkany problem i logicznie myśląc udało ci się go rozwiązać. Nic innego nie przynosi takiej satysfakcji.

Kiedy frameworki HTML się przydają

Pomijając kwestie opisane powyżej, są sytuacje, w których korzystanie z gotowych rozwiązań może okazać się zbawienne. Do uzasadnionych zastosowań framework-ów zaliczam:

  • aplikacje webowe / dashboard-y,
  • szablony na sprzedaż w internecie (np. w Theme Forest)

Obie sytuacje idealnie wpisują się ideę zunifikowanych bibliotek. Wymagają przede wszystkim podejścia blokowego, elastycznego i łatwego w rozbudowie. Dobrze przygotowana baza komponentów jest gwarancją skalowalności, co z kolei przekłada się na wyższą jakość szablonu.

Newsletter

Maksymalnie raz w miesiącu dostaniesz powiadomienie o nowych wpisach.
Zapisz się do newslettera — ja nie śmiecę.

Ta strona wykorzystuje pliki cookies wyłącznie w celach statystycznych.