• 12 odgovora
  • 7.000 pregleda
Sta je pametnije? 03.11.2004. u 17:37 · pre 267 meseci #1
Radi se o razlicnim mislenja. U principu radi se o ne bitnoj sitnici koja mislim da kako i da se resi je ispravno, ali ipak.... Sta je bolje (i zasto, dali je brze).

$Odgovor je boolean

99% od slucaja $Odgovor = false

Kako bi vi resile problem?


Code:

if ($Odgovor) {
    izvrsi nesto
}
else {
    izvrsi nesto drugo
}


ili

Code:

if (!$Odgovor) {
    izvrsi nesto drugo
}
else {
    izvrsi nesto
{

Potpis
routing protocols enable routers to route routed protocols!
Re: Sta je pametnije? 03.11.2004. u 17:48 · pre 267 meseci #2
prva verzija, lakse se odrzava, i smanjuje mogucnost greske

inace vecina danasnjih kompajlera, interpretatora ... je sposobna da interno to prebaci u drugi oblik, i time ga ubrza, a i da nije u praksi je vaznije da se program 10% lakse odrzava nego da radi 10% brze
Potpis

So Long, and Thanks for All the Fish


Re: Sta je pametnije? 03.11.2004. u 22:32 · pre 267 meseci #3
Zar samo jedan odgovor? 1:0. Dajte malo vise :)))
Potpis
routing protocols enable routers to route routed protocols!
Re: Sta je pametnije? 04.11.2004. u 01:24 · pre 267 meseci #5
Bez negacije se takođe dobija konfirmacija, a zbog čega komplikovati program?
Potpis
Putuj planeto, super smo se družili
nama je lepo, taman kako smo zaslužili!
Re: Sta je pametnije? 04.11.2004. u 01:27 · pre 267 meseci #6
Najverovatno zbog jednacenje rezultata
Potpis
routing protocols enable routers to route routed protocols!
Re: Sta je pametnije? 04.11.2004. u 05:44 · pre 267 meseci #7
Izracunaj $Odgovor
AND AL,AL
JE izracunaj drugi odgovor ili JNE izracunaj drugi odgovor
Izracunaj odgovor
JMP dalje
Izracunaj drugi odgovor
dalje


Trebalo bi da brze radi ako je odgovor netacan(ako skace na else) jer izbegava JMP dalje.

Mislim da ovo nije toliko bitno koliko je bitno da li se izracunava ceo $Odgovor, posto ako se on ne izracunava u celosti, trebalo bi da se pazi na komponovanje logickih operatora unutar izraza tj. da se kompajleru pomogne da sto brze dodje do tih 99% netacnih odgovora.
Re: Sta je pametnije? 04.11.2004. u 08:05 · pre 267 meseci #8
Pravilno je pisati tako da if blok bude veći od else bloka. Ako su otprilike jednaki, pretpostavljam da važi Jogijevo pravilo čitljivosti.

Ispravka samog sebe.

Sad sam pogledao Code Complete, pravilno je sledeće: u if blok pisati kood koji bi trebalo da bude normalan (dominantan) tok izvršavanja programa, a u else alternativni (koji odgovara grešci ili izuzetku).
Re: Sta je pametnije? 04.11.2004. u 17:58 · pre 267 meseci #9
Citat:
jablan:
Pravilno je pisati tako da if blok bude veći od else bloka. Ako su otprilike jednaki, pretpostavljam da važi Jogijevo pravilo čitljivosti.


pravilno? po kom pravilu? čijem?

ili još bitnije, po kojoj logici?

Citat:
Sad sam pogledao Code Complete, pravilno je sledeće: u if blok pisati kood koji bi trebalo da bude normalan (dominantan) tok izvršavanja programa, a u else alternativni (koji odgovara grešci ili izuzetku).


ovo već ima smisla.. ;)

mada, moram da priznam da ponekad više volim, ako su npr prosleđeni parametri loši, da što pre izađem iz funkcije.. znači nešto tipa:

Code:
if (param1==null) return false;

što naravno nije sasvim po PS (pravilima službe), ali je IMHO često preglednije..


[Ovu poruku je menjao -zombie- dana 04.11.2004. u 19:07 GMT+1]
Potpis
blogče :: unescaped beta
  »
go-paste extenzija
  »
reč dana: backup
  »
bočne koalicije
Re: Sta je pametnije? 04.11.2004. u 18:05 · pre 267 meseci #10
Citat:
-zombie-:
mada, moram da priznam da ponekad više volim, ako su npr prosleđeni parametri loši, da što pre izađem iz funkcije.. znači nešto tipa:
Code:
if (param1==null) return false;

što naravno nije sasvim po PS (pravilima službe), ali je IMHO često preglednije..


Zasto nije po PS? Ja to redovno koristim, upravo radi citkosti, i upravo kod prosledjivanja parametara. Da li ima neko pravilo za takve slucajeve?

ss.
Potpis
When something is hard to do, then it's not worth doing.
Re: Sta je pametnije? 05.11.2004. u 08:18 · pre 267 meseci #11
Citat:
-zombie-: pravilno? po kom pravilu? čijem?

Već sam se ispravio. Mada, u većini slučajeva veći blok je u isto vreme i glavni blok. A bez zezanja sam čuo negde, mada ne mora da znači da je izvor bio kredibilan.
Citat:
sasas: Zasto nije po PS? Ja to redovno koristim, upravo radi citkosti, i upravo kod prosledjivanja parametara.

Zombie verovatno misli da na to da se time narušava načélo strukturnog programiranja da blok ima tačno jedan početak i tačno jedan kraj (naspram nekad ozloglašenom špageti bejzik stilu).

BTW, momci, jel iz nekog posebnog razloga ne koristite
Code:
if (param == null) throw new ArgumentException()
;)
Re: Sta je pametnije? 05.11.2004. u 23:08 · pre 267 meseci #12
Citat:
sojic: Zar samo jedan odgovor? 1:0. Dajte malo vise :)))


Ja bih koristio prvu varijantu. Mislim da nikada nisam koristio drugu iako po knjigama koje sam citao (za C++,C#,Java,) cesce sam sretao drugu varijantu. Mozda ja malo "missing the point" ali ne vidim prednost drugog nacina.


Poz.
Potpis
"If you do what you always did! - You will get what you always got!"
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme