Zadejte hledaný výraz...

Píšete ELSE vždycky nebo jen když je potřeba?

Petr Holub
verified
rating uzivatele
(4 hodnocení)
4. 4. 2013 17:24:27
Dobrý den. Jmenuji se Petr a právě se nacházím ve svém pokoji. Ale i tady přemýšlím o problémech, které nás pálí u nás v České republice.
Zajímalo by mě jaká jsou v tomhle pravidla/zvyklosti - píšete po podmínkách else i tam kde není přímo potřeba? Když prostě vím, že tam ten program i tak spadne a nemám žádné další větve...
Dělá se to takto, když je možné ten else úplně vynechat? Mě osobně se to líbí bez toho, ale částečně ten kód ztrácí na přehlednosti.
Co si o tom myslíte vy? Napište mi do komentářů..
4. 4. 2013 17:24:27
https://webtrh.cz/diskuse/pisete-else-vzdycky-nebo-jen-kdyz-je-potreba#reply886759
hm
verified
rating uzivatele
(20 hodnocení)
4. 4. 2013 17:27:02
else v obrovskem mnozstvi pripadu neni potreba, takze skutecne ani omylem ho nepisu vsude :) v tom pripade cos napsal ty bych ho ovsem napsal...
4. 4. 2013 17:27:02
https://webtrh.cz/diskuse/pisete-else-vzdycky-nebo-jen-kdyz-je-potreba#reply886758
Macecha
verified
rating uzivatele
(17 hodnocení)
4. 4. 2013 17:27:13
else má lepší využití...
4. 4. 2013 17:27:13
https://webtrh.cz/diskuse/pisete-else-vzdycky-nebo-jen-kdyz-je-potreba#reply886757
jindra2012
verified
rating uzivatele
4. 4. 2013 17:31:48
Pokud chci jen vrátit false nebo true tak tam rozhodně else nepíšu, ale když potřebuji aby to něco přesně udělalo tak samozřejmě píšu třeba:
něco v tomhle smyslu. Jinak pokud else není potřeba neuvádím, myslím že na přehlednosti to neztrácí
4. 4. 2013 17:31:48
https://webtrh.cz/diskuse/pisete-else-vzdycky-nebo-jen-kdyz-je-potreba#reply886756
Petr Soukup
verified
rating uzivatele
(5 hodnocení)
4. 4. 2013 17:35:09
Osobně bych teda v konkrétním případě psal
public function vetsi_nez_pet($a) {
return $a>5;
}
A nebo toto, když už tam musí být podmínka:
public function vetsi_nez_pet($a) {
return $a>5?true:false;
}
Každopádně při složitějším případě bych tam else pro přehlednost psal.
4. 4. 2013 17:35:09
https://webtrh.cz/diskuse/pisete-else-vzdycky-nebo-jen-kdyz-je-potreba#reply886755
Petr Holub
verified
rating uzivatele
(4 hodnocení)
4. 4. 2013 17:37:31
@Souki
Ano, vím že se to dá napsat na 1 řádek nebo třeba půl :) bylo to jen pro příklad.
4. 4. 2013 17:37:31
https://webtrh.cz/diskuse/pisete-else-vzdycky-nebo-jen-kdyz-je-potreba#reply886754
David Musil
verified
rating uzivatele
(69 hodnocení)
4. 4. 2013 17:42:16
nepsat, kdyz neni potreba
4. 4. 2013 17:42:16
https://webtrh.cz/diskuse/pisete-else-vzdycky-nebo-jen-kdyz-je-potreba#reply886753
Petr Soukup
verified
rating uzivatele
(5 hodnocení)
4. 4. 2013 18:03:14
Jakub Vrána nedávno psal zajímavý článek, že práce ve Facebooku ho odnaučila psát různé efektivní zkratky - kód pak nebyl na první pohled zřejmý a hlavně zkrácené konstrukce nešly dobře při refactorování vyhledávat. Nejsem si ale jistý, jestli to bude i tenhle případ.
Alternativní verze pak může být ještě takto:
public function vetsi_nez_pet($a) {
if($a>5){
return true;
}
return false;
}
Třeba phpstorm totiž bude řvát, pokud v kódu budu používat návratovou hodnotu metody, která je napůl void
4. 4. 2013 18:03:14
https://webtrh.cz/diskuse/pisete-else-vzdycky-nebo-jen-kdyz-je-potreba#reply886752
Petr Holub
verified
rating uzivatele
(4 hodnocení)
4. 4. 2013 18:05:36
@ Souki
Takhle je to docela pěkné no :)
4. 4. 2013 18:05:36
https://webtrh.cz/diskuse/pisete-else-vzdycky-nebo-jen-kdyz-je-potreba#reply886751
unlucky
verified
rating uzivatele
(16 hodnocení)
4. 4. 2013 18:08:16
ja pisu.
jinak mam radsi
vwerzi
4. 4. 2013 18:08:16
https://webtrh.cz/diskuse/pisete-else-vzdycky-nebo-jen-kdyz-je-potreba#reply886750
node
verified
rating uzivatele
(5 hodnocení)
4. 4. 2013 21:29:06
else pisem jedine pokial je nutny dalsi kod(napr definovat dalsi premenne, upravit nieco a pod), inak vzdy bez. pripadne tiez return 1 > 2 namiesto return 1 > 2 ? true : false;
4. 4. 2013 21:29:06
https://webtrh.cz/diskuse/pisete-else-vzdycky-nebo-jen-kdyz-je-potreba#reply886749
Petr Kobelka
verified
rating uzivatele
5. 4. 2013 06:51:09
v momentě, když uvnitř podmínky máte return, pak je else skutečně zbytečný - přehlednost ani čitelnost to neovlivní (return přece ukončuje běh funkce) - osobně používám syntaxi jako SOUKI, jen malinko jinak formátovanou (ve stylu Visual Studia)
5. 4. 2013 06:51:09
https://webtrh.cz/diskuse/pisete-else-vzdycky-nebo-jen-kdyz-je-potreba#reply886748
Marek
verified
rating uzivatele
(2 hodnocení)
5. 4. 2013 08:57:29
Píšu to stejně jako unlucky, přijde mi to přehlednější :-) V IDE kliknu na začínající závorku, a "rozsvítí" se mi ukončovací, takže nemusím v kódu hledat nějaké else a vím, kam až podmínka sahá. V tvém případě je ale tahle věta celkem bezpředmětná :) Tam bych volil již zmíněné return ($a > 5) ? true : false;
5. 4. 2013 08:57:29
https://webtrh.cz/diskuse/pisete-else-vzdycky-nebo-jen-kdyz-je-potreba#reply886747
Velmi dobrá otázka.
Doporučuju psát kód tak, aby byl co nejpřehlednější a co nejčitelnější. Uvádí se, že 10% života kódu je jeho psaní, 90% čtení. A i když děláte na projektu sám, za půl roku pro vás váš vlastní kód bude cizí, jako by ho psal někdo jiný.
Else někdy vypouštím, protože chci snížit počet zanoření. To je možné, pokud větev kódu ukončuje funkci.
class User {
function save( $userdata ) {
if( ! $this->check( $userdata ) ) {
return false;
}
// Save the user
// ... No need for "else"
}
}
Else taky někdy vypouštím, když nastavuji proměnné pro společný kód. Před if() nastavím defaultní hodnoty, v if() výjimečné.
class Circle {
function draw( $large = false ) {
$diameter = 1;
if( $large ) {
$diameter = 10;
}
// Draw the circle
}
}
Někdy naopak můžete else uvést, přestože nic nedělá, abyste zdokumentoval, že jste tu možnost zvážil a že explicitně chybí.
if( $color->isValid() ) {
// Do something
...
} else {
// Else color is invalid
// Screen not written to - safely ignore
}
Jestli vás to téma zajímá podrobněji, vřele doporučuji knihu Code Complete, kde se tomuto tématu věnuje celá kapitola.
Autor tam mimo jiné doporučuje:
- Napsat nejdřív standardní cestu kódem, pak teprve speciální případy
- Zkontrolovat pečlivě rovnost a nerovnost. < není <=
- Vložit častější cestu do if, ne do else
- Zvážit jestli není větev else opravdu potřeba
- Zjednodušit komplikované testy zavoláním jedné, dobře pojmenované funkce
- Ujistit se, že jsou pokryté všechny případy
- Ujistit se, že if-then-else je opravdu nejvhodnější konstrukce. Někdy se víc hodí switch.
Třetí příklad je právě z Code Complete.
5. 4. 2013 12:56:40
https://webtrh.cz/diskuse/pisete-else-vzdycky-nebo-jen-kdyz-je-potreba#reply886746
Pro odpověď se přihlašte.
Přihlásit