10 ok, amiért szükség van a kód optimalizálására
Miközben kódot írunk, folyamatosan döntéseket hozunk és olyan megoldásokat választunk, amelyek először egyenértékűnek tűnhetnek. Később ez általában kiderül egyes döntések hatékonyabb programot eredményeznek, mint mások, így természetesen felmerül a legjobb kódolási gyakorlatok és optimalizálási technikák keresése, és elkezdjük az egész fejlesztési folyamatot optimalizálási problémaként kell megoldani.
Annak ellenére, hogy az optimalizálási problémák nem az egyetlen, a fejlesztők rendszeresen foglalkoznak, például döntéshozatali problémák és keresési problémák is vannak, az optimalizálás pedig a webfejlesztés különböző szakaszaiba tartozó feladat..
A kódoptimalizálás különböző szinteken történhet, attól függően, hogy az elvégzett optimalizálás milyen közel van a gépi kódhoz. A webfejlesztésben csak magasabb szintű optimalizálásokat hajthatunk végre, mivel az összeszerelési vagy futási szintű optimalizálás nem jelent számunkra lehetőséget, de még mindig sok lehetőségünk van.
A kódot építészeti szinten is optimalizálhatjuk intelligens tervezési minták, a forráskód szintjén a legjobb kódolási gyakorlatok felhasználásával és megfelelő eszközök használatával, és mi is javíthatjuk csapatunk teljesítményét kódolási stílus útmutatók bevezetése a munkafolyamatba.
Bármilyen technikát választunk, amivel együtt járunk, van egy hüvelykujjszabály, hogy minden kódoptimalizálási törekvésnek követnie kell: mindig kell végezze el az optimalizálást úgy, hogy ne változtassa meg a kód jelentését.
A kódoptimalizálás előnyei a projektünk növekedésével összhangban nőnek, és mint akár kezdetben a kis projektek is nagyok lehetnek, a szilárd kód optimalizálási készségek megszerzése szinte mindig mérhető pozitív eredményekkel bír.
1. Tisztább kódbázis
Mint egy projekt érlelődik, és egyre több fejlesztő kezd el dolgozni rajta, az átfedések és átfedések általában előbb-utóbb megjelennek, és hirtelen rájöttünk, hogy alig értjük, mi folyik itt.
Nem véletlen, hogy a DRY (Ne ismételje meg magad) elvét szem előtt tartva a hatékony szoftverfejlesztés egyik sarokköve. Egy jól megtervezett, gondosan optimalizált kódbázis, amelyre képesek vagyunk ugyanazt az elemet többször használják fel mindig sima és rendesebb, ezért sokkal könnyebb megérteni és dolgozni.
2. Magasabb konzisztencia
A következetesség olyan, mint a házimunka, amikor megfelelően gondoskodik róla, hogy senki ne vegye észre, de amikor elhanyagolják, az egész hely rendetlen, és káoszban találjuk magunkat.
A teljes konzisztencia megvalósítása nehéz, mint a visszafelé kompatibilitás biztosítása végső soron javulást eredményezhet, de figyelni koherens kód irányelvek, kompatibilis API-k és következetes szabványok alkalmazásával biztosan csökkenti a fájdalmat.
A kód következetességének szem előtt tartása különösen fontos amikor a régi kóddal kell foglalkoznunk, vagy nagyobb projektek esetében sok fejlesztő bevonása.
3. Gyorsabb oldalak
A kód optimalizálása hasonló a gyorsabb autó vásárlásához. Ennek eredményeként a kódunk gyorsabban hajt végre, és honlapunk vagy alkalmazásunk kevesebb memóriát fogyaszt mint előtte. Bár az optimalizálási folyamat további időt és pénzt igényelhet, az eredmény a jobb tapasztalat, nem csak a fejlesztők, hanem a végfelhasználók számára is.
Gyorsabb kód rövidebb oldal betöltési idő a keresőoptimalizálás és a konverziós marketing mindkét világában egy nagy üzlet. A kutatás azt mondja “a webes felhasználók közel fele elvárja, hogy a webhely 2 másodpercen belül vagy kevesebbet töltsön be, és hajlamosak elhagyni egy olyan webhelyet, amelyet nem töltenek be 3 másodpercen belül”, így a sebesség nyilvánvalóan nem olyan terület, amelyet biztonságosan figyelmen kívül hagyhatunk.
4. Jobb kód olvashatóság
Az olvashatóság fontos szempont a kódkarbantartás szempontjából. Az ad hoc formázással nem rendelkező kódot nehéz olvasni, ezért nehéz megérteni, különösen a fejlesztők számára, akik új projektek.
Megvédhetjük magunkat a nem titkosítható kód kezelésének fájdalma ha bizonyos kódoptimalizálási technikákat alkalmazunk, például:
- koherens elnevezési megállapodásokat használva értelmes nevekkel, mint például a BEM
- következetes formázás a bemélyedés, a tér és a függőleges távolság logikus kihasználásával
- a szükségtelen zaj elkerülése, mint például az önmagyarázó, nyilvánvaló megjegyzések
Ez az oka annak, hogy a nagy projektek, mint például a WordPress, a jQuery és a Mootools, egyértelmű kódolási stílus útmutatókkal rendelkeznek..
5. Hatékonyabb refactoring
Gyakran előfordul, hogy a webfejlesztés során valaki másról örököljük a kódot, és gyorsan megértjük, hogy ez az távolról sem optimális, függetlenül attól, hogy szerkezet, teljesítmény vagy karbantarthatóság. Ugyanez történhet saját korábbi korábbi projektjeinkkel is, amikor a programozás során sokkal kevesebb tapasztalattal rendelkezünk.
Más esetekben az egyébként nagy projektek időbeli változásai, és meg kell prioritásként kezelje az alkalmazásban lévő egyéb dolgokat mint előtte.
A refaktorálásról beszélünk, amikor mi módosítsa (megtisztítja) a meglévő kódot annak optimalizálása érdekében anélkül, hogy bármilyen funkcióját megváltoztatná. A refakciót nagyon óvatosan kell végrehajtani, mintha rosszul tennénk, akkor könnyen el lehet érni egy olyan kódbázist, amely még kevésbé optimális, mint az eredeti..
Szerencsére sok jól bevált technikánk van a mi kezünkben, amelyek képesek a zökkenőmentes futás folyamatát átalakítani.
6. Egyszerűbb hibakeresés
A hibakeresés jelentős része a webfejlesztési munkafolyamatnak, és ez általában egy unalmas vagy akár ijesztő feladat. Elég nehéz, ha saját kódunkat kell hibakeresni, de ez az sokkal rosszabb, ha meg kell találnunk a hibákat valaki másnál, különösen, ha valami olyan, mint a végtelen spagetti kód, amely nem más, mint a funkciókat.
Intelligens tervezés és építészeti minták, mint például objektumok használata és különböző modulok, és egyértelmű kódolási irányelvek megkönnyítheti a hibakeresési folyamatot, még akkor is, ha valószínűleg még nem lesz a legkedveltebb feladatunk.
7. Továbbfejlesztett munkafolyamat
Számos webfejlesztési projektet elosztott csoportok, például nyílt forráskódú közösségek vagy távoli csapatok működtetnek. Az ilyen munkafolyamatok kezelésének egyik legnehezebb dolog az, hogy megtaláljuk a kommunikációt ahhoz, hogy elég hatékony legyen a kommunikáció lehetővé teszi, hogy a csapat tagjai könnyen megértsék egymást, és nem kell állandóan megvitatnia az alapértelmezett értékeket.
A legjobb gyakorlatokról és a stílusvezetőkről elfogadott megállapodások áthidalhatják a különböző háttérrel rendelkező emberek közötti szakadékot, nem is beszélve a tervezési és fejlesztési csapatok közötti szokásos kommunikációs nehézségekről a legtöbb webes projektben.
A kód optimalizálás is munkafolyamat-optimalizálás, mintha a csapattagok közös nyelvet beszélnének, és ugyanazokat a kijelentett célokat osztják meg, képesek lesznek együtt dolgozni anélkül, hogy sokkal kevésbé kellenek.
8. Könnyebb kódkarbantartás
Bár a földről felépítés általában inkább szórakoztató, mint a már meglévő kód fenntartása, néha még mindig folyamatos kódkarbantartást kell végezni. A már meglévő rendszerekkel való munka új nézeteket is adhat a kódoptimalizáláshoz, mivel ez egy másik projektben más tapasztalat, mint a korai optimalizálás.
A szoftverek karbantartásában már olyan stádiumban vagyunk, ahol valódi teljesítmény- és hatékonysági problémákat tudunk leküzdeni, és a hipotetikus használat helyett valós felhasználókkal dolgozunk..
A kódkarbantartás rendszerint kevés tiszteletet kap a fejlesztői körökben, de még mindig előnyös feladat lehet, ha a legjobb gyakorlatokat követjük, például a megbízható verzióellenőrzés, függőségkezelés, stádium és tesztelési platformok, és megfelelően vigyázzon a dokumentációra.
9. Gyorsabb funkciófejlesztés
Állandó innováció az a lényege, hogy a területünkön maradjon releváns, mintha nem láttunk volna valami újat a felhasználóinknak egy idő múlva, és gyorsan elhagyhatjuk. A projekt kiterjesztése és új funkciók hozzáadása általában sokkal gyorsabb, ha jól optimalizált, tiszta kódbázissal dolgozunk.
A már tárgyalt kódoptimalizálási módokon kívül a funkció fejlesztése is lendületet adhat, ha lépést tartunk modern projektmenedzsment módszerek, például, ha a hagyományos vízesésmodell helyett iteratív életciklus-modelleket használunk.
10. Kisebb technikai adósság
A "technikai adósság" kifejezést Ward Cunningham, a programozó, aki az első wikit is kifejlesztette. Összehasonlítja a rossz programozási döntéseink következményeit, amelyek az idő múlásával felhalmozódnak a pénzügyi adósságokra, amelyekben az emberek fizetnek kamatot a jövőben annak érdekében, hogy gyorsan kapjanak pénzt a jelenben.
Ezek a kevésbé optimális döntések általában gyorsjavítások, másolás és beillesztés formájában jelentkeznek, kemény kódolás, rakomány-kultúra programozás és más kódoló antipatternák és hanyag munkamódszerek.
Ez alapvetően lehetetlen teljesen elkerülni a technikai adósságot, mivel a jó döntések még kevésbé kívánatos következményekkel járhatnak a jövőben, de ha szorgalmasan optimalizáljuk kódunkat, akkor biztosan leszünk sokkal kisebb technikai adóssággal terhelt.