Diskuze: Závorky vs. 'End'

Člen

Zobrazeno 27 zpráv z 27.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
Čistý a prehľadný kód sa dá napísať aj so zátvorkami aj s begin-end,
ale asi nie náhodou používa väčšina jazykov zložené zátvorky
Mně se zápisy typu begin ... end nelíbí, raději mám složené závorky. Osobně mi to přijde o něco přehlednější.
záleží jaký end, ve Visual Basicu třeba musíš za end dodat co ukončuješ.
If podmine Then
End If
a to mi přijde přehlednější, protože vím co kde končí. Pokud se to trochu zanoři (typicky namenspace, třída, metoda, podmínka) složené závorky na konci souboru mohou vypadat následovně
}
}
}
}
což i osobně nepřijde jako šťastné řešení, ale to je dost individuální.
Určitě závorky. Dneska ti už každý normální editor zvýrazní jaké závorky k sobě patří.
Pokud někdo neodsazuje, tak je už jedno v jakém jazyce píše.
Stejně tak může nastat toto:
End If
End If
End If
End If
no já jsem to měl odsazené, ale HTML ani v tomto nezobrazuje bílé znaky,
navíc 4 podmínky v sobě? Myslel jsem tam u těch závorek to co jsem
zmiňoval: namenspace, class, metoda, podmínka. A zde jsem si ukázali proč
mám radší End neco, protože víme co.
Ok... Ty čtyři podmínky byl jen příklad který mimochodem najdeš bez problému skoro všude.
Složené závorky mi přijdou jednodušší na rozlišení.
asi nejsem tak zkušený, 4 podmínky v sobě jsem ještě neviděl.
Tady je třeba jedna třída z Androida
https://android.googlesource.com/…ew/View.java
Lehce jsem našel 5 ifů + switch v sobě.
podla mma su prehladnejsie zatvorky, ked sa spravne odsadia
Každá uzatváracia zátvorka má byť na inej úrovni v riadku + takmer
všetky editory a IDE ti označia aj otávaraciu zátvorku bloku.
kludne moze byt v jednom if aj 10 dalsich ifov vnorenych do seba, ale i tak mi
if (podmienka1) {
.
.
.
if (podmienka2) {
.
.
.
if (podmienka3) {
.
.
.
}
}
}
pride dostatocne prehladne, viem, ktora zatvorka ukoncuje ktory blok kodu, ako aj editory mi zobrazia pekne, ktora zatvorka ku komu patri
Tá metóda z tej Androidovej triedy to je riadny kus hnusného kódu, má to
niečo cez 100 riadkov. 2 základné pravidlá pre písanie metód sú: 1.
metóda má byť malá 2. metóda má byť ešte menšia ako malá. Hento čudo
sa musí úžastne editovať a robiť v ňom zmeny a ľutujem tých čo s tým
kódom musia pracovať a čítať ho
Je to sice naprosto hnusný kód, ale v tak obrovském projektu by to znamenalo překopat celou strukturu (v lepším případě jen třídu a zachovat rozhraní, ale to prakticky snad u tohohle nejde). Pokud má něco špatný návrh ze základu, nemáš na výběr
Bohužiaľ, ako vidím Android ten návrh nemá bohvieaký, trieda dlhá takmer 20K riadkov...
byl tu milovník krátkých kódu (Kit), který by z tohoto kódu omdlel. Jeho třída podle definice nesmí mít víc než 80 řádku kódu.
Na tom ako kód vyzerá a ako dobre sa číta veľmi záleží.
Metody by sice obvykle neměly být dlouhé, ale v určitých případech na
pár řádků prostě napsat nejde.
Metoda by mala robiť vždy iba jednu vec. Každá funkcia čo robí viac vecí sa dá rozdeliť na viac funkcii.
Jedna z nejdelších metod v mém aktuálním projektu má cca 80 řádků, to ještě není nijak zvlášť hodně (pokud nepočítám jednu s cca 300 řádky, kde většinu zabírá SQL dotaz, který jsem roztáhl kvůli přehlednosti).
Někdy se mi metoda trochu roztáhne i kvůli tomu, že si nadefinuji několik proměnných, které mají kratší název (ve smyslu $var = $result->variable->from->somewhere->else).
Kolik asi tak řádků je dle tebe potřeba k tomu, aby metoda byla "moc dlouhá"?
To nie je vymedzené počtom riadkov. Keď si niekto iný(programátor samozrejme, nie tvoja babka) prečíta kód tej funkcie tak mu musí byť jasné čo daná funkcia robí, aj keď možno nepozná daný program.
Najviac zalezi na tom s cim dana metoda/funkcia pracuje. Ak je to trebarz nieco na sposob filtra, ma dake const/immutable vstupy, daky vystup a nepouziva ziadne globalne premenne tak moze mat kludne 1k riadkov a stale je prehladna, napr taky lexer/scaner v kompilatoroch sa da jednoducho implementovat cez giganticky switch reprezentujuci stavovy automat. Akonahle metoda zacne pouzivat globalne premenne(to plati aj pre mutable premenne pristupne cez parametre vcetne this) a ako bunus sa volaju virtualne metody tak moze byt aj 15 riadkovy kod extremne neprehladny.
hm tak to se nějak zvrhlo z slož. závorek a endů na to kolik má mít metoda řádků
Mnohem přehlednější mi příjdou závorky, ale dost možná je to jen tím, že jsem si už zvykl.
Zobrazeno 27 zpráv z 27.