10 motive pentru care aveți nevoie de optimizarea codului
În timp ce scriem cod, luăm în permanență decizii și alegem între soluții care pot părea echivalente la început. Mai târziu, de obicei se dovedește acest lucru unele alegeri au ca rezultat un program mai eficient decât altele, astfel încât o căutare pentru cele mai bune practici de codificare și tehnici de optimizare apare în mod natural, și vom începe să a se vedea întregul proces de dezvoltare ca o problemă de optimizare de rezolvat.
Deși problemele de optimizare nu sunt singurele probleme cu care se confruntă dezvoltatorii, de exemplu, există probleme de decizie și probleme de căutare, optimizarea este sarcina care cuprinde diferitele etape ale dezvoltării web, probabil cea mai.
Optimizarea codului se poate întâmpla la diferite nivele, în funcție de cât de aproape de optimizarea pe care o realizăm este codul mașinii. În dezvoltarea de web putem efectua doar optimizări la nivel superior, deoarece optimizările la nivel de ansamblu sau de runtime nu sunt o opțiune pentru noi, dar avem încă multe oportunități.
Putem optimiza codul nostru la nivel arhitectural cu modele de design inteligente, la nivelul codului sursă, utilizând cele mai bune practici de codificare și utilizând instrumentele adecvate și, de asemenea, putem îmbunătăți performanța echipei noastre introducând ghiduri de stil de codificare în fluxul nostru de lucru.
Indiferent de tehnica pe care o alegem să mergem împreună, există o regulă de bază pe care trebuie să o urmeze fiecare demers de optimizare a codului: efectuați optimizarea într-un mod care nu modifică sensul codului.
Beneficiile optimizării codului cresc în concordanță cu creșterea proiectului nostru, și ca chiar și inițial proiectele mici pot deveni mari cu timpul, dobândirea abilităților de optimizare a codului solid are aproape întotdeauna rezultate pozitive măsurabile.
1. Bază pentru codul de curățare
Pe măsură ce un proiect se maturizează și din ce în ce mai mulți dezvoltatori încep să lucreze la aceasta, duplicările și suprapunerile apar mai devreme sau mai târziu, iar brusc ne dăm seama că abia înțelegem ce se întâmplă.
Nu este o coincidență faptul că păstrarea în minte a principiului DRY (Do not Repeat) este unul dintre pietrele de temelie ale dezvoltării software eficiente. O bază de cod bine optimizată și optimizată, în care suntem capabili reutilizați aceleași elemente de mai multe ori este întotdeauna mai subțire și mai tare și, prin urmare, este mult mai ușor de înțeles și de a lucra cu.
2. Consistență mai mare
Consistența este ca și gospodăria, atunci când se îngrijește în mod corespunzător de nimeni nu o observă, dar când este neglijată, întregul loc pare a fi dezordonat și ne aflăm în haos.
Realizarea coerenței complete este dificilă, deoarece asigurarea compatibilității înapoi poate în cele din urmă să ajungă în calea îmbunătățirii, dar acordând atenție utilizând linii directoare coerente, API compatibile și standarde consecvente cu siguranță poate diminua durerea.
Menținerea coerenței codului în mod deosebit este importantă când trebuie să ne ocupăm de codul vechi, sau în cazul unor proiecte mai mari implică mulți dezvoltatori.
3. Site-uri mai rapide
Codul de optimizare este similar cu cumpărarea unei mașini mai rapide. Ca rezultat, codul nostru se execută mai rapid, și site-ul sau aplicația noastră consumă mai puțină memorie decât înainte. Deși procesul de optimizare poate necesita timp și bani suplimentari, rezultatul este a experiență mai bună, nu numai pentru dezvoltatori, ci și pentru utilizatorii finali.
Codul mai rapid implică perioade mai scurte de încărcare a paginilor de asemenea, care este o afacere mare în ambele lumi ale optimizării motorului de căutare și marketingului de conversie. Cercetarea spune asta “aproape jumătate dintre utilizatorii web așteaptă ca un site să se încarce în 2 secunde sau mai puțin și au tendința de a abandona un site care nu este încărcat în 3 secunde”, astfel încât viteza nu este clar o zonă pe care o putem ignora în siguranță.
4. O mai bună citire a codului
Capacitatea de citire este un aspect important al mentenabilității codului. Codul necorespunzător cu formatul ad-hoc este greu de citit, prin urmare greu de înțeles, în special pentru dezvoltatorii care sunt noi în proiect.
Ne putem proteja durerea de a trata codul indescifrabil dacă aplicăm anumite tehnici de optimizare a codului, cum ar fi:
- folosind convenții de denumire coerente cu nume semnificative, cum ar fi BEM
- formatare consecventă cu utilizarea logică a indentării, a spațiilor libere și a spațiilor verticale
- evitând zgomotul inutil, cum ar fi observațiile evidente și explicite
Acesta este motivul pentru care proiectele mari, cum ar fi WordPress, jQuery și Mootools, au ghiduri clare de codificare clară pe care trebuie să le urmeze fiecare dezvoltator implicat.
5. Refactorizarea mai eficientă
Se întâmplă frecvent în dezvoltarea web-ului să moștenim codul de la altcineva și să înțelegem rapid că este departe de a fi optim, fie în termeni de structura, performanța sau întreținerea. Același lucru se poate întâmpla și cu proiectele noastre anterioare pe care le-am scris când aveam mult mai puțină experiență în programare.
In alte cazuri obiectivele unui alt proiect de mare schimbare se schimbă de-a lungul timpului, și avem nevoie prioritizați alte lucruri în aplicație decât înainte.
Vorbim despre refactorizare când noi schimbați (curățați) codul existent pentru ao optimiza fără a schimba funcționalitățile sale. Refactorizarea trebuie să fie efectuată cu mare grijă, ca și cum ar fi făcut în mod greșit, putem ajunge cu ușurință cu o bază de coduri care este chiar mai puțin optimă decât originalul a fost.
Din fericire avem multe tehnici bine testate pe mâinile noastre, care pot face refactorizarea un proces fără probleme.
6. Debugare mai directă
Debugging-ul ocupă o parte semnificativă din fluxul de lucru al dezvoltării web și este de obicei o sarcină obositoare sau chiar descurajantă. Este destul de greu dacă trebuie să depanem propriul cod, dar este mult mai rău când trebuie să găsim bug-urile în altcineva, mai ales dacă este ceva de genul codului spaghetti care nu folosește decât funcții.
Design inteligent și modele arhitecturale, precum folosind obiecte și diferite module, și instrucțiuni clare de codificare poate facilita procesul de depanare, chiar dacă cel mai probabil nu va fi încă sarcina noastră cea mai iubită.
7. Flux de lucru îmbunătățit
Multe proiecte de dezvoltare web sunt conduse de echipe distribuite, cum ar fi comunitățile open source sau echipele la distanță. Unul dintre cele mai grele lucruri în gestionarea unui astfel de flux de lucru este acela de a găsi o modalitate prin care comunicarea să fie suficient de eficientă permite membrilor echipei să se înțeleagă cu ușurință, și să nu trebuiască să discute în mod constant implicațiile.
Încurajată de cele mai bune practici și ghiduri de stil, poate reduce decalajul dintre persoane din medii diferite, fără a menționa dificultățile obișnuite de comunicare dintre echipele de proiectare și dezvoltare în majoritatea proiectelor web.
Optimizarea codului este, de asemenea optimizarea fluxului de lucru, ca și cum membrii echipei vorbesc o limbă comună și împărtășesc aceleași obiective declarate, vor putea, de asemenea, să colaboreze fără a avea probleme mai puțin.
8. Întreținerea mai ușoară a codului
Deși construirea de elemente de la bază tind să fie mai distractivă decât păstrarea codului pre-existent, uneori trebuie încă să efectuăm o întreținere permanentă a codurilor. Lucrul cu sistemele deja existente ne poate oferi și noi opinii privind optimizarea codului, deoarece este o experiență diferită decât optimizările timpurii într-un nou proiect.
În întreținerea software-ului, suntem deja într-o etapă în care putem surprinde probleme reale de performanță și eficiență și putem lucra cu utilizatori reali în loc de cazuri de utilizare ipotetică.
Întreținerea de coduri are, de obicei, puțină respect în cercurile dezvoltatorilor, dar poate fi încă o sarcină satisfăcătoare dacă vom urma cele mai bune practici, cum ar fi utilizarea controlul versiunilor fiabile, managementul dependenței, platformele de staționare și de testare, și în mod corespunzător aveți grijă de documentație.
9. Dezvoltarea mai rapidă a elementelor
Inovație constantă este nucleul de a rămâne relevant în domeniul nostru, ca și cum în cazul în care nu am arăta nimic nou pentru utilizatorii noștri într-un timp putem fi rapid lăsat în urmă. Extinderea unui proiect și adăugarea de noi caracteristici la acesta este, de obicei, mult mai rapidă dacă lucrăm cu o bază de cod bine optimizată și curată.
În afară de metodele de optimizare a codului deja discutate, dezvoltarea caracteristicilor poate câștiga, de asemenea, un impuls dacă ținem pasul cu ele metode moderne de gestionare a proiectelor, de exemplu dacă folosim modele iterative de ciclu de viață în locul modelului tradițional de cascadă.
10. Datorie tehnică mai mică
Termenul "datorie tehnică" a fost inventat de Ward Cunningham, programator care a dezvoltat și primul wiki. El compară consecințele deciziilor noastre de programare proaste care acumulează în timp datoria financiară în care oamenii plătesc dobânzi în viitor pentru a obține rapid bani în prezent.
Aceste decizii mai puțin decît cele optime se manifestă în mod obișnuit sub forma unor soluții rapide, programare prin copiere și lipire, codare tare, programare de cult-încărcare și altele codarea antipatternelor și obiceiurile de lucru neclintite.
Este în principiu imposibil de evitat complet datoria tehnică, deoarece chiar și deciziile bune pot fi consecințe mai puțin dorite în viitor, dar dacă vom optimiza cu sârguință codul nostru, cu siguranță vom fi împovărată cu o datorie tehnică mult mai mică.