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

PanVP

  • *****
  • 967
    • Zobrazit profil
    • E-mail
Re:Zlepšení čitelnosti vlastního kódu
« Odpověď #75 kdy: 22. 06. 2021, 12:54:05 »

Dovoluji si citovat z jiného vlákna:

https://www.sqlstyle.guide/

Moc pěkně a uceleně napsaný popis pro SQL.
(Zatím jsem to jen prolétl očima, ale naformátované to vypadá výrazně lépe, než dlouhá špageta.)


Re:Zlepšení čitelnosti vlastního kódu
« Odpověď #76 kdy: 22. 06. 2021, 16:36:13 »
Přidám ještě jednu věc, o které se divím, že tu explicitně nepadla: Psát unit testy a nemilosrdně refaktorovat.

Unit testy tě donutí kód psát znovupoužitelně a rozdělit ho na smysluplné části (protože je tím pádem nutné ho použít alespoň ze dvou míst, z produkčního kódu a z testovacího kódu). To je hrozně důležitý.

Unit testy ti umožní refaktorovat kód, který se ti nelíbí - a to se stává pořád - vrátíš se ke staršímu kódu, nerozumíš mu, protože už to nemáš tolik v hlavě, nebo se ti něco nelíbí něco čeho sis nevšiml, tak to upravíš tak, aby to dávalo lepší smysl. Tohle neustálé vylepšování je podle mě povinnost, bez které se z projektu časem stane břečka. Super kód se často nepíše na první dobrou, ale iteruje se k němu. Nebo něco, co byl super kód dřív, přestane dávat smysl a musí se to trochu předělat kvůli novým byznys požadavkům. Unit testy ti dají důvěru a svobodu nutnou k tomu, aby jsi mohl kód upravovat a nebál se, že něco rozbiješ. To je hrozně důležitý.
Unit testy su uplny zaklad, ale realita je tragicka. Bud sa na to vo firmach uplne serie alebo mas programatorov, ktori si mylia unit testy s integracnym a funkcionalnymi testami a nedochadza im, ze unit testy sice v nazve maju slovo 'test', ale je to skor taka pomocka ako navrhnut dobre API, metody, rozhrania, zapuzdrenost atd. Dalsia vec, kedy uz konecne na trh pridu programatori ktori budu chapat, ze otestovatelnost je uplne legitimna poziadavka na kod a dobry kod by ju mal splnat. V praxi som vzdy videl iba uplne spraseny kod pri ktorom nikto nemyslel na to, ze by bolo fajn ho napisat tak aby sa dal aj pomerne dobre otestovat a na tom sa aj krasne ukazuje ako unit testy pomahaju dobre navrhnut rozhrania pretoze kod ktory sa zle testuje je na 90% hovnokod.

Ono celkovo je realita co sa tyka testovania neskutocne tragicka pritom dobre testy vedia v dlhodobom horizonte vyvoj velmi urychlit a zabezpecit podla mna lepsie prijmy pre firmu ktora nebude musiat plytvat mandaymi na fixovanie blbosti ktore by testy hravo odhalili. Ale to by zas musel niekto chapat, ze setrit na testoch je ukazkovy priklad setrenia na nespravnom mieste, ale deje sa to furt, ak pracujete niekde, kde sa to nedeje, tak si tu pracu vazte a budte radi, ja som na vlastnej kozi zazil aj takych "expertov" co zamergovali do mastru kod ktory si ani neskusili zbuildit a tak to aj vyzeralo. A pritom toto su take veci, ze mne to pride ako uplny zaklad, ani by mi nenapadlo v zivote zamergovat nieco do ostrej branche co som si ani neskusil zbuildit a rucne pretestovat, nechapem odkial sa ti ludia beru a ako je mozne, ze im niekto da peniaze za taku "pracu".

"Unit testy ti dají důvěru a svobodu nutnou k tomu, aby jsi mohl kód upravovat a nebál se, že něco rozbiješ. To je hrozně důležitý."
toto plati obecne o testoch a nie len unit testoch. zazil som to len raz, ale je omnoho lepsie robit zmeny, ked viem, ze mam komplet integracnu, regresnu a unit sadu testov takze ak by som nedopatrenim nieco rozbil tak sa to neukaze az v produkcii, ale krasne pocas vyvoja, len to este vysvetlit tym ludom ktori rozhoduju o tom na com sa bude robit a ako alokovat programatorov.
« Poslední změna: 22. 06. 2021, 16:41:14 od nehalem »

luvar

  • ***
  • 165
    • Zobrazit profil
    • E-mail
Re:Zlepšení čitelnosti vlastního kódu
« Odpověď #77 kdy: 22. 06. 2021, 16:47:45 »
Přidám ještě jednu věc, o které se divím, že tu explicitně nepadla: Psát unit testy a nemilosrdně refaktorovat.

Unit testy tě donutí kód psát znovupoužitelně a rozdělit ho na smysluplné části (protože je tím pádem nutné ho použít alespoň ze dvou míst, z produkčního kódu a z testovacího kódu). To je hrozně důležitý.

Unit testy ti umožní refaktorovat kód, který se ti nelíbí - a to se stává pořád - vrátíš se ke staršímu kódu, nerozumíš mu, protože už to nemáš tolik v hlavě, nebo se ti něco nelíbí něco čeho sis nevšiml, tak to upravíš tak, aby to dávalo lepší smysl. Tohle neustálé vylepšování je podle mě povinnost, bez které se z projektu časem stane břečka. Super kód se často nepíše na první dobrou, ale iteruje se k němu. Nebo něco, co byl super kód dřív, přestane dávat smysl a musí se to trochu předělat kvůli novým byznys požadavkům. Unit testy ti dají důvěru a svobodu nutnou k tomu, aby jsi mohl kód upravovat a nebál se, že něco rozbiješ. To je hrozně důležitý.

Amen...

Unit testy nútia k rozumným konštruktorom a potláčajú zverstvá ako posúvanie dát cez environment property (či inú ľudovú tvorivosť) a ich prítomnosť dáva určitú istotu pri refaktoringu. TO je tiež dôležité (ako už bolo napísané).