Portál AbcLinuxu, 12. května 2025 18:04

Dotaz: Jak se neztratit v kódu

29.5.2015 20:37 Mate
Jak se neztratit v kódu
Přečteno: 870×
Odpovědět | Admin
Ahoj, měl bych netradiční dotaz na programátory kteří dělají velké věci. Nevím jak se neztratit v kódu. Už ani nepomáhá pořádné okomentování kódu. Vnoření je tak hluboké, že se těžce ztrácím :-( jak to děláte vy? Neexistuje na to "něco" co by nám to ulehčilo ? Třeba nějaká aplikace ve které by se dal vytvořit nějaký virtuální pavouk a místo kódu by bylo jen info ? Asi plácám, ale fakt netuším jak dál. Díky za případné nápady.

Řešení dotazu:


Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

29.5.2015 20:50 Kit | skóre: 45 | Brno
Rozbalit Rozbalit vše Re: Jak se neztratit v kódu
Odpovědět | | Sbalit | Link | Blokovat | Admin
Zanoření by nemělo překročit 4 úrovně (např. třída, metoda, cyklus, podmínka). Když metodu nebudeš dělat delší než 20 řádek, tak s tím nebudeš mít problém.
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
30.5.2015 00:32 Sten
Rozbalit Rozbalit vše Re: Jak se neztratit v kódu
Odpovědět | | Sbalit | Link | Blokovat | Admin
Pokud je příliš velké vnoření, pravděpodobně ta třída nebo funkce dělá příliš mnoho práce a zasloužila by rozdělit. U dobře navrženého kódu toho pavouka dělají třídy, resp. calling graph.
30.5.2015 09:48 Matlák
Rozbalit Rozbalit vše Re: Jak se neztratit v kódu
Odpovědět | | Sbalit | Link | Blokovat | Admin
Metody "virtuální pavouk" nebude přehledná dokud nebude samotný kód přehledný. Pokud jsou v kódu pětisetřádkové metody/funkce které používají řadu vnořených cyklů a podmínek, ani z výsledné grafické reprezentace by případný nezasvěcený čtenář nebyl moc moudrý (což, bohužel, mnohdy platí i pro autora, který kód na pár měsíců či let "odložil").

Obecně bych doporučil metodu "rozděl a panuj", tzn. vnořené části rozdělit na funkce/metody, dlouhé funkce s mnoha zodpovědnostmi rozdělit do separátních souborů. Hodně taky pomáhá oddělit interface a implementaci (hlavičkové a implementační soubory) - mnohé jazyky takové konstrukce podporují, právě proto že jsou přehlednější. Člověk pak nemusí koukat do kódu, jen studuje jednotlivá rozhraní. Na základě rozhraní a jeho komentářů lze generovat i dokumentaci (javadoc,doxygen) a kýžená "grafická podoba" je potom přehledná a jasná
30.5.2015 19:53 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: Jak se neztratit v kódu
(což, bohužel, mnohdy platí i pro autora, který kód na pár měsíců či let "odložil")

Nemyslím, že je tu slovo "bohužel" na místě. Takhle je aspoň o něco větší šance, že prozře, až bude nevěřícně zírat do svého vlastního kódu a proklínat to prase, které to psalo.

31.5.2015 08:35 Matlák
Rozbalit Rozbalit vše Re: Jak se neztratit v kódu
Pravda, sem asi patří spíš "bohudík" :-)
pushkin avatar 4.6.2015 15:04 pushkin | skóre: 43 | blog: FluxBlog
Rozbalit Rozbalit vše Re: Jak se neztratit v kódu
Přesně můj případ. Před pár lety jsem stvořil program, jehož jádro je cca 40 řádek kódu. Už asi měsíc sbírám odvahu na to, do nich sáhnout.
4.6.2015 18:44 Kit
Rozbalit Rozbalit vše Re: Jak se neztratit v kódu
Kostlivce ve skříni má snad každý. Mám jeden funkční monolitický skript, který má 700 řádek a už několikrát jsem se pokusil ho přepsat do OOP, což by mu určitě prospělo, protože by se zkrátil, zpřehlednil a zrychlil. Vždycky mi však do toho něco vleze a protože původní skript funguje, nechám to zase být.
30.5.2015 22:05 dustin | skóre: 63 | blog: dustin
Rozbalit Rozbalit vše Re: Jak se neztratit v kódu
Odpovědět | | Sbalit | Link | Blokovat | Admin
Doporučuji ti přečíst si http://www.amazon.com/Clean-Code-Handbook-Software-Craftsmanship/dp/0132350882 , Vážně to člověku docela otevře oči.
3.6.2015 16:45 karl82 | skóre: 6
Rozbalit Rozbalit vše Re: Jak se neztratit v kódu
Odpovědět | | Sbalit | Link | Blokovat | Admin
Refactoring: Improving the Design of Existing Code a Refactoring to Patterns
4.6.2015 00:49 tacoberu | skóre: 6
Rozbalit Rozbalit vše Re: Jak se neztratit v kódu
Odpovědět | | Sbalit | Link | Blokovat | Admin
Jedno konkrétní doporučení:

Piš třídu, funkci/metodu, cikl/podmínku tak, aby dotyčná funkce věděla co volá, ale nevěděla konkrétní implementaci, a aby nepředpokládala, že ji někdo bude používat nějakým konkrétním způsobem.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.