Zlepšení čitelnosti vlastního kódu

PanVP

Zlepšení čitelnosti vlastního kódu
« kdy: 30. 05. 2021, 22:26:02 »
Tak předně, nepovažuji se za programátora, ale spíš za přeplaceného elitního prasiče.

Ani nepřekvapují komentáře kolegů, které v průběhu let prostě občas přijdou:
Citace
Číst po tobě kód je jako strkat si do zadku zahradního trpaslíka.
nebo
Citace
Tohle mám číst? Kdybys mě vzal cihlou po hlavě, bylo by to milosrdnější!
a nejnovější
Citace
Tohle jsi dělal ty nebo to je výstup obfuskátoru?
Ten poslední komentář se mě vlastně dotknul...  :P

Máte nějakou rozumnou knížku, ze které i prasič pochopí, jak psát čitelněji?

Což mě přivádí k pár věcem:
  • Jak zlepšit čitelnost vlastního kódu?
  • Jak psát tak, abyste se chytli i po dvou letech?
  • Máte oblíbené "krásné" zdrojáky, jejichž čtení vám přivodí extázi a snažíte se psát podobně?

EDIT: A abych přišel s trochou do mlýna, tyto konvence vesměs dodržuji:
https://github.com/ktaranov/naming-convention/blob/master/C%23%20Coding%20Standards%20and%20Naming%20Conventions.md
« Poslední změna: 30. 05. 2021, 22:31:12 od PanVP »


Skier

  • ***
  • 110
    • Zobrazit profil
    • E-mail
Re:Zlepšení čitelnosti vlastního kódu
« Odpověď #1 kdy: 30. 05. 2021, 22:45:06 »
Máte nějakou rozumnou knížku, ze které i prasič pochopí, jak psát čitelněji?
https://www.amazon.com/Clean-Code-Handbook-Software-Craftsmanship/dp/0132350882

PanVP

Re:Zlepšení čitelnosti vlastního kódu
« Odpověď #2 kdy: 30. 05. 2021, 22:51:02 »

Googlovat umím taky, ale je dobrá? Četl jsi jí?

Pixe

« Poslední změna: 30. 05. 2021, 23:12:42 od Pixe »

L..

  • ****
  • 302
    • Zobrazit profil
    • E-mail
Re:Zlepšení čitelnosti vlastního kódu
« Odpověď #4 kdy: 30. 05. 2021, 23:20:01 »
Hele, když otevřeš s časovým odstupem (rok, dva) nějaký svůj zdroják, tak ti připadá jasný, srozumitelný a čitelný? Že se na něj podíváš a hned řekneš "jasně, to je tak a tak"?


tecka

  • ***
  • 138
    • Zobrazit profil
    • E-mail
Re:Zlepšení čitelnosti vlastního kódu
« Odpověď #5 kdy: 31. 05. 2021, 00:18:06 »
Googlovat umím taky, ale je dobrá? Četl jsi jí?
Clean Code není dobrá, naopak až překvapivě špatná.

RDa

  • *****
  • 2 467
    • Zobrazit profil
    • E-mail
Re:Zlepšení čitelnosti vlastního kódu
« Odpověď #6 kdy: 31. 05. 2021, 01:00:01 »
Staci par pravidel:
 - veci komentovat
 - promenne ci funkce pojmenovat vystizne, i kdyz to bude delsi
 - veci neflakat:
   - - kamarad rad resi veci copy-paste zpusobem, ja preferuji deduplikaci kodu do funkci/trid/metod
   - - slozitejsi hierarchie/struktura zdrojaku neni na skodu (tridy tam, kde by to slo udelat naprasaka rovnou)
 - nepouzivat cizi kod (stackoverflow copy/paste), v pripade fakt nutnosti prevzeti uvest zdroj/url

Nemam problem se svym starym kodem - vzdy jsem ho psal abych vzdy vedel ktera bije, ne proto, ze me tlaci prace/deadline/sef atd..  samozrejme pod komercnim tlakem je situace jina.

Re:Zlepšení čitelnosti vlastního kódu
« Odpověď #7 kdy: 31. 05. 2021, 01:46:31 »
Ahoj,
clean code od uncle Boba beru jako povídku :), takovou velmi obecnou, (ne)zcela objektivní kuchařku.
Kniha dává dobrou perspektivu "jak se stát lepším", něco ve stylu "cesta je cil" .

Uncle Bob mě pomohl zlepšit kód a pracovní návyky.
Coding performance díky psaní (smysluplných >> negumovych) testu, sla dolu.
A jako pozitivní side effect, také populace kostlivců v mé git skříni zamířila směrem dolu :)


Clean code můžeš zkusit na mini část kódu, třeba na foo bar cvičení.
Kód s testy pak postupně upravovat, až ti to zacne dávat smysl.
Něco jako "a pochopím za týden, co jsem zde myslel? Musím opravdu mít komentář?"

Jsi na správné cestě, stačí praktikovat a zbytek přijde sám.
Mě to trvalo přes 6 let, než jsem clean code vzal do rukou, a došlo mě co dělám špatně.

Re:Zlepšení čitelnosti vlastního kódu
« Odpověď #8 kdy: 31. 05. 2021, 06:11:57 »
Code Complete 2, mam doma, vyborna kniha, presne se dotykajici se tohoto problemu.
https://www.amazon.com/Code-Complete-Practical-Handbook-Construction/dp/0735619670


Re:Zlepšení čitelnosti vlastního kódu
« Odpověď #9 kdy: 31. 05. 2021, 06:28:36 »
Jeste me napadla takova vec. Kdysi kdesi jsem cetl neco jako "kod by se mel umet cist jako anglicky text".
Od te doby se snazim psat kod takovym stylem a pokud se podivat na kod stary jakkoliv dlouho, okamzite vim, co to dela.
Napriklad neco jako toto... pricemz logovani jsou pro me zaroven komenty.

Kód: [Vybrat]
if (device.Type == "android") {
     logInfo("Main process for " + device.Name + " started")
     var unprocessedData = downloadDataFrom(device)
     logInfo("Unprocessed data with length of  " + unprocessedData.length + " rows downloaded")
     var processedData = processData(unprocessedData)
     logInfo("Data processed with length of  " + unprocessedData.length + ". Ready for saving to database")
     var saveResult = saveDataToDatabase(processedData)
     logInfo("Main process for " + device.Name + " ended with result: " + saveResult)
}

Ink

  • *****
  • 655
    • Zobrazit profil
    • E-mail
Re:Zlepšení čitelnosti vlastního kódu
« Odpověď #10 kdy: 31. 05. 2021, 06:57:12 »
Už to tady v podstatě padlo. Zkusím to shrnout sám za sebe:

1. Při programování si uvědomím, co se má dít a ne jak se to má dít. Když se člověk soustředí jenom na to, že "to má fungovat", má podle mě menší tendenci psát jasně čitelný kód.

2. Když něco píšu - ať už identifikátory nebo komentáře, podvědomě si představuju, že to píšu pro ostatní, tedy i svoje budoucí já. Když to píšu "zevnitř", je všechno momentálně jasné a nemusím se starat o to, jak to vypadá. Když píšu kód "zvenčí", vidím, jestli je kód srozumitelný.

3. Než kód pošlu dál, nějakou dobu si s ním hraju, přemýšlím, zda něco ještě nestojí za zlepšení - strukturálně, algoritmicky, názvoslovím...

4. Vždycky stojí za to se sám sebe zeptat, zda - kdybych měl dělat review tohoto kusu kódu - bych to pustil dál nebo opřipomínkoval. Jinými slovy, jestli můj kód je dobrým vzorem pro ostatní.

PanVP

Re:Zlepšení čitelnosti vlastního kódu
« Odpověď #11 kdy: 31. 05. 2021, 10:09:51 »
Hele, když otevřeš s časovým odstupem (rok, dva) nějaký svůj zdroják, tak ti připadá jasný, srozumitelný a čitelný? Že se na něj podíváš a hned řekneš "jasně, to je tak a tak"?

No...pokud má člověk čas si s tím hrát, tak ano.
Ale často se dělají úpravy ve spěchu nebo člověk vymyslí řešení, které s odstupem let není tak jasné ::)

PanVP

Re:Zlepšení čitelnosti vlastního kódu
« Odpověď #12 kdy: 31. 05. 2021, 10:11:25 »

Asi bych se v tom ztratil  ::)
A to jsem příznivcem logování i komentářů.

Re:Zlepšení čitelnosti vlastního kódu
« Odpověď #13 kdy: 31. 05. 2021, 10:22:44 »
Staci par pravidel:
...
 - promenne ci funkce pojmenovat vystizne, i kdyz to bude delsi
...
Slyšel jsem takový bonmot, že vymýšlet smysluplné názvy proměnných a funkcí zabere třetinu času programování :)

Re:Zlepšení čitelnosti vlastního kódu
« Odpověď #14 kdy: 31. 05. 2021, 10:30:37 »
Slyšel jsem takový bonmot, že vymýšlet smysluplné názvy proměnných a funkcí zabere třetinu času programování :)

To je veliká pravda. S tím souvisí potřeba udržovat správné názvy i při refaktoringu a úpravách. A s tím souvisí potřeba používat pořádné vývojové prostředí, které takové úpravy jednoduše a hlavně spolehlivě zvládne. A také jazyk, který těmto změnám neháže klacky pod nohy...