Hogyan írjunk egy függvény verem túlcsordulás az orosz

Most olvastam a könyvet: „Clean Code”, és ezért úgy döntött, hogy ellenőrizze a fejlesztő bo lshim tapasztalattal rendelkezik, mint én.

Azt mondja, hogy törekedni kell írni egyváltozós függvények (amelyek egy érv), és jobb, ha nem csinál semmit, és nem vette, így ez csak egy szép függvény nevét, olvasás után, hogy lehet ösztönösen megértette, hogy mit csinál.

De ha nem tévedek, ez ellen a szabályokat a tokozás. Megértem, hogy akkor az összes változó a függvény, hogy meghatározza, hogy a globális változók, de akkor ez a funkció szigorúan függ az osztály, hogy van. És ha valami történik, hogy helyezze át egy másik osztály lesz sokkal nehezebb.

Ideális esetben a számos érv a függvény nulla (zero-ed rendű funkció). Ezt követi a funkcióját egy argumentumot (egyváltozós) és két argumentum (bináris). Működés három érv (háromkomponensű) el kell kerülni, ha lehetséges. Szükséges funkciók bo lshim számos érv (poliarnyh) támogatnia kell nagyon magas az érvelés -, mégis olyan funkciókat el kell kerülni.

És akkor, ha olvasni egy pár oldalt, ott mélyebben le és minden jön le, hogy az a tény, hogy a funkciók ideális esetben nem érvek.

Vagy így érvelek?

Annak érdekében, hogy funkciók bemeneti paraméterek nem rossz, de óvatosnak kell lenni, hogy a megközelítés a kódot tervezés és számának minimalizálása érveket.

Nem emlékszem, ha ez tükröződik a könyvben, vagy sem, de ne az esetekben, amikor az összes (pár) függvény érvek az azonos típusú. Ez gyakran vezet a hibákat.

És mégis, a globális változók - ez rossz, meg van írva egy millió könyvet.

egyváltozós tény (vagy inkább még azt mondják atomos) funkciók és módszerek - egyike azoknak, akiknek ez szinte lehetetlen, hogy jöjjön esetek 100% -ában a gyakorlatban, de ami valójában, mindig törekedni.

Ennek lényege testület nem az a tény, hogy az összes paraméter hülye globalizációja és hogy jöjjön egy jó építészeti tervezés. Mert ha a függvény / eljárás / eljárás / akármi elfogadja meghaladó bemenő 3-5 paramétert, akkor a legtöbb esetben van egy minőségi építészet és jelzi a látszólagos különbség abban.

Tokozást. Mi a fő célja a beágyazás? - alkotnak egy jó absztrakció, hogy kölcsönhatásba lépnek, hogy meg kell tudni a végrehajtásának részleteit a lehető legkisebb (a tökéletességhez - semmi).

Hasonlítsuk össze a következő két:

Melyik a készletek, az Ön véleménye, feltárja a részleteket a végrehajtás? A helyes válasz: először, mert öl az értelemben, tokozás, mint olyat.

És ennek az az oka - a redundancia, ami annak az eredménye, számos konstruktorargumentum 1.

Következtetés: Minél kisebb a paraméter elfogad egy tárgy, annál jobb tokozás - lehetőség nyílt végrehajtásának részleteit.

A még objektív megértését tervezési elvek a funkciók / módszerek /. Azt tanácsolom, hogy nézd meg a 7. fejezet tökéletes kód „Kiváló minőségű technikákat.”

Ilyen a vágy közvetlenül következik az elvet egyetlen feltöltéssel. Eljárás jó, el kell végeznie egy, atomi lehetséges feladat. És higgye el, nagyon kevés az ilyen problémákat, ami kell, hogy végre több mint két paramétert.

Ahol több kell - érdemes gondolkodni létre egy objektumot, az összes szükséges tulajdonságokat / data és továbbadását.

Silly, kiagyalt például, de tökéletesen felfedi a lényege.

Tegyük fel, hogy meg kell növelni az értékét egy bizonyos változó eggyel.

Az első változat. Elhaladunk két paraméter funkciót, és rendelje hozzá az eredmény változó

Második lehetőség. Elhaladunk a funkció egyetlen érv, amellyel módosítani változókat.

A harmadik változat az ideális egy adott atomi feladatokat. Mi használja ezt a funkciót argumentum nélkül.

Én csak hozzá: Írja be a funkciót, így lehetőség van arra, hogy könnyen érthető, mit csinál - jó név, az első dolog, amit meg kell figyelni.

Minden funkciót egy adott feladat csak egy absztrakciós szinten - nem zavarja az alacsony szintű számítástechnikai és magas szintű kódot.

Ha át kell menni egy csomó paraméter, könnyebb, hogy egy class-érv -, hogy egy egyváltozós függvény.

Általában megpróbál egy funkció a lehető legegyszerűbb. Felhalmozódik egy csomó kód nagyon könnyen, valamint eltévedni, de csak azért, hogy megoldja a problémát sokkal nehezebb.

Gondoljunk csak a kihívásokat, amelyekkel szembe. Ha a maximális sebességet, majd a hívás kupac funkciókat egyéb funkciókat, amelyek hátrányosan befolyásolják a teljesítményt az alkalmazás, különösen a rekurzív függvények és funkciók hosszú hívás lánc.

Kapcsolódó cikkek