Hlavní navigace

Názor ke zprávičce Ministerstvo financí otevřelo aplikaci Supervizor od Filip Jirsák - když se třeba dohledává, kdo třeba něco změnil Nikdo...

  • 10. 4. 2016 14:17

    Filip Jirsák

    když se třeba dohledává, kdo třeba něco změnil
    Nikdo nedohledává kdo třeba něco změnil. Pokud hledáte změny od konkrétního autora, nepoužijete k tomu komentáře ke commitu, ale údaje o tom, kdo je autorem commitu. Pokud hledáte důvod konkrétní změny, necháte si verzovací systém vybrat ty commity, ve kterých se daný kód změnil. Commit „drobné úpravy“ mezi nimi s největší pravděpodobností nebude. Pokud bude, podle hlášky víte, že ho můžete přeskočit. A pokud přesto zjistíte, že se daným commitem kód podstatně změnil, aspoň podle té zprávy poznáte, že autor ve skutečnosti udělal jinou změnu, než si myslel. Jiná hláška by vám to nijak neusnadnila.

    je potřeba něco vrátit zpět
    Nikdy není potřeba něco vrátit zpět. Může se například ukázat, že daný commit zavlekl do aplikaci chybu, pak je potřeba vrátit zpět ten konkrétní commit – což lze udělat bez ohledu na to, jaký má komentář.

    Až jednou budete v kódu, kam přispívá 30 lidí hledat nějakou změnu před měsícem, tak Vám hláška "drobné úpravy" opravdu pomůže.
    Pokud bych hledal nějakou změnu před měsícem použiju k tou časové značky na commitech, komentář mi bude k ničemu. Ale nikdy jsem nic takového nedělal a nevím proč bych to dělal – možná je to nějaká specifická situace u menších projektů, na kterých pracuje jenom 30 lidí. Občas hledám změny, kterými byla implementovaná nějaká změna (např. požadavek zákazníka), nebo hledám důvody, proč se změnil konkrétní kód. Ani v jednom případě případě mi nijak nepřekáží komentář „drobné úpravy“ u commitu, který provádí jen drobné úpravy.

    správné commitové messages jsou samozřejmě důležité i jindy, třeba např. u pull requestů
    U pull requestu je důležitý především popis toho pull requestu.

    Prostě mají smysl.
    To právě není pravda. Komentáře nemají smysl samy o sobě. Komentáře mají nějaký účel, a u některých commitů jsou ty komentáře důležitější než u jiných. Důležitější než komentář je třeba to, co vše je do commitu zahrnuto (aby nebyl ani moc malý ani moc velký).

    Je to podobné, jako s komentáři v kódu. Dříve také všichni tvrdili, že správný kód má mít spoustu komentářů, a zároveň na to všichni kašlali. A když jste někde narazil na „vzorově“ okomentovaný kód, byl tam okomentovaný každý řádek, a to způsobem

    i = i + 2 //k i se přičte jedna

    (To 2 vs „jedna“ je záměr.) Dnes už snad většina programátorů ví, že rozhraní musí být především samovysvětlující a nesmí v něm být žádná překvapení – i bez dokumentace, protože tu nikdo nečte před tím, než začne daný kód používat. V dokumentaci rozhraní pak musí být uvedeny věci, které nejsou na první pohled zřejmé nebo které mohou být sporné – ale pořád to nesmí být žádné záludnosti, na které programátor přijde, až když mu program nefunguje. A to jsme pořád jen u dokumentačních komentářů. Dál je implementace, a ta má být napsaná tak, aby byla srozumitelná sama o sobě a komentáře nepotřebovala. A teprve když není jiná možnost a ten kód je potřeba napsat z nějakého důvodu nesrozumitelně přichází prostor pro komentář v kódu, který to nesrozumitelné místo vysvětlí.

    A úplně stejné je to u komentářů ke commitům. Různé commity jsou různě závažné, a tomu musí odpovídat péče věnovaná danému commitu (včetně jeho komentáře).

    Všimněte si, že váš popis toho, proč jsou komentáře ke commitům důležité, je plný slov někdo, něco, třeba. Na to jsem narážel tím čtením před usnutím. Ne, komentáře ke commitům se nepíšou proto, že by někdy někdo třeba chtěl udělat něco, k čemu bude třeba potřebovat něco z komentáře. Existují různé způsoby, k čemu se dají komentáře commitů použít, a různé projekty je dokonce mohou používat různě. A komentáře je potřeba přizpůsobit těm konkrétním způsobům použití, ne je prostě mít.