Diskuze: Závorky vs. 'End'

Ostatní jazyky Ostatní programovací jazyky Závorky vs. 'End'

Avatar
jan.ruzicka01
Redaktor
Avatar
jan.ruzicka01:

Zdravím, zajímám se o programování a mám rád čistý a přehledný kód a proto se chci jen tak zeptat, co si myslíte, že je lepší: Složené závorky '{ }' anebo klíčové slovo (Např. 'End')?
Podle tohoto kódu mi to přijde skoro stejné, ale chci vědět i Váš názor:
class mujProgram
{
println ("Hello world!")
}
/////////////­///////////
class mujProgram
println ("Hello world!")
end

Odpovědět 13.8.2014 17:31
';' je má jediná noční můra...
Avatar
Odpovídá na jan.ruzicka01
Neaktivní uživatel:

Č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 :)

Nahoru Odpovědět  +1 13.8.2014 17:38
Neaktivní uživatelský účet
Avatar
Martin Konečný (pavelco1998):

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ší.

Editováno 13.8.2014 17:49
 
Nahoru Odpovědět 13.8.2014 17:49
Avatar
Michal Žůrek (misaz):

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í.

Nahoru Odpovědět  +2 13.8.2014 17:53
Nesnáším {}, proto se jim vyhýbám.
Avatar
Matěj Kripner
Redaktor
Avatar
Matěj Kripner:

Určitě závorky. Dneska ti už každý normální editor zvýrazní jaké závorky k sobě patří.

Nahoru Odpovědět  ±0 13.8.2014 18:27
"We reject kings, presidents and voting. We believe in rough consensus and running code" David Clark
Avatar
Hartrik
Redaktor
Avatar
Odpovídá na Michal Žůrek (misaz)
Hartrik:

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
 
Nahoru Odpovědět  +2 13.8.2014 18:27
Avatar
Odpovídá na Hartrik
Michal Žůrek (misaz):

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. :)

Nahoru Odpovědět 13.8.2014 18:38
Nesnáším {}, proto se jim vyhýbám.
Avatar
Hartrik
Redaktor
Avatar
Odpovídá na Michal Žůrek (misaz)
Hartrik:

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í.

 
Nahoru Odpovědět 13.8.2014 19:03
Avatar
Odpovídá na Hartrik
Michal Žůrek (misaz):

asi nejsem tak zkušený, 4 podmínky v sobě jsem ještě neviděl.

Nahoru Odpovědět  -1 13.8.2014 19:07
Nesnáším {}, proto se jim vyhýbám.
Avatar
Hartrik
Redaktor
Avatar
Odpovídá na Michal Žůrek (misaz)
Hartrik:

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ě.

 
Nahoru Odpovědět 13.8.2014 19:10
Avatar
Hartrik
Redaktor
Avatar
Odpovídá na Hartrik
Hartrik:

metoda na řádku 8624

 
Nahoru Odpovědět 13.8.2014 19:12
Avatar
mkub
Redaktor
Avatar
Odpovídá na jan.ruzicka01
mkub:

podla mma su prehladnejsie zatvorky, ked sa spravne odsadia

 
Nahoru Odpovědět  +1 14.8.2014 8:54
Avatar
Odpovídá na Michal Žůrek (misaz)
Neaktivní uživatel:

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. :)

Nahoru Odpovědět  +1 14.8.2014 8:57
Neaktivní uživatelský účet
Avatar
mkub
Redaktor
Avatar
Odpovídá na Michal Žůrek (misaz)
mkub:

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

 
Nahoru Odpovědět 14.8.2014 9:00
Avatar
Odpovídá na Hartrik
Neaktivní uživatel:

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 :D

Nahoru Odpovědět 14.8.2014 9:04
Neaktivní uživatelský účet
Avatar
Odpovídá na Neaktivní uživatel
Michael Olšavský:

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

 
Nahoru Odpovědět  +1 14.8.2014 9:10
Avatar
Odpovídá na Michael Olšavský
Neaktivní uživatel:

Bohužiaľ, ako vidím Android ten návrh nemá bohvieaký, trieda dlhá takmer 20K riadkov...

Nahoru Odpovědět  +1 14.8.2014 9:29
Neaktivní uživatelský účet
Avatar
Odpovídá na Neaktivní uživatel
Michal Žůrek (misaz):

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.

Nahoru Odpovědět 14.8.2014 18:38
Nesnáším {}, proto se jim vyhýbám.
Avatar
Odpovídá na Michal Žůrek (misaz)
Neaktivní uživatel:

Na tom ako kód vyzerá a ako dobre sa číta veľmi záleží.

Nahoru Odpovědět 14.8.2014 18:50
Neaktivní uživatelský účet
Avatar
Odpovídá na Neaktivní uživatel
Martin Konečný (pavelco1998):

Metody by sice obvykle neměly být dlouhé, ale v určitých případech na pár řádků prostě napsat nejde. :)

 
Nahoru Odpovědět 14.8.2014 18:56
Avatar
Odpovídá na Martin Konečný (pavelco1998)
Neaktivní uživatel:

Metoda by mala robiť vždy iba jednu vec. Každá funkcia čo robí viac vecí sa dá rozdeliť na viac funkcii.

Nahoru Odpovědět 14.8.2014 18:59
Neaktivní uživatelský účet
Avatar
Odpovídá na Neaktivní uživatel
Martin Konečný (pavelco1998):

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á"?

Editováno 14.8.2014 19:08
 
Nahoru Odpovědět 14.8.2014 19:07
Avatar
Odpovídá na Martin Konečný (pavelco1998)
Neaktivní uživatel:

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.

Nahoru Odpovědět  +1 14.8.2014 19:26
Neaktivní uživatelský účet
Avatar
vitamin
Člen
Avatar
vitamin:

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.

Editováno 15.8.2014 8:19
 
Nahoru Odpovědět 15.8.2014 8:18
Avatar
Richard H.
Redaktor
Avatar
Richard H.:

hm tak to se nějak zvrhlo z slož. závorek a endů na to kolik má mít metoda řádků

Nahoru Odpovědět 13.8.2015 13:34
Malý užitečný manuál je vždy lepší než bichle k ničemu.
Avatar
David Hanina
Člen
Avatar
David Hanina:

Mnohem přehlednější mi příjdou závorky, ale dost možná je to jen tím, že jsem si už zvykl.

 
Nahoru Odpovědět 13.8.2015 13:52
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 27 zpráv z 27.