Jaký programovací jazyk zvolit?

javaman ((

Re:Jaký programovací jazyk zvolit?
« Odpověď #210 kdy: 25. 08. 2016, 21:02:25 »
 ;D


JSH

Re:Jaký programovací jazyk zvolit?
« Odpověď #211 kdy: 25. 08. 2016, 21:37:00 »
Jde spíš o zrušení větve "else" bez náhrady.
Pokud má program dělat to, co předtím, tak je náhrada nutná. Tipoval bych, že tou náhradou jsou returny. Mám pravdu?

Jestli jo, tak to raději to else.

Kit

Re:Jaký programovací jazyk zvolit?
« Odpověď #212 kdy: 25. 08. 2016, 21:56:48 »
Jde spíš o zrušení větve "else" bez náhrady.
Pokud má program dělat to, co předtím, tak je náhrada nutná. Tipoval bych, že tou náhradou jsou returny. Mám pravdu?

Jestli jo, tak to raději to else.

return nebo throw. Je zbytečné dělat větve else pro nějaké chybové stavy, protože se tím zápis zbytečně komplikuje.

JSH

Re:Jaký programovací jazyk zvolit?
« Odpověď #213 kdy: 26. 08. 2016, 14:48:13 »
Jde spíš o zrušení větve "else" bez náhrady.
Pokud má program dělat to, co předtím, tak je náhrada nutná. Tipoval bych, že tou náhradou jsou returny. Mám pravdu?

Jestli jo, tak to raději to else.

return nebo throw. Je zbytečné dělat větve else pro nějaké chybové stavy, protože se tím zápis zbytečně komplikuje.
Tohle mi přijde jako příliš silné tvrzení. Pro "očekávané" chybové stavy (třeba výpadek spojení) mi házení vždycky tak zkomplikovalo kód, že jsem to nakonec přepsal přes návratové hodnoty.

A co se dodatečných returnů týká, po zkušenostech se snažím počet navratových bodů z funkcí omezovat. A všechny returny, co nejsou na konci funkcí se snažím výrazně značit. Else možná komplikuje zápis, ale na rozdíl od returnu je ta změna odsazení aspoň na první pohled vidět i při zběžném čtení.

zboj

  • *****
  • 1 507
    • Zobrazit profil
    • E-mail
Re:Jaký programovací jazyk zvolit?
« Odpověď #214 kdy: 26. 08. 2016, 15:09:44 »
Jde spíš o zrušení větve "else" bez náhrady.
Pokud má program dělat to, co předtím, tak je náhrada nutná. Tipoval bych, že tou náhradou jsou returny. Mám pravdu?

Jestli jo, tak to raději to else.

return nebo throw. Je zbytečné dělat větve else pro nějaké chybové stavy, protože se tím zápis zbytečně komplikuje.
Tohle mi přijde jako příliš silné tvrzení. Pro "očekávané" chybové stavy (třeba výpadek spojení) mi házení vždycky tak zkomplikovalo kód, že jsem to nakonec přepsal přes návratové hodnoty.

A co se dodatečných returnů týká, po zkušenostech se snažím počet navratových bodů z funkcí omezovat. A všechny returny, co nejsou na konci funkcí se snažím výrazně značit. Else možná komplikuje zápis, ale na rozdíl od returnu je ta změna odsazení aspoň na první pohled vidět i při zběžném čtení.
Souhlas, return někde uprostřed je v podstatě goto, strukturovaný kód s else je mnohem čitelnější.


Kit

Re:Jaký programovací jazyk zvolit?
« Odpověď #215 kdy: 26. 08. 2016, 18:50:05 »
return nebo throw. Je zbytečné dělat větve else pro nějaké chybové stavy, protože se tím zápis zbytečně komplikuje.
Tohle mi přijde jako příliš silné tvrzení. Pro "očekávané" chybové stavy (třeba výpadek spojení) mi házení vždycky tak zkomplikovalo kód, že jsem to nakonec přepsal přes návratové hodnoty.

Nevidím důvod, proč bych měl vyhozené výjimky konvertovat na nějaké návratové kódy z minulého století. Výjimka obsahuje úplnou informaci o chybovém stavu, mohu ji nechat propadnout až do takového levelu, ve kterém jsem ochoten ji ošetřit. Nemůže se mi stát, že bych na nějakou zapomněl, což se u návratových kódů stávalo běžně. Návratové kódy také nepříjemně ovlivňují typy návratových hodnot funkcí.

A co se dodatečných returnů týká, po zkušenostech se snažím počet navratových bodů z funkcí omezovat. A všechny returny, co nejsou na konci funkcí se snažím výrazně značit. Else možná komplikuje zápis, ale na rozdíl od returnu je ta změna odsazení aspoň na první pohled vidět i při zběžném čtení.

To je dnes už zastaralá teorie jednoho návratového bodu. Naproti tomu více návratových bodů umožňuje zbavit se i "break" v cyklu a ve switchi. Navíc je to mnohem přehlednější.

Zápis bez else vypadá tak, že na začátku metody pomocí podmínek ošetřím vstupy a pak teprve provedu požadovanou akci. Nevidím žádný důvod k tomu, aby ta požadovaná akce byla odsazena a zanořena kamsi do víceúrovňového "else".

Kit

Re:Jaký programovací jazyk zvolit?
« Odpověď #216 kdy: 26. 08. 2016, 18:56:27 »
..., return někde uprostřed je v podstatě goto, strukturovaný kód s else je mnohem čitelnější.

Blbost. Goto říká, kam se má skočit, ve strukturovaném programování ho nahrazuje else. Return obsahuje návratovou hodnotu, tedy data. Return neobsahuje žádnou adresu, s goto tedy nesouvisí.

zboj

  • *****
  • 1 507
    • Zobrazit profil
    • E-mail
Re:Jaký programovací jazyk zvolit?
« Odpověď #217 kdy: 26. 08. 2016, 19:41:20 »
..., return někde uprostřed je v podstatě goto, strukturovaný kód s else je mnohem čitelnější.

Blbost. Goto říká, kam se má skočit, ve strukturovaném programování ho nahrazuje else. Return obsahuje návratovou hodnotu, tedy data. Return neobsahuje žádnou adresu, s goto tedy nesouvisí.
Tak se podívej do vygenerovaného asembleru, jak to "není" goto. Pokud teda znáš asembler...

jurdo

Re:Jaký programovací jazyk zvolit?
« Odpověď #218 kdy: 26. 08. 2016, 19:56:54 »
Citace

Blbost. Goto říká, kam se má skočit, ve strukturovaném programování ho nahrazuje else. Return obsahuje návratovou hodnotu, tedy data. Return neobsahuje žádnou adresu, s goto tedy nesouvisí.
Ved return ma adresu, aby vedel, kam skocit s vysledkom, resp pre navrat.

Kit

Re:Jaký programovací jazyk zvolit?
« Odpověď #219 kdy: 26. 08. 2016, 19:58:21 »
..., return někde uprostřed je v podstatě goto, strukturovaný kód s else je mnohem čitelnější.

Blbost. Goto říká, kam se má skočit, ve strukturovaném programování ho nahrazuje else. Return obsahuje návratovou hodnotu, tedy data. Return neobsahuje žádnou adresu, s goto tedy nesouvisí.
Tak se podívej do vygenerovaného asembleru, jak to "není" goto. Pokud teda znáš asembler...

Když se podívám do returnu vygenerovaného do assembleru, tak tam goto skutečně není.

zboj

  • *****
  • 1 507
    • Zobrazit profil
    • E-mail
Re:Jaký programovací jazyk zvolit?
« Odpověď #220 kdy: 26. 08. 2016, 20:03:25 »
..., return někde uprostřed je v podstatě goto, strukturovaný kód s else je mnohem čitelnější.

Blbost. Goto říká, kam se má skočit, ve strukturovaném programování ho nahrazuje else. Return obsahuje návratovou hodnotu, tedy data. Return neobsahuje žádnou adresu, s goto tedy nesouvisí.
Tak se podívej do vygenerovaného asembleru, jak to "není" goto. Pokud teda znáš asembler...

Když se podívám do returnu vygenerovaného do assembleru, tak tam goto skutečně není.
Tak se podívej znova. Případně někoho požádej, ať ti ten strojový kód vysvětlí.

Kit

Re:Jaký programovací jazyk zvolit?
« Odpověď #221 kdy: 26. 08. 2016, 20:05:20 »
Citace

Blbost. Goto říká, kam se má skočit, ve strukturovaném programování ho nahrazuje else. Return obsahuje návratovou hodnotu, tedy data. Return neobsahuje žádnou adresu, s goto tedy nesouvisí.
Ved return ma adresu, aby vedel, kam skocit s vysledkom, resp pre navrat.

Instrukce pro return nemá adresu. Vezme si ji ze zásobníku.

Kit

Re:Jaký programovací jazyk zvolit?
« Odpověď #222 kdy: 26. 08. 2016, 20:22:38 »
Když se podívám do returnu vygenerovaného do assembleru, tak tam goto skutečně není.
Tak se podívej znova. Případně někoho požádej, ať ti ten strojový kód vysvětlí.

Tak se podívej na adresu toho tvého returnového goto. Kam skáče?

Martin

Re:Jaký programovací jazyk zvolit?
« Odpověď #223 kdy: 26. 08. 2016, 21:34:14 »
GOTO se používalo pro návrat hodnoty?

Kit

Re:Jaký programovací jazyk zvolit?
« Odpověď #224 kdy: 26. 08. 2016, 21:51:20 »
GOTO se používalo pro návrat hodnoty?

Ne, k tomuto účelu se goto ani použít nedá.