Ned batchelder kód eltávolítása
Van egy csomó információt, hogyan kell írni a forráskódot a programok. Ebben a szövegben találsz néhány tippet, hogyan lehet eltávolítani.
Ez a módszer nyilvánvalónak tűnhet, de azt hiszem, ez nem így van, mert a fejlesztők által használt számos más módon is csinálni. Itt van, hogy törölje a forráskód:
A legtöbb fejlesztő nem szeretnék megtenni. Azt inkább hagyjuk darab a régi kód körül, csak abban az esetben - hirtelen kell újra. Dolgoztak hosszú és kemény írni a kódot. Ők hibamentesített, és ez működött. És mert a fejlesztők nem akarnak csak felvenni és dobja el a régi kódot.
Tehát azt mondom, hogy a fejlesztők: „A forrás (kontroll), Luke” [1]. Használata verziókezelő rendszerek (például CVS. Perforce. Vagy Subversion), ez azt jelenti, hogy soha nem kell aggódnia, hogy egyszer is munkát lehet örökre eltűnnek. Minden a régi kódot lesz a CVS, kész újra használható az első kérésre.
Ha nincs verziókezelő rendszer (.), Vagy egyszerűen csak nem kívánnak ásni a régi változathoz, másolja egy darab a kódot egy külön fájlban, és mentse el külön helyet. De ne hagyja, ha ez nem az a hely - a forráskódban.
Ha van egy darab kódot, hogy már nincs szüksége, akkor van egy jó ok arra, hogy igazán eltávolítani, hanem marad a nyitott pozíció: annak érdekében, hogy csökkentsék zavart és bizonytalanságot. Az egyik legrosszabb ellenségei a fejlesztő zavartság vagy idegen helyen a kód, mert zavarja, és csökkenti a hatékonyságát nyomon követési munka.
Vágja le a kódrészlet közvetlenül bizonytalanságot okoz. A fejében más fejlesztők, ő kérdéseket vet fel:
- Miért használják egy másik változata a kódot?
- Az új megvalósítás jobb?
- Amennyiben ismét visszamenni a régi verzió?
- Bizonyos esetekben meg kell tennie?
// OldWayStepOne (fooey);
// OldWayStepTwo (ragacsos);
Newway (fooey, ragacsos);
Jövő fejlesztők nézi a kódot, láthatjuk, hogy egykor a régi verzió OldWay, amikor azt látják, hogy most fut egy új változata newway, de nem tudom, miért a régi verzió OldWay balra közelében:
- Talán egy új változata newway csak egy kísérlet? Ha igen, akkor ő jobb, mint a régi? Hogyan és mikor kell a végleges döntés: hogy elhagyja őt, vagy hogy visszatérjen a régi?
- Talán a régi verzió jobb, de vele, hogy valami nem működik? Ha igen, mi a baj? És ennek az oka abban rejlik, hogy a neponyatok OldWay kódot, vagy hogy ez a kód neve? Amikor ezek neponyatki megszűnik?
- Talán, a projekt megváltozott, és a régi változat OldWay végez felesleges munka?
Hát nem jobb erre?:
// OldWay jobban sikerült, de túl hatékony, és ameddig
// nem kerül feldolgozásra MumbleFrabbitz fogjuk használni
// newway lépéssel M4.
// OldWayStepOne (fooey);
// OldWayStepTwo (ragacsos);
Newway (fooey, ragacsos);
Ki lehet mondani, ma vajon tényleg átalakították MumbleFrabbitz lépéssel M4? Lehet, hogy nem. Ez normális; ki tudja, mit hoz a jövő számunkra? Legalábbis ez az opció segít a fejlesztőknek, hogy megértsük, miért a régi kódot bal oldalán. Miután az információ, hogy miért a változás, és miért a régi kód van még hátra van, a fejlesztők képesek lesznek megérteni, ha azok végül megy az új verzió newway, vagy mikor lesz képes visszatérni egy jobb megoldást.
#if 0
OldWayStepOne (fooey);
.
OldWayStepTwenty (pfuj);
#endif
A Python nyelv:
ha 0:
OldWayStepOne (fooey)
.
OldWayStepTwenty (pfuj)
Ne húzza ki a kódot a feltételes fordítási direktívák, anélkül hogy megmagyarázná, hogy miért.
Ha kell használni a C előfeldolgozó hogy távolítsa el a kódot, „#ha 0” lenne a jobb választás, mert ez legalább egyértelmű, hogy ezt a kódot nem szabad összeállítani.
Forrásai között a Lotus Notes programot tartalmazott sok kódrészletek, megszakad a direktívák „#ifdef később” alapján (helyes), feltételezve, hogy az elpárologtató szimbólum „később” sehol sem határozza meg. Ez a lehetőség - egy nagyon gyenge formában a dokumentáció ez azt mutatja, hogy a kód még nem áll készen kell összeállítani, de később kerül kihirdetésre. De mikor? Között a fejlesztők ment a vicc, hogy meg kell határozni a szimbólum „később”, hogy mi történik!
Ha egy soha definiált karakterek eltávolítására a kódot, akkor hagyja a fejében a fejlesztők zavart: mi ez a szimbólum azt jelenti. Talán ezt a konfigurációs kódot, az úgynevezett „később”, és ebben az esetben ez a lehetőség is figyelembe kell venni.
Tegyük fel, hogy van egy kiváló osztályt, hogy van egy csomó módszerekkel. Egy nap rájössz, hogy egyetlen módszer sem hivatkozott. Hagyod vagy eltávolítani?
Ebben az esetben nincs egyszerű válasz erre a kérdésre, mert attól függ, az osztály és a módszer. A válasz attól függ, hogy elvárják, hogy ez a módszer lehet szükség a jövőben újra. Durva válasz lehet: ha ez az osztály a keret része, akkor hagyja, de ha ő is része az alkalmazás, akkor törölje. (Azt tervezem, hogy írjon egy külön cikket a különbség keretek és alkalmazások).
// (Régen egy másik algoritmust használnak tördeljük
// és fut gyorsan, de ő volt a probléma az időzítés. Ha ő
// van szüksége, ez a felülvizsgálat 1.16 vagy korábbi ThingMap.java fájlt CVS).
Egyszerű megállapodás ehhez hasonló:
Ön is használja ezt a megközelítést nagy része számára a kód:
#if 0 // - Azt hiszem, ez nem szükséges, ha használja FooBar
OldWayStepOne (fooey);
.
OldWayStepTwenty (pfuj);
#endif
Amikor eltávolítja a felesleges kód valószínűleg elhagyja a szellem csonk egy korábbi változata. Próbálja vezetni a lehető legnagyobb gondossággal minden rendben. Például ha törli OldWay felhívás az alábbi kódot:
Csábító, hogy hagyjuk a társ-kódot, mert nehéz megérteni e vagy sem még mindig szükség van. De ha üresen hagyja ezt a feltételes mondat, akkor valamilyen más kísérő programozó egy nap megbotlik ezt a kódot, nézd meg, és rájön, hogy valami baj van. És akkor meg kell vizsgálnia, hogy a végén. És ahhoz, hogy megértsük a célból egy üres feltételes mondat, akkor szükség van sokkal több időt, mint hogy távolítsa el azt.
Határozottan lépjen fel és távolítsa el a régi kódot. Nem fog hiányozni neki.
- Tévesen üres kód utak. Hiba programozása közben a biztonsági kódot.
- Fix hibakezelés először. arról, hogy milyen fontos az, hogy a hibakezelő mindig jól működött.
- Blogomban. amely megvitatja és más hasonló kérdések