ukazkove zdrojaky
Jan Kasprzak
kas na fi.muni.cz
Pondělí Březen 6 13:49:39 CET 2006
Petr Vileta wrote:
: Jen tak mimo tema se vas chci zeptat na nazor, jak byste z hlediska
: prehlednosti hodnotil vyse uvedeny priklad, napsany takto
: main()
: {
: if (a)
: {
: b();
: }
: else
: {
: c();
: }
: }
: Tuto zvlastni upravu pouzivam ja a zajima me vas nazor ;-)
: A duvod teto upravy? No velmi prosty. Kdyz mam mezi uvodni a koncovou
: zavorkou napriklad 150 radek, tak se to proste nevejde na obrazovku. Kdyz
: kontroluji spravne uzavreni zavorek, nebo proste jen koukam, co do bloku
: patri a co ne, tak se postavim kursorem na uvodni zavorku a jedu dolu.
: Vsechno, co ma stejne nebo vetsi odsazeni patri do bloku a na konci musim
: narazit na uzaviraci zavorku presne na stejnem odsazeni :-)
: Tak co vy na to?
Uz jsem tohle nekde videl, nelibi se mi to. Jednak pro kratka
tela bloku to zabira zbytecne moc radku, a druhak kdyz uz se je tam to
"stejne _nebo_vetsi_" odsazeni, tak nevidim rozdil mezi timto a hledanim
uzaviraci zavorky na prislusne urovni.
Samozrejme s hypotetickym 150 radku dlouhym blokem je treba
zminit dalsi vec - pokud se funkce nevejde tak na dve tri obrazovky (cili
do xtermu roztazeneho na vysku do maxima), je obvykle lepsi ji rozdelit
na vic casti. Jsou samozrejme vyjimky - napriklad prikaz switch s mnoha
vetvemi - ale treba linux/Documentation/CodingStyle uvadi takovy pekny
hint - pripustna uroven vnoreni kodu by mela byt neprimo umerna delce funkce.
Cili je pripustna funkce s jednim velkym switch()em, ale uvnitr jednotlivych
vetvi by uz nemelo byt nic moc - delsi kusy kodu vytahnout do samostatnych
funkci. A naopak, je pripustna treba nejaka maticova operace se ctyrmi
vnorenymi cykly, ale uvnitr by uz nemelo byt nic sloziteho, a nemelo by
v te funkci byt cyklu vic.
Fakt si prectete linux/Documentation/CodingStyle.
-Yenya
--
| Jan "Yenya" Kasprzak <kas at {fi.muni.cz - work | yenya.net - private}> |
| GPG: ID 1024/D3498839 Fingerprint 0D99A7FB206605D7 8B35FCDE05B18A5E |
| http://www.fi.muni.cz/~kas/ Journal: http://www.fi.muni.cz/~kas/blog/ |
> Specs are a basis for _talking_about_ things. But they are _not_ a basis <
> for implementing software. --Linus Torvalds <
Další informace o konferenci Linux