Hirdetés
Kétségtelen, hogy a programozás nehéz. Ez egy dolog nyelveket tanulni és tanulj algoritmusok, de egy egész másik vadállat próbál egy komplex működő alkalmazást kódolni, ami nem teszi szükségessé a szeme kinyomtatását.
Bizonyos értelemben a tiszta kód írása hasonló a rajzhoz, a főzéshez vagy a fényképezéshez - könnyebben néz ki, mint valójában. Miért zavarja? Nos, mert az előnyök megérik:
- A problémák könnyebben megoldhatók. Amint tiszta kóddal kezd el gondolkodni, megváltozik a problémamegoldó megközelítés. A brutális erőszakos megoldások helyett az algoritmusok és a szoftvertervezés elegánsabbá és szándékosabbá válik.
- Kevesebb idő vesztegeti a karbantartást. A tiszta kód könnyebben olvasható és érthető, így kevesebb időt töltenek arra, hogy kitalálják, hogy az egyes szegmensek mit csinálnak, és több időt fordítanak a rögzítésre, átdolgozásra, kiterjesztésre stb.
- Az ötletek világosabbá válnak. Ha más programozókkal dolgozik, a tiszta kód csökkenti a félreértések valószínűségét köztetek, ami hosszú távon kevesebb hibát is jelent.
Így kezdheti el tiszta kód írását.
1. Használjon leíró neveket
Mik a változók, osztályok és függvények? Számos módszerrel válaszolhatunk erre, de ha erre gondolsz, ezek a dolgok nem más, mint a programozó és az alkalmazás mögöttes logikája közötti felület.
Tehát ha nem egyértelmű és nem leíró neveket használ a változók, osztályok és függvények számára, lényegében eltakarítja az alkalmazás logikáját minden programozótól, aki elolvassa a kódot, beleértve magad is.
„Nem vagyok nagyszerű programozó; Csak jó programozó vagyok, nagy szokásokkal. "
- Kent Beck
Mit nevez egy változó? DXY
valójában érted? Ki tudja. Valószínűleg el kellett olvasnia a teljes kódrészt, hogy megváltoztassa annak jelentését. Másrészt a változó jelentése, mint például distanceBetweenXY
azonnal felismerhető.
Ugyanez vonatkozik az osztályokra és a funkciókra. Ne állj meg CalcTan ()
amikor mehet CalculateTangent ()
vagy CalcTangentAngle ()
helyette.
2. Adja meg az egyes osztályokat / funkciókat egy célnak
Előfordult már valaha egy olyan funkción belül, amely száz vagy akár több ezer sornyi hosszú volt? Ha van, akkor tudja, hogy mekkora a fájdalom a böngészés, megértés és szerkesztés. A megjegyzések csak korlátozott mértékben segíthetnek.
„A programozás egy nagy lehetetlen feladatot apró lehetséges kis feladatokra bont.
- Jazzwant
A tiszta kódot atomdarabokra bontják. Minden funkciónak egyetlen dologra kell törekednie, és minden osztálynak egy adott koncepció ábrázolására kell törekednie. Ez természetesen egyszerűsítés, de ha kétségei vannak, az egyszerűbb, tisztább.
A gyakorlatban egy komplex számítás, mint például GetCreditScore ()
lehet, hogy több segítő funkcióra kell bontani, például GetCreditReports ()
, ApplyCreditHistoryAge ()
és FilterOutstandingMarks ()
.
3. Törölje a szükségtelen kódot
Ez a rossz szokás az, amellyel időnként küzdök. Általában így történik: javítani vagy optimalizálni szeretnék egy kódrészletet, ezért kommentálom, és újraírom közvetlenül alatta - és annak ellenére, hogy működik, mindenképpen ott tartom a régi kódot.
"Lehetséges, hogy a szoftver nem olyan, mint bármi más, hogy azt el akarják dobni: hogy az lényeg az, hogy mindig szappanbuboréknak tekintsük?"
- Alan J. Perlis
Az idő múlásával egy csomó megjegyzés nélküli kódblokkot halmozok fel, amelyekre már nincs szükség, de mégsem zavarom a forrásfájlokat. És a vicces dolog az, hogy sok esetben a környező kód kifejlődött, így a kommentált kód akkor sem működne, ha visszaállítanák.
A helyzet az, hogy a „biztonsági kód” megjegyzésének ezt a gyakorlatát a forrásvezérlés elavította. Ha nem olyanokat használ, mint a Git vagy a Mercurial, akkor ezt meg kell tennie azonnal kezdje el használni a forrásvezérlést. Tisztább kód vár rád.
Ne feledje, az is fontos, hogy elkerülje az ismétlődő kód írását, amelyet egyszerűen el lehet végezni egy webes kerettel. Itt van néhány webes keretek, amelyeket érdemes fejlesztőként tanulni 5 webes keret, amelyet érdemes megtanulni a fejlesztők számáraSzeretne fejlett webes fejlesztéseket tanulni? Ehelyett kerülje az ismétlődő kódhasználat ezeket a webes fejlesztési kereteket. Olvass tovább .
4. Olvashatóság> Okosság
Túl sok programozó keveri össze a „tiszta kódot” az „okos kóddal”, mintha a tíz sor összeolvadása valamivel tisztább. Persze, kevesebb helyet foglal el a képernyőn, de valójában könnyebb megérteni? Néha talán. De legtöbbször? Nem.
„Mindenki tudja, hogy a hibakeresés kétszer olyan nehéz, mint a program írása. Tehát ha olyan okos vagy, mint amilyen lehet, amikor megírja, hogyan fogja valaha is megkeresni? "
- Brian W. Kernighan
Úgy gondolom, hogy a programozók szeretik az okos kódot, mert úgy oldódik, mint egy rejtvény vagy rejtvény. Megtaláltak egy különleges és egyedülálló módszert valami megvalósítására - egy "parancsikont", ha akarsz -, és szinte a programozó képességeinek igazolására szolgál.
De ahhoz, hogy tiszta kódot írjon, hagyja el az egoját az ajtónál.
Mindig optimalizálja a kódot a következő személy számára, aki elolvassa, mert minden valószínűség szerint a következő személy lesz valójában te leszel, és nincs semmi szégyenteljesebb, mint ha nem tudja elolvasni vagy megérteni a sajátját okosság.
5. Tartsa be a következetes kódolási stílust
Nekem van semmi sem ellenzi a jó programozási útmutatásokat Mi teszi a jó programozási útmutatót?Nem minden programozási útmutatót teszünk egyenlővé. Néhány haszna az Ön számára, mások pedig pazarolja az idejét. Íme, mit kell keresnie egy minőségi programozási útmutatóban. Olvass tovább , de az egyik hátránya, hogy az újszülöttek sokféle, egymásnak ellentmondó szokást választanak, különös tekintettel a kódolási stílusra.
Nem azért vagyok itt, hogy kijelentsem, hogy az egyik stílus jobb, mint a másik. Ha szeretné, hogy a saját vonalukon fogszabályozó legyen, akkor keresse meg. Ha előbb szeretné megelőzni a módszerhívásokat szóközökkel, rendben. Ha inkább a füleket, mint a szóközöket részesíti előnyben, ne engedje, hogy ellenkező módon meggyőzzem.
De bármit is csinálsz, maradj következetes!
A szép jobb, mint a csúnya.
Az explicit kifejezés jobb, mint az implicit.
Az egyszerű jobb, mint a bonyolult.
A komplex jobb, mint a bonyolult.
A lakás jobb, mint a beágyazott.
A ritka jobb, mint a sűrű.
Az olvashatóság számít.
- Tim Peters, A Python zenje
Ha használni fogod camelCaseNaming
a változók esetében ne hamisítsa azt underscore_naming
. Ha használsz GetThisObject ()
egy helyen ne menj vele FetchThatObject ()
valahol máshol. És ha a füleket és a szóközöket keveri, akkor érdemes megvenni a billentyűzetet.
Döntse el, mit fog csinálni a kezdetektől fogva, és ragaszkodjon hozzá át és át. Néhány nyelv, például a Python és a C # rendelkezik nyelvi stílusú útmutatóval, amelyet érdemes követni.
6. Válassza ki a megfelelő architektúrát
Sokféle paradigma és architektúra létezik, amelyek felhasználhatók a projektek készítésére. Vegye figyelembe, hogy ez a tipp a jobb az egyik az Ön igényeinek, nem pedig a legjobb egy odakint. Itt nincs "legjobb".
"Követelmények és tervezés nélkül a programozás a hibák üres szövegfájlba történő hozzáadásának művészete."
- Louis Srygley
Például a Model-View-Controller (MVC) minta jelenleg nagyon népszerű a webfejlesztésben, mivel segít a kód szervezésében és megtervezésében oly módon, hogy minimalizálja a karbantartási erőfeszítéseket.
Hasonlóképpen, az Entity-Component-System (ECS) mintázat jelenleg nagyon népszerű a játékfejlesztésben, mert az elősegíti a játék adatainak és a logika modulálását oly módon, hogy megkönnyítse a karbantartást, mindeközben előállítva a könnyebb kódot is olvas.
7. Tanulja meg a nyelv kifejezéseit
A nehézségek egyike új programozási nyelv elsajátítása 7 Hasznos trükkök az új programozási nyelv elsajátításáhozRendben, hogy elkönnyebbül, amikor kódolni tanul. Valószínűleg elfelejti a dolgokat, amint megtanulja őket. Ezek a tippek segítenek az új információk jobb megőrzésében. Olvass tovább azon árnyalatok megtanulása, amelyek elválasztják az összes többi nyelvektől. Ezek az árnyalatok lehetnek a különbség a csúnya, spirálkód és a szép, könnyen karbantartható kód között.
Fontolja meg a Python, a Java és a JavaScriptet. Mindegyik rendkívül különbözik egymástól olyan mértékben, hogy megkövetelik a eltérő gondolkodásmód attól függően, hogy melyik nyelvet választja.
"Az a nyelv, amely nem befolyásolja a programozási gondolkodásmódot, nem érdemes megismerni."
- Alan J. Perlis
Míg a Python a kompakt kód és a kacsa gépelésével foglalkozik, addig a Java inkább az átláthatóság és a nyilvánosság szemszögéből áll. Minden nyelvnek vannak idiómái (például a Python listájának megértése), amelyek ösztönzik a kódolás bizonyos módját. Jó lenne, ha megtanulnád őket.
Vannak olyan aggályok is, amelyek miatt aggódni kell, amelyek lényegében nem optimális tervezési minták, amelyek eredménytelen, megbízhatatlan vagy egyébként rossz kódot eredményeznek. Tanulmányozza és távolítsa el az ön által választott nyelvhez kapcsolódó összes anti-mintázatot.
8. Tanulmányozza a Mester Kódexét
Ha tiszta kódot szeretne írni, akkor a legjobb dolog, amit megtehetsz, ha megnézed, hogy néz ki a tiszta kód, és próbáld meg értsd meg, miért van így - és erre nincs jobb mód, mint a (z) forrásfájljainak tanulmányozásával ipari mesterek.
Nyilvánvaló, hogy nemcsak beugrani a Microsoft központjába és megnézheti a projektjeiket, de mindig megteheti böngészhet a jól ismert nyílt forrású projektek között A nyílt forráskódú alkalmazás forráskódjának megtekintése és szerkesztéseBár a nyílt forráskódú program használata jó választás lehet, a megfelelő közösségbe is befektetnie kell. A GitHub az egyik legjobb hely erre, nemcsak a puszta mennyiség miatt ... Olvass tovább . Nem tudod hol kezdjem? Próbálja ki a bemutatott projektek a Githubon.
„Bármely bolond írhat olyan kódot, amelyet a számítógép megért. A jó programozók olyan kódot írnak, amelyet az emberek megérthetnek. ”
- Martin Fowler, Refaktorálás: A létező kódex kialakításának javítása
Végül is ez az egyik oka miért léteznek nyílt forrású projektek? Miért járulnak hozzá az emberek az Open Source projektekhez?A nyílt forráskódú fejlesztés a szoftver jövője. Nagyon jó a felhasználók számára, mivel a nyílt forráskódú szoftverek általában ingyenesen elérhetők és gyakran biztonságosabbak is. De mi kényszeríti a fejlesztőket, hogy ingyenesen adjanak be kódot? Olvass tovább : így mások tanulhatnak tőlük. És ha úgy dönt, hogy hozzájárul egy ilyen projekthez, felgyorsíthatja a tanulási folyamatot 5 Projektötletek a programozás gyorsabb megtanulásáhozA programozás tanulási görbéjének megkönnyítésére van néhány módszer. Piszkosítsa kezét, és tanuljon gyorsabban a mellékprojektekkel, amelyek bármikor elindulhatnak. Játssz körül ezekkel az ötvel. Olvass tovább .
Személy szerint a legelső alkalommal, amikor valóban tiszta kódot láttam, az volt, amikor egy bizonyos hobbivezető nyílt forráskódú Python projektjére botlottam. A kód annyira meglepően elegáns volt, hogy szinte abbahagytam a programozást, de végül sokat tanított.
9. Írj jó megjegyzéseket
„Jó megjegyzések írása” a programozás világának legrégebbi tanácsa. Valójában, amint az újszülöttek bevezetésre kerülnek a megjegyzésekbe, ösztönzik őket arra, hogy a lehető leggyakrabban kommentálják őket.
De szinte úgy érzi, hogy túl messzire haladtunk az ellenkező irányba. Különösen az újszülöttek hajlamosak túl kommentálni - olyan dolgokat írnak le, amelyeket nem kell leírni, és hiányzik annak a pontja, hogy mi a „jó megjegyzés”.
"Mindig kódolj, ha az a srác, aki végül megőrzi az ön kódját, erőszakos pszichopata lesz, aki tudja, hol lakik."
- John Woods
Íme egy jó hüvelykujjszabály: megjegyzések léteznek annak magyarázatára, hogy MIÉRT létezik egy kódrész, nem pedig, hogy mi a kód. Ha a kód elég tisztán van megírva, akkor magának kell magyaráznia, hogy mit csinál - a megjegyzésnek meg kell világítania azt a szándékot, amiért azt írta.
A megjegyzések hasznosak lehetnek a figyelmeztetéseknél (azaz „ezek eltávolításával az A, B és C eltörik”), de a legtöbb fedezze fel azokat a dolgokat, amelyeket nem lehet azonnal megtisztítani a kódból (azaz „használja ezt a paramétert, mert X, Y és Z”).
10. Refaktor, Refaktor, Refaktor
Csakúgy, mint a szerkesztés az írási folyamat része, az újraprogramozás a kódolási folyamat része. A refaktúra iránti vonzódás a leggyorsabb módszer a nem tarthatatlan kód elkészítéséhez, tehát sok szempontból ez a legfontosabb tipp, amelyet figyelembe kell venni.
Röviden: a refaktorálás csak egy képzeletbeli kifejezés a kód tisztításához, anélkül, hogy befolyásolná a kód tényleges viselkedését.
"Ha arra gondolok, hogy megértsem, mit csinál a kód, akkor azt kérdezem magamtól, hogy tudom-e újraírni a kódot, hogy ez a megértés azonnal nyilvánvalóvá váljon."
- Martin Fowler, Refaktorálás: A létező kódex kialakításának javítása
Az egyik bölcsesség, amely ragadt nekem, a mondás: „Ne kommentálj rossz kódot. Írja újra. Amint Fowler kifejti a fenti idézetet, ha a kód valaha elég zavarosnak érzi magát, hogy meg kell kommentálnia, akkor valószínűleg újra kell reagálnia.
Továbbá, ahogy a kód biteit itt és ott szerkeszti a projekt során, mindig hagyja a kódot jobb állapotban, mint amikor először találta. Pillanatnyilag kellemetlennek tűnhet, de hosszú távon kifizetődik (és még a mentális kiégést is megakadályozhatja A kiégés programozása: Hogyan lehet visszatérni az elveszített motivációhozA kódsor mindegyikének írása fizikailag és érzelmileg is elvezethet. Csak annyit kell tennie, hogy visszatérjen az a tudatosság, hogy a motiváció visszanyerhető. Olvass tovább ).
Mindig van valami újat megtanulni
Az a programozó, aki megtanulja, hogyan kell tiszta kódot írni, hasonlít egy írónak, aki megtanulja tiszta próza írását: önmagában nincs helyes módszer, de rengeteg rossz módszer van rá, és évekbe telik, hogy fő.
Néhány embernek nincs meg mi ahhoz szükséges végül abbahagyja a programozást 6 Jelek arra, hogy nem akarsz programozó lenniNem mindenki készül arra, hogy programozó legyen. Ha nem biztos abban, hogy programozónak szántad, íme néhány jel, amely a helyes irányba mutathat. Olvass tovább - és ez rendben van, mert rengeteg van egyéb olyan műszaki munkák, amelyek nem tartalmazzák a kódolást A kódolás nem mindenki számára elérhető: 9 technikai munka, amelyek nélkül megszerezhetőNe légy lelkesebben, ha a tech terület részévé válik. Rengeteg munka található az emberek számára kódolási ismeretek nélkül! Olvass tovább . De mindenki más számára a tiszta kód olyasmi, amelyre feltétlenül érdemes törekedni, még akkor is, ha az életed hátralévő részének eljutása ideje eljut.
Joel Lee B.S. számítástechnikában és több mint hat éves szakmai írói tapasztalat. A MakeUseOf főszerkesztője.