Dilema: Psát při rozdělování příkazů operátory na začátek nebo na konec řádku?

Pokud píšete programy, určitě se vám mnohokrát stalo, že jste museli rozdělit jeden příkaz na více řádků. Nejvhodnější místo k rozdělení je obvykle okolo nějakého operátoru, například "+" nebo "&&".

V tu chvíli musíte řešit otázku, zda operátor nechat na konci prvního nebo na počátku druhého řádku. Obojí má svůj význam:

V různých "coding guidelines" jsem našel doporučené obě varianty, většinou ale vyhrává druhá (operátor na začátku řádku). Já zas pro změnu obvykle preferuju první :-)

Dneska mě ale napadlo možné řešení tohoto (pravda, kosmetického) dilematu: Proč nezabudovat do jazyka možnost operátor okolo odřádkování prostě zopakovat? Úplně stejně, jako se to dělá v matematických zápisech:

x = a + b + c +
  + d + e + f;

Uznávám, že u většiny jazyků by to trochu narušilo fakt, že odřádkování je stejné jako každá jiná bílá mezera, ale možná, že v tomhle případě by pragmatismus v zájmu přehlednosti progamů mohl dostat přednost.

May 5, 2004 – 14:15

Comments

Lada Prosek
Lada Prosek
Zajimave :-)
Dlouhe vyrazy pisu casto do ifu a to potom operator nechavam na konci radky. Duvod? Pouzivam indentaci 4, takze kdyz na druhe radce bouchnu do tabu, jsem presne pod znakem tesne za oteviraci zavorkou. Cely if potom pusobi tak nejak kompaktne a esteticky, protoze zacatky podvyrazu jsou pod sebou. Priklad:

if (subexpr1 && subexpr2 &&
subexpr3 && subexpr4) ...

Jsem vubec docela velkym zastancem esteticky hodnotneho kodovani. Asi je to trochu i uchylka, ale kdyz neco napisu, tak taky chci, aby to pekne vypadalo. To, co me dokaze od cteni ciziho kodu odrazit nejvic, jsou do oci bijici nekonzistence v zakladnich "kodovacich schematech". Clovek, ktery na jedne radce vola funkci takhle:

funkce( param );

a na dalsi takhle:

funkce(param);

je u me cune.


Navrhovane zdvojeni operatoru jako feature jazyka si lze skutecne tezko predstavit, ale co treba zabudovat to do editoru? Editor by sam podle nastavenych guidelines wrapoval radky a operator by zobrazoval na dvou mistech, i kdyz v editovanem souboru by byl jenom jednou...
Lada Prosek
Lada Prosek
Ha, koukam, ze priklad se nezobrazuje spravne. Pred subexpr3 jsou proste 4 mezery.

Diky za inspirujici clanek!
David Majda
David Majda
Nejseš Láďo jediný, kdo vyznává "pěkně psaný" kód. Konvence můžou být různé, ale hlavně aby nějaké byly.

Osobně pokud se učím nějaký nový jazyk, tak většinou přebírám konvence defaultní pro dané prostředí, a tak můj kód vypadá trošku jinak v céčku, v Javě nebo (kdysi :-) v Pascalu. Snažím se "nevyčuhovat".

S tím editorem je to zajímavý nápad. Já bych zas ale byl nerad, aby mi editor zobrazoval něco, co v kódu ve skutečnosti není; to by mě asi dost mátlo.

Jinak zdvojování si podle mě lze představit docela dobře třeba u jazyků, které jsou řádkové orientované (Basic, Python...).

P.S.: To tvoje schéma s estetickým ifem se trochu rozpadá, pokud tam je while :-)
PePPer
PePPer
ja pouzivam editor ktery radky zalamuje a tak se nemusim psat se zbytecnymi taby a mezerami tam kde nemaji co delat. Neni to tak lepsi?

Co proboha pouzivate za editory?

Add comment

It is not possible to add comments to posts older than one month.