dagblog.
← Archiv

Na jazyku nezáleží


Vždycky jsem byl dost pesimistický ohledně zavádění dalších programovacích jazyků nad JVM. Zažil jsem pár odstrašujících příkladů, které znemožnily růst firmy a nebo vedly zpětně k přepisu do jazyku, který byl ve firmě zaveden jako lingua franca. Mám pochopení pro širokou vývojářskou duši, která si chce zkoušet a hrát, obzvláště pokud se daný jazyk veze zrovna na vrcholu nadšení. O trochu méně chápu, ale rozumím, potřebě trochu si vyleštit životopis. Argumenty, které často zaznívají, by se daly popsat následovně.

  • Potřebuji tohle a tohle syntaktické cukrátko, protože jinak si sedřu prsty do krve. V alternaci, v jazyku X bude kratší zápis.
  • Máme přece mikroslužby a ty jsou určené k tomu, abychom si zkoušeli různé jazyky, co kdyby náhodou lépe řešily problém Y.
  • Jazyk Z umožňuje tyhle tři řádky přepsat na jeden.

Všechny jsou více či méně relevantní, ale je tu jedno Ale. Problém není v tom, jak psát kód efektivněji nebo jestli napíšete jeden řádek namísto třech, ale v tom, že kód stojí za starou belu. Je naprosto irelevantní jestli programujete v Ruby, Go, Lue, Scale nebo Clojure. Záleží pouze na tom, jestli produkujete správně objektové navržený kód, který jde jednoduše testovat a náklady na jeho údržbu jsou nulové a zároveň umožňuje další rozšíření. Umění programovat je prach obyčejná disciplína. Nevypadá to sice tak sexy, jako napsat si do CV nějakou technologií, ale má to mnohem zásadnější váhu. Navíc to kdokoliv docení ve chvíli prvního commitu, který uděláte.

Protože je to disciplína, jako třeba plavání, dá se naučit prostým opakováním a učením se z chyb, cizích nebo vlastních. K tomu existuje řada cvičení, nástrojů a pomůcek, které pomáhají. Namátkou párové programování, coding katas, refaktoring, TDD, sezení nad ukázkami správně/nesprávně navrženého kódu. Mimochodem jednou z důležitých vlastností, kterou by se programátoři měli naučit, je umět potlačit vlastní ego — já nejsem můj kód, můj kód nejsem já.

Dominik Moštěk mluvil o accidental vs. essential complexity během talku pro CZJUG a ukazoval explozi metod v jednom z našich interfaců v repository vrstvě. Holt kovářova kobyla chodí bosa. Pořádáme akce typu Coderetreat , ale nemáme žádný plán, jak se učit čistému kódu mezi sebou u nás v Zonky. Kdysi dávno jsme ještě v GoodData pořádali codekata, ale jak bylo v GoodData zvykem, pohádali jsme se hned na začátku jestli to bude v Perlu, Erlangu, JavaScriptu či Jave. Z patnácti nadšených lidí, bylo deset, sedm, pět, tři, pořadatel…

Dominik má několik velmi dobrých nápadů, jak clean code a TDD dostat do naší DNA. Vybírám pár z nich

  • Extrakce části kódu do open source knihoven. To nás nutí více přemýšlet nad správným návrhem.
  • Párové programování.
  • Gamifikace, alá bug fixing days, které pořádáme. S odměnou pro vítěze samozřejmě. Plus body za refaktoring, který vede k zlepšení kódu

A co vy, jak bojujete s čistým kódem?

Verze na Medium

Související články

Související epizody CZ Podcastu