Hirdetés

Új hozzászólás Aktív témák

  • Jim-Y
    veterán

    Azt írtad, hogy
    return "You're getting plenty of sleep! Maybe even too much!";
    a
    return "You're getting plenty of sleep! Maybe even too much!";
    helyett, szóval sztem annyi a para, hogy beleraktál csomó szóközt a stringbe.

    Szerk.:
    (#4668) Jim-Y:
    Mármint már önmagában az az anti-pattern, hogy több return is van a függvényben? Sokszor ezek az úgynevezett nagy patternek, illetve anti-patternek szimplán bullshitek. :D Ez egy jó hülye kitaláció, hogy nem lehet több return egy függvényen/metóduson belül.
    Lehet simán olyan függvény/metódus, amiben tök szépen lerövidíti a kódot, hogy egy bizonyos feltétel teljesülése esetén azonnal visszatérsz, és még csak nem is írsz else-ágat, mert nyilván ha nem tért vissza, akkor az else-ágnak minősül (és ez most nem valami alacsonyszintű kód ugye, nem b@szakszunk ilyenekkel), és így megspórolsz egy hatalmas nagy beljebbtolt else-blokkot.

    Példa pszeudokóddal:
    function bullshit(){
    if(foo) {
    stuff = false;
    }
    else {
    ....
    ....
    ....
    ....
    ....
    ....
    stuff = true;
    }
    return stuff;
    }

    VAGY:

    function bullshit(){
    if(foo) {
    return false;
    }

    ....
    ....
    ....
    ....
    ....
    ....
    return true;
    }

    A szekesztésedre: kicsit szerencsétlen a példád, mert ez így stilisztikailag sem szerencsés, de csak a boolean-ek miatt. Belémverték, hogy ha ilyet írnék le, hogy

    if (smtg) {
    return true;
    } else {
    return false;
    }

    Az szentségtörés :D Helyette:

    return smtg;

    vagy

    return !!smtg;

    vagy

    return Boolean(smtg);

    vagy bármi, csak ne a felső :) DRY ugyebár..

    Egy jobb példa, amire te is gondoltál, lehetne a node style programming. Ahol a callbackek mindig function(err, result) alakúak.

    Például egy mongodb query method nagyszerű példa erre (pszeudo):

    function queryUsers(res, req, next) {
    Users.findAll({}, function(err, users) {
    if (err) {
    return next(new InternalError('..'));
    }
    res.send(users);
    });
    }

    Amúgy szerintem ugyanúgy gondoljuk a dolgokat, szóval ez inkább chit-chat, mint veszekedés. :)

Új hozzászólás Aktív témák