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