Titulky obsahující slovo „aneb“ mi vždycky připadaly divné. A tento je ze všech úplně nejdivnější. Že jo?

Téměř každý den dostávám dotaz, kdy bude Nette. Už jsem si říkal, že si připravím automatickou odpověď, nebo si napíšu do messengera plugin, který to za mě bude vyřizovat sám. Ale nakonec jsem šáhl po blogu. Takže, slyšte…

Rozpaky programátora Svatopluka

Je krásný vlahý den, tři hodiny ráno, a vy si zlehka programujete novou báječnou webovou aplikaci. Důležitou roli v ní hraje vaše šikovná knihovna Manipulator. Když tu si najednou všimnete, že volání metody $manipulator->appendFor(true, $objA) má jednu kosmetickou vadu. Teda vlastně dvě. Jednak samotný název metody je nešťastný, vhodnější by bylo appendTo nebo pouhé append. A za druhé – to pořadí argumentů by mělo být opačné. No jistě, kolikrát už jste se sám spletl. Je to jasné, $manipulator->append($objA, true) vypadá mnohem lépe. Navíc druhý parametr bývá v 99 % případů true, takže ho můžeme dát jako volitelný, s touto výchozí hodnotou.

Motivace na drobný refactoring jako vyšitá.

Co zatím nevíte…

Něco vám musím prozradit. Knihovna Manipulator je velmi populárním open-source projektem. Používají ho tisíce vývojářů. A vy jste jeho autorem.

Jo, kdybyste byl samotář, co si kód píše a používá sám, přejmenování metody a prohození parametrů by byla brnkačka. No, uvažujete, na to by se dal napsat regulární výraz. Prográmkem (samozřejmě opět vlastní výroby) Search & Replace si projedete všechny své zdrojáky a jednotlivé záměny budete ručně potvrzovat. To pro sichr.

Odhadem – bajvoko – za čtvrt hodinky je to hotové.

Ale jak jsem zmínil, Manipulator je big fasa project. Takže přemýšlíte, jestli vážně tu změnu udělat:

Neváhal bych, jenže co ty tisíce uživatelů? Způsobím jim komplikace, práci navíc. A přitom jde vlastně o hloupost.

Jenže, mně se prostě appendFor nelíbí, mně to tam vadí. Chci to změnit. Manipulator používá stále víc programátorů a čím později změnu udělám, tím víc jich to postihne.

Nebo raději počkám na větší update, až se změní velké číslo verze.

Ale kurnik žádné závazky přece nemám, prostě to změním a hotovo. Napíšu to do changelogu, programátoři si to přečtou a svůj kód si holt budou muset změnit.

Ach jo, víš, jak to dopadne, budeš odpovídat na tisíce dotazů „hele, updatnul jsem si Manipulator a píše mi Fatal error: Call to undefined method appendFor, co stím?“

Doprkýnka, pošlu je do patřičných míst v changelogu.

Ale nepošleš. Jen si vzpomeň, kolikrát jsi sám aktualizoval software a nikdy jsi nestudoval changelog. Sám to neděláš a po ostatních to chceš?

Dobře, ale co já z těch „ostatních“ mám? Dávám jim svůj těžce vydřený software zdarma – a co je zdarma, to nikdo neocení. Píšu dokumentaci, odpovídám na stovky dotazů a výsledek je, že se nervuju, když chci přejmenovat jednu blbou funkci.

Nebo vznesu návrh, uvidíme, co na to řeknou uživatelé.

No co asi. Zrovna minulý týden jsi přejmenoval dvě klíčové třídy. To bude zase radosti… Vykašli se na to.

Stop!

A tady příběh zastavíme. Jako na videu. Od této chvíle je to na vás! Jak se má programátor Svatopluk Kuřátko rozhodnout?

  1. změnit název metody a prohodit pořadí parametrů
  2. na úpravu se vykašlat

Posílejte SMS ve tvaru HLA DGX A nebo B. Jste to vy, kdo ovlivní další děj!

Málem bych zapomněl. Vy vlastně chcete vědět, kdy bude Nette, že? Já se tak rozepsal, že mi to skoro vypadlo. Uff, to bylo o fous.