Javascriptben melyik átláthatóbb?
HA páratlan sort rajzolok ki AKKOR
x1 1-es indexet kap
x2 0-s indexet kap
VAGY (ha párost)
x1 0-s indexet kap
x2 1-es indexet kap
/// MEGOLDÁS 1: if-ekkel
if(r%2 == 1) {
x1 = tmp[1];
x2 = tmp[0];
}
else {
x1 = tmp[0];
x2 = tmp[1];
}
/// MEGOLDÁS 2: bitszintű műveletekkel
x1 = tmp[r%2];
x2 = tmp[~(r%2)&1];
Gondoltam még ezekre is:
/// MEGOLDÁS 3:
x1 = ((r%2 == 1)?tmp[1]:tmp[0]);
x2 = ((r%2 == 1)?tmp[0]:tmp[1]);
/// MEGOLDÁS 4:
x1 = (r%2);
x2 = tmp[~x1&1]; // x1 != x2
x1 = tmp[x1];
Javascriptben nem nagyon vagyok jártas nagyno, negálás is eszembe jutott még, de nem tudom JS-ben mennyire megvalósítható intnél ez a 0-1 invert. Ezért jutott eszembe a bit szint.
Melyik a legátláthatóbb szerintetek? esetleg más módon oldanátok meg?
#1:
igen, csak ugye komment nélkül is könnyen olvashatónak kellene lennie a kódnak, a bit szintet meg elsőre nem annyira olvasni sokaknak (még nekem sem, pedig használtam már sokszor)
#2:
köszi ez a megoldás átláthatóbb igen
"komment nélkül is könnyen olvashatónak kellene lennie a kódnak"
Mindenképpen előny, de azért nem elsődleges szempont a futási teljesítményhez képest. #2-es megoldása valóban jobb, de azért ne spórold ki a kommentet, pár szó el fog ott férni, meghálálja magát.
"Mindenképpen előny, de azért nem elsődleges szempont a futási teljesítményhez képest."
Az esetek 90%-ban az olvashatosag fontosabb, egyszeruen nem tudod annyira lelassitani a kodod, hogy eszreveheto legyen. Nemhiaba fejlesztenek tobb web alkalmazast python/ruby/php-ban, mint c-ben. De ha valami matekos lib-et fejlesztesz, amivel nagy adathalmazokon szamitgalnak, ott van ennek nagyobb jelentosege.
Egyebkent en ezt talalom legkonnyebben erthetonek:
x1 = isEven(r) ? 1 : 0;
x2 = isEven(r) ? 0 : 1;
Aztam isEven()-t impelementalhatod osztasi maradekkal, vagy vizsgalhatod az elso bitet &-el. A sebesseget meg majd letesztelheted a te kododban...
Meg erre a csacsisagra reagalnek:
"de azért ne spórold ki a kommentet, pár szó el fog ott férni, meghálálja magát"
Az a gond a kommentekkel, hogy gyakorlatilag duplikalnak informaciot. Ha atirod a kodot, a kommentet is frissiteni kell, ez sokszor elmarad es akkor csak felesleges zaj lesz. Par evnyi fejlesztosdi utan megtanulod, hogy atugord a kommenteket es a kodot nezd. Arra kell torekedni, hogy a valtozok/fuggvenyek nevei beszedesek legyenek, onmagukat dokumentaljak.
általában blokkoknál és if-eknél írok kommentet
esetleg függvényhez
szoktam kommentezni, sőt elég gyakran és szeretem is
de attól még fontos, hogy akár komment nélkül is elég jól olvasható legyen a kódom
ez a dolog performanciában elhanyagolható SZINTE! viszont ahol ezt alkalmazom ott is van kurzor mozgatásra lefutó függvény ahol azért jó ha az ember figyel arra mennyire is terhel
jobb szeretem pl a ritkán vagy eseményre változó adatokat előre számoltatni és nem gyakran (főleg nem ms-enként)
főleg játékfejlesztésnél érzékelem azt, hogy a performancia elengedhetetlen
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!