Proč jsem přestal používat složité frameworky a vrátil se k základům

Dlouho jsem si myslel, že čím víc technologií do projektu narvu, tím líp. React, Tailwind, Next.js, Docker – všechno najednou. Výsledek? První tři měsíce strávené laděním konfigurací, než jsem vůbec napsal první řádek skutečného kódu. A pak přišel klient a řekl: „Potřebuju jenom jednoduchou stránku s kontaktním formulářem.“ Tehdy mi došlo, že jsem si z práce udělal zbytečné peklo. Dneska si zakládám na tom, že pro každý problém zvolím nejjednodušší možný nástroj, který funguje. A když potřebuju inspiraci, jak takový přístup vypadá v praxi, koukám na stránku www.hamidi.info – člověk tam najde ukázky, kde se nic nekomplikuje a přitom to dává smysl.

Není to o tom, že bych byl línej se učit nové věci. Naopak. Ale s přibývajícími lety v oboru zjišťuju, že opravdová dovednost není v tom umět naskládat deset knihoven dohromady, ale v tom vybrat správnou jednu nebo dvě. A hlavně umět říct „ne“ technologiím, které přidávají složitost bez reálného přínosu. Když se podívám na projekty, které jsem dělal před pěti lety, vidím tam spoustu zbytečných abstrakcí. Dneska bych je napsal na třetinu kódu a s menším počtem závislostí.

Samozřejmě, že jsou situace, kdy se složitějšímu stacku nevyhnete. Když musíte škálovat aplikaci pro miliony uživatelů, budete potřebovat víc než jen PHP a jQuery. Ale pro devadesát procent projektů, které kolem sebe vidím, platí, že by se daly odbavit s čistým HTML, CSS a trochou JavaScriptu. A hlavně – s moderními prohlížeči dneska zvládnete věci, na které jste dřív potřebovali framework. CSS Grid, custom properties, fetch API, import mapy – tohle všechno už je nativní a funkční.

Jak vypadá jednoduchý projekt v praxi

Minule jsem dělal web pro malou kavárnu. Majitel chtěl rozvrh otevírací doby, fotky interiéru, kontakt a možnost rezervovat stůl přes e-mail. Žádný e-shop, žádné přihlašování. Místo abych sahal po WordPressu nebo statickém generátoru, napsal jsem čisté HTML, jedno CSS soubor a jeden JavaScript soubor na animaci fotek a odeslání formuláře přes Formspree. Celý projekt měl dohromady asi 400 řádků. Nahrání na server trvalo tři minuty. A funguje to dodnes bez jediné údržby.

Když to srovnám s podobným projektem, který jsem dělal před dvěma lety v Reactu – tenkrát jsem použil Create React App, přidal React Router, Redux (protože „co kdyby“), a nakonec jsem skončil s node_modules o velikosti 200 MB. Abych nasadil změnu, musel jsem spouštět build, který trval minutu a půl. A výsledek byl stejný – statická stránka s pár obrázky. Ten rozdíl mě naučil víc než deset tutoriálů o architektuře.

Neříkám, že frameworky jsou špatné. Ale používejte je, až když je opravdu potřebujete. Až když máte interaktivní komponentu, která se musí měnit v reálném čase, nebo když potřebujete sdílet stav mezi desítkami obrazovek. Jinak je to jen zbytečná vrstva, která vám komplikuje život. Tohle je přesně ten přístup, který mě na zmíněné stránce zaujal – ukazuje hotové projekty, které dělají přesně to, co mají, a přitom v nich nevidíte žádný technologický balast.

Když méně znamená víc i pro klienta

Zajímavé je, že jednoduchost prospívá nejen mně jako vývojáři, ale i klientovi. Stránky bez zbytečných knihoven se načítají rychleji, jsou přístupnější a snáz se dají upravit, když si to klient později rozmyslí. Kolikrát jsem slyšel: „Mohl byste přidat tlačítko, které po kliknutí něco udělá?“ A v Reactu to znamenalo najít správný stav, props, event handler, možná i kontext. V čistém JavaScriptu to byl jeden onclick a pět řádků. Klientská spokojenost je pak vyšší, protože změny přijdou rychle a bez komplikací.

Někdy mám pocit, že si celý obor komplikuje život jen proto, abychom měli co dělat. Ale když se podívám na weby, které skutečně vydělávají peníze nebo dělají radost, většinou jsou postavené na jednoduchých řešeních. Není to sexy, ale funguje to. A za mě je to mnohem důležitější než mít v životopise napsanou „moderní technologii XYZ“. Už jsem viděl projekty, kde vývojář strávil týdny nastavováním CI/CD pipeline, a pak přišla změna designu, která se dala udělat ve dvou hodinách, ale kvůli složité struktuře trvala dva dny. To není efektivita, to je past.

Proto dneska při každém novém zadání nejdřív sáhnu po papíru a tužce. Napíšu, co chce klient, a pak si říkám: „Jak to udělat s co nejmenším množstvím kódu a nástrojů?“ Až potom otevřu editor. Tento jednoduchý návyk mi ušetřil desítky hodin práce a spoustu frustrace. A myslím, že by prospěl každému, kdo se v tomhle oboru pohybuje – ať už je to junior, nebo senior. Někdy stačí se zastavit, podívat se na věc s odstupem a přiznat si, že složitost není ctnost, ale komplikace.