10 iemesli, kāpēc jums ir nepieciešams koda optimizācija
Kaut arī mēs rakstām kodu, mēs nepārtraukti pieņemam lēmumus un izvēlamies risinājumus, kas vispirms var šķist līdzvērtīgi. Vēlāk tas parasti izrādās dažas izvēles rezultātā tiek radīta efektīvāka programma nekā citiem, tāpēc dabiski rodas labākās kodēšanas prakses un optimizācijas metožu meklējumi, un mēs sākam redzēt visu attīstības procesu kā optimizācijas problēmu.
Lai gan optimizācijas problēmas nav vienīgās, izstrādātāji regulāri nodarbojas ar, piemēram, lēmumu pieņemšanas problēmām un meklēšanas problēmām, optimizācija ir uzdevums, kas aptver dažādus tīmekļa izstrādes posmus, iespējams, visvairāk.
Kodu optimizācija var notikt dažādos līmeņos, atkarībā no tā, cik tuvu veicamajai optimizācijai ir mašīnu kods. Tīmekļa izstrādē mēs varam veikt tikai augstāka līmeņa optimizāciju, Asamblejas vai izpildlaika līmeņa optimizācija mums nav risinājums, bet mums joprojām ir daudz iespēju.
Mēs varam optimizēt mūsu kodu arhitektūras līmenī ar viedie dizaina modeļi, izmantojot pirmkodu līmeni, izmantojot labāko kodēšanas praksi un izmantojot piemērotus rīkus, un mēs varam arī uzlabot mūsu komandas darbību līdz kodēšanas stila rokasgrāmatu ieviešana mūsu darbplūsmā.
Neatkarīgi no metodes, ko mēs izvēlamies iet kopā, ir īkšķis noteikums, ka katram kodu optimizācijas centienam ir jāievēro: mums vienmēr ir veikt optimizāciju tādā veidā, kas nemaina koda nozīmi.
Kodu optimizācijas ieguvumi pieaug saskaņā ar mūsu projekta izaugsmi un kā pat sākotnēji mazie projekti laika gaitā var kļūt lieli, iegūstot cieto kodu optimizācijas prasmes, gandrīz vienmēr ir izmērāmi pozitīvi rezultāti.
1. Tīrāka koda bāze
Kā projekts gatavojas, un arvien vairāk izstrādātāju sāk strādāt pie tā, dublēšanās un pārklāšanās parasti parādās agrāk vai vēlāk, un pēkšņi mēs saprotam, ka mēs diez vai saprotam, kas notiek.
Nav nejaušība, ka princips DRY (Don't Repeat Yourself) ir viens no efektīva programmatūras izstrādes stūrakmeņiem. Labi nostiprināta, rūpīgi optimizēta koda bāze, kurā mēs varam atkārtoti izmantot tos pašus elementus vairākas reizes vienmēr ir gludāka un tidier, un tāpēc ir daudz vieglāk saprast un strādāt.
2. Augstāka konsekvence
Konsekvence ir līdzīga mājas darbiem, kad tā pienācīgi rūpējas par to, ka neviens to nepamanīs, bet, kad tā ir atstāta novārtā, visa vieta izskatās netīrs, un mēs atrodamies haosā.
Pilnīgas konsekvences sasniegšana ir grūti nodrošinot atgriezenisko savietojamību, var rasties uzlabojumu veids, bet pievēršot uzmanību izmantojot saskaņotas kodu vadlīnijas, saderīgas API un konsekventus standartus var droši samazināt sāpes.
Īpaši svarīgi ir saglabāt koda konsekvenci kad mums ir jārisina mantojuma kods, vai lielākiem projektiem iesaistīt daudzus izstrādātājus.
3. Ātrākas vietnes
Koda optimizēšana ir līdzīga ātrāka auto iegādei. Tā rezultātā mūsu kods izpilda ātrāk, un mūsu vietne vai lietojumprogramma patērē mazāk atmiņas nekā iepriekš. Lai gan optimizācijas process var prasīt papildu laiku un naudu, rezultāts ir a labāka pieredze, ne tikai izstrādātājiem, bet arī gala lietotājiem.
Tas nozīmē ātrāku kodu īsāks lapas ielādes laiks kā arī, kas ir liels risinājums abās meklētājprogrammas optimizēšanas un reklāmguvumu tirgos. Pētījumā teikts, ka “gandrīz puse tīmekļa lietotāju sagaida, ka vietne tiks ielādēta 2 sekundēs vai mazāk, un viņi mēdz atteikties no vietnes, kas nav ielādēta 3 sekunžu laikā”, tā ātrums nepārprotami nav joma, kuru mēs varam droši ignorēt.
4. Labāka kodu lasāmība
Lasāmība ir svarīgs kodu uzturēšanas aspekts. Nepareizs kods ar ad hoc formatējumu ir grūti lasāms, tāpēc grūti saprotams, jo īpaši tiem, kas ir jauni projektam.
Mēs varam pasargāt sevi no sāpes, kas saistītas ar nenoņemamu kodu ja mēs izmantojam noteiktas kodu optimizācijas metodes, piemēram:
- izmantojot saskaņotas nosaukuma konvencijas ar nozīmīgiem nosaukumiem, piemēram, BEM
- konsekventa formatēšana ar loģisku atkāpi, atstarpi un vertikālu atstarpi
- izvairoties no nevajadzīga trokšņa, piemēram, pašsaprotami, acīmredzami komentāri
Tas ir iemesls, kāpēc lieliem projektiem, piemēram, WordPress, jQuery un Mootools, ir skaidri kodēšanas stila norādījumi, kas jāievēro katram iesaistītajam attīstītājam.
5. Efektīvāka refactoring
Bieži notiek web izstrāde, ko mēs mantosim no kāda cita un ātri saprotam, ka tas ir nav optimāls, vai attiecībā uz struktūra, veiktspēja vai uzturamība. Tas pats var notikt ar mūsu pašu iepriekšējiem projektiem, kurus mēs rakstījām, kad mums bija daudz mazāk pieredzes programmēšanā.
Citos gadījumos citādi liela projekta mērķi laika gaitā mainās, un mums ir nepieciešams noteikt citas lietojumprogrammas lietas nekā iepriekš.
Mēs runājam par refaktoru, kad mēs mainīt (notīrīt) esošo kodu lai to optimizētu, nemainot nevienu no tā funkcijām. Refactoring ir jāveic ļoti uzmanīgi, it kā tas būtu darīts nepareizi, mēs varam viegli nonākt pie koda bāzes, kas ir vēl mazāk optimāls nekā oriģināls..
Par laimi, mums ir daudz labi pārbaudītu metožu, kas var padarīt refaktoru par vienmērīgu procesu.
6. Vēl vienkāršāka atkļūdošana
Atkļūdošana aizņem ievērojamu daļu no tīmekļa izstrādes darbplūsmas, un tas parasti ir garlaicīgs vai pat biedējošs uzdevums. Tas ir pietiekami grūti, ja mums ir jārīkojas mūsu pašu kods, bet tas ir daudz sliktāk, ja mums ir jāatrod kļūdas kādam citam, it īpaši, ja tas ir kaut kas līdzīgs spageti kodam, kas neizmanto nekas, bet tikai funkcijas.
Viedais dizains un arhitektūras modeļus, piemēram, izmantojot objektus un dažādiem moduļiem, un skaidras kodēšanas vadlīnijas var atvieglot atkļūdošanas procesu, pat ja visticamāk tas nebūs mūsu mīļākais uzdevums.
7. Uzlabota darbplūsma
Daudzus tīmekļa izstrādes projektus vada izplatītas komandas, piemēram, atvērtā koda kopienas vai attālās komandas. Viena no visgrūtākajām lietām šādas darbplūsmas pārvaldībā ir atrast veidu, kā padarīt komunikāciju pietiekami efektīvu ļaut komandas locekļiem viegli saprast viens otru, un nepārtraukti apspriest noklusējumus.
Vienojoties par labāko praksi un stila rokasgrāmatām, var novērst plaisu starp cilvēkiem no dažādām vidēm, nemaz nerunājot par parastajām komunikācijas grūtībām starp projektēšanas un izstrādes komandām vairumā tīmekļa projektu.
Kodu optimizācija ir arī darbplūsmas optimizācija, tā kā, ja komandas locekļi runā par kopīgu valodu un dalītos ar tiem pašiem deklarētajiem mērķiem, viņi varēs strādāt kopā bez daudz mazāk problēmu.
8. Vieglāka kodu uzturēšana
Lai gan kaut kas no zemes uzbūvēšanas parasti ir vairāk jautrības nekā iepriekš pastāvoša koda saglabāšana, dažreiz mums joprojām ir nepieciešams veikt pastāvīgu kodu uzturēšanu. Darbs ar jau esošām sistēmām var arī dot mums jaunus viedokļus par kodu optimizāciju, jo tā ir atšķirīga pieredze nekā agrīnā optimizācija jaunā projektā.
Programmatūras uzturēšanā mēs jau esam tādā posmā, kad mēs varam noķert reālas veiktspējas un efektivitātes problēmas un strādāt ar reāliem lietotājiem, nevis hipotētisku lietojumu gadījumos.
Kodu uzturēšana parasti attīsta attīstītāju lokos, taču tas joprojām var būt izdevīgs uzdevums, ja mēs ievērojam labāko praksi, piemēram, izmantojot uzticamas versiju kontroles, atkarības pārvaldības, pieturvietu un testēšanas platformas, un pareizi rūpēties par dokumentāciju.
9. Ātrāka funkciju attīstība
Pastāvīga inovācija ir būtisks faktors mūsu jomā, kā tad, ja mēs kādu laiku neredzam neko jaunu mūsu lietotājiem, mēs varam ātri palikt. Projekta paplašināšana un jaunu funkciju pievienošana parasti ir daudz ātrāka, ja mēs strādājam ar labi optimizētu, tīru kodu bāzi.
Neatkarīgi no jau apspriestajām koda optimizācijas metodēm, arī tad, ja mēs sekojam līdzi, iezīme var attīstīties modernas projektu vadības metodes, piemēram, ja mēs izmantojam iteratīvus dzīves cikla modeļus tradicionālā ūdenskrituma modeļa vietā.
10. Mazāks tehniskais parāds
Terminu "tehniskais parāds" veidoja Ward Cunningham, programmētājs, kurš arī izstrādāja pirmo wiki. Tas salīdzina mūsu slikto plānošanas lēmumu sekas, kas laika gaitā uzkrājas finanšu parādā, kurā cilvēki maksā procentus nākotnē, lai ātri iegūtu naudu pašreizējā.
Šie mazāk optimālie lēmumi parasti izpaužas kā ātrs labojums, kopēšana un ielīmēšana, cietā kodēšana, kravas kultūru programmēšana un citi kodēšanas antivielas un apliets darba ieradumi.
Tas būtībā ir nav iespējams pilnībā izvairīties no tehniskā parāda, tā kā pat labi lēmumi nākotnē var būt mazāk vēlami, bet, ja mēs rūpīgi optimizēsim mūsu kodeksu, mēs noteikti būsim ar daudz mazāku tehnisko parādu.