By Jerrie Agunya & Geoffrey Matieso
Hagyd el azt a tévhitet, hogy ismerned kell a C++ nyelvet, java ezt a keretrendszert, azt a keretrendszert stb. ahhoz, hogy sikerüljön a legjobb kódolási gyakorlattal rendelkezned. Meg kell tanulnod, hogyan ne add fel. Általában a legjobb kódolási gyakorlat eléréséhez vezető út elején a dolgok nagyon nehézzé válnak, és ez tény.”
Az, hogy a kód csak kódnak tűnik annak, aki nem ért a kódoláshoz, igaz, de néhány dolog kiemelkedik egy programozó képességeinek megítélésekor. Tehát hogyan lehet azonosítani egy jó programozót, aki a legjobb kódolási készségekkel rendelkezik? A következő alcím alatt tárgyalunk és szembeállítunk néhányat.
Kódminőség
Martin Fowler mérnök és szerző mondta:
“Bármilyen bolond írhat olyan kódot, amit a számítógép megért, a jó programozó olyan kódot ír, amit az ember megért.”
A jó programozó időt fordít a kódja dokumentálására, nagy az esélye, hogy nem érti a kódját, amikor néhány hónap múlva újra megnézi. Elégedetté teszik a csapattársaikat a kódjukkal, és nem esnek kétségbe, rossz gyakorlat, hogy olyan kódot pufogtatnak ki, amit a jövőbeli karbantarthatóságot szem előtt tartva írtak. Ez alatt azt értjük, hogy a kódot nem a kódbázis növekedésére írták, és ha egy frissítést vagy egy új funkciót kell implementálni, akkor rendetlen, hibákkal teli és törött lesz.
A kód minősége fontos a skálázhatóság szempontjából, a kódnak megfelelően strukturáltnak, rendezettnek, jól dokumentáltnak és megfelelő formázással rendelkezőnek kell lennie, tesztvezéreltre kell épülnie a sebezhetőségek elkerülése érdekében.
A gyors és rendetlen kód gyors, igen! De gondoljunk csak bele, hogy a későbbiekben hány órát töltene el ennek a kódnak a hibakeresése.
Előfeltételek.
A kódolás megkezdése előtt minden szükséges előfeltételt teljesíteni kell, hogy szilárd alapot biztosítson a kódoláshoz. Ezek közé tartozik az életciklus, az architektúra, a tervezés és a programozási nyelv kiválasztása. A szoftverfejlesztési módszertan segít a projekt életciklusának strukturálásában, tervezésében és ellenőrzésében. A szoftverarchitektúra határozza meg, hogy mit kell elvégezni, és azt melyik programkomponens fogja elvégezni. Hatékonyan meghatározza a különböző programok közötti interfészt, ha a szoftverrendszer sok programot tartalmaz.
Az architektúra lehetővé teszi más érdekeltek számára is, hogy ellenőrizzék a projekt követelményeit. A szoftverfejlesztési tervezésnek elég részletesnek kell lennie ahhoz, hogy jó útmutatást nyújtson a tényleges kódoláshoz. Lehetővé teszi az építészeti tervezésben elhallgatott részletek kitöltését. A különböző programozási nyelvek a probléma különböző szempontjaira alkalmasak. A programozónak tisztában kell lennie a használt nyelv sajátos erősségeivel és gyengeségeivel. A legjobb nyelv kiválasztásához meg kell érteni a problémát és a kapcsolódó programozási követelményeket. A legjobb nyelv kiválasztása a követelmények listája alapján történik.
Tartsuk egyszerűnek a kódot.
A kódcsoportosítás lehetővé teszi néhány sornyi kód használatát, a feladatokat külön kódblokkokban tartva. Egy egyszerű dolog eléréséhez szükséges bonyolult logikát a minimumra kell szorítani, mivel a kódot a jövőben egy másik programozó módosíthatja. A kód kisebb mértékű egyszerűsítése javítja a termelékenységet, csökkenti a görgetési gesztusokat és a szem megerőltetését. Az egyes kódblokkok elejére tett megjegyzés szintén a vizuális elkülönítést hangsúlyozza.
A programozóknak a projekttől függően következetes elnevezési sémát és behúzást kell használniuk. A neveknek szóhatárokkal, azaz camelCase vagy aláhúzással kell rendelkezniük. A DRY (Don’t Repeat Yourself) elvet minden kódban fenn kell tartani, mivel a legtöbb alkalmazás ismétlődő feladatokat automatizál. A programozónak kerülnie kell a mélyen egymásba ágyazott kódokat és korlátozni kell a sorok hosszát. A kód egyszerűsége javítja az olvashatóságot.
Portability.
A programozóknak paraméterezniük kell a változókat és konfigurálniuk kell őket az alkalmazáson kívüli tárhelykörnyezethez. Ez magában foglalhat egy alkalmazáskiszolgálót vagy adatbázist. A programkód nem tartalmazhat olyan környezeti paraméterekre utaló szó szerinti értékeket, mint például abszolút fájlútvonalak, fájlnevek, felhasználónevek, hosztnevek és IP-címek. Ez nem teszi lehetővé az alkalmazás futtatását egy más kialakítású hoszton.
Újrafelhasználhatóság.
Néhány szoftverprojekt egy meglévő alapvonalból indul, amely a projektet a korábbi verziójában tartalmazza. A projekttől függően sok meglévő szoftvermodul és komponens újrafelhasználásra kerül. Ez segít csökkenteni a fejlesztési költségeket és időt, ha az összetevők már tesztelve vannak. Így nő a szoftverprojekt határidőre történő átadásának valószínűsége.
A kód hibakeresése és a hibák kijavítása.
A programozóknak meg kell írniuk a teljes kódot, és csak ezután kell elkezdeniük a hibakeresést és a hibák ellenőrzését, nem pedig a teljes programot. Ez a megközelítés időt takarít meg, mivel az ember végül nem pazarolja az idejét a hibák felkutatására.
Tesztelés.
A kódolás megkezdése előtt az alkalmazás tervezése és kódolása során megtervezik és kidolgozzák a teszteseteket. Az egyes modulok egységtesztjeit és a webszolgáltatások és alkalmazások funkcionális tesztjeit a hibakereséssel együtt alkalmazzák.
Végeredményben a legjobb kódolási gyakorlat lehetővé teszi, hogy Ön, mint fejlesztő lássa, milyen értéket tud letenni az asztalra. Különösen azt, hogy mit tudsz, amit mások nem; nem azt, hogy “olyan okos vagy, mint a többi fejlesztő”, hanem azt, hogy egyedi vagy, és kihozod magadból a benned rejlő belső technikust.