Re: 10 pravidel štastného kodera

Na Filově blogu se dnes objevil zápisek 10 pravidel šťastného kodera. Všechny body jsou v zásadě pravdivé a užitečné, ale i tak mám neodolatelný pocit, že bych k tomu měl pár věcí dodat. Zejména proto, že pravidla jsou psána až příliš z pohledu kodéra (ten, co píše HTML) a trochu mi v nich chybí holistický pohled na věc. Nebrat prosím jako kritiku, spíš jako doplnění.

Nuže:

1. Kódujte na svých 100 %

Kdo kóduje ten jede. Když už něco dělám, tak to dělám, jak nejlíp umím, protože mi za to koneckonců někdo platí, a tak mu chci dodat to nejlepší, co jsem v rámci rozpočtu schopen. (...)

Pro mě není důvodem dělat na 100 % to, že mi za to někdo platí, je to spíš otázka vnitřní motivace. Když mě něco baví, dělám na 100 % i když z toho nemám ani korunu.

5. Nevracejte se ke starým projektům

Dokázal bych redesignovat a překódovat všechny projekty, které jsem dokončil a spustil. Což mi dává docela slušné množství času, který raději strávím prací na nových projektech. Ano – teď by se dalo spousta věcí udělat líp, ale předtím to prostě nešlo. A do překódování většina klientů hned tak peníze nevrazí.

Nad tím se musím lehce pousmát. V řadě případů totiž s kódem, který jste napsali před X lety, musíte dál žít a stavět na něm, protože web se dále vyvíjí a vy ho spravujete. A v takovém případě je průběžné překódování často nutné.

Proč?

Protože časem typicky přijdete na to, že některé věci by bylo lepší udělat jinak, než byly udělány původně. Jenže když změníte programátorský styl/knihovnu/framework/cokoliv jen u nového kódu, vznikne chaos. Je na místě otázka, zda se nový způsob vyplatí natolik, že je lepší do něj přepsat celý web. Někdy ano, někdy ne.

Důsledky přepsání nemusí být jen ekonomické, důležité jsou i ty psychologické. Máloco demoralizuje víc než nutnost pracovat s ošklivým a (z pohledu dneška) špatně napsaným kódem. Pokud je kód přepsán, programátor pracuje lépe a radostněji, což se na projektu projeví. A na větších projektech to má i "manažerské" dopady jako nižší burn-out rate a tedy menší fluktuaci zaměstnanců, což zvyšuje produktivitu. Může být tedy vhodné nechat programátory přepisovat i ve chvíli, kdy to samo o sobě nic podstatného nepřinese.

6. Dolaďte web až všichni ostatní skončí

(...) Koder by měl projekt vždy opouštět jako poslední – doladit finální mršky, co nadělali programátoři, projekt předat a v ideálním případě už se k němu nevracet. V méně ideálních případech jdou ještě další 2–3 hodinky na ladění.

Pokud je zde myšleno ladění ve smyslu vychytávání funkcionality v jednotlivých prohlížečích, pak je moje připomínka irelevantní. Ale pokud je myšleno ladění jako celek, moje zkušenost je taková, že odevzdání a rozběhnutí projektu je málokdy jasně definovaný bod v čase. Spíš je to takové fuzzy období několika dní, kdy se web rozběhne a klient si typicky vzpomene ještě na milion drobností, které by tam rád upravil (teprve teď si totiž web pořádně prokliká a začne se na něj dívat z pohledu uživatele). Je dobré s tím v rozpočtu i časovém rozvrhu počítat.

Čím větší projekt, tím víc fuzzy dokončení je.

8. Kód má být takový, aby se v tom i prase za rok vyznalo

Správně odsazený (tedy v šablonách – ve frontendu webu je lepší komprese kódu do řádku) s hezky pojmenovanými třídami a případně i lehce prokomentovaný.

Kód šablon není důležitý. Když je zprasený, je otázka pár minut ho zpřehlednit a upravit, protože je (nebo by aspoň měl být) poměrně triviální. Mnohem důležitější je hezký kód aplikační logiky, který je podstatně složitější a hůře modifikovatelný.

Kvůli ošklivému kódu v šablonách se projekty nevyhazaují a nepřepisují znovu. Kvůli ošklivému kódu aplikační logiky ano.

(Manažerský překlad: Kvůli ošklivému kódu v šablonách se nevyhazují statisíce oknem. Kvůli ošklivému kódu aplikační logiky ano.)

10. A Filův blog stále upadá

A můj zjevně upadá taky, když komentuju upadající blog :-)