10 důvodů, proč potřebujete optimalizaci kódu
Zatímco píšeme kód, neustále se rozhodujeme a volíme mezi řešeními, která se na první pohled mohou jevit jako rovnocenná. Později to obvykle dopadá některé volby mají za následek efektivnější program než jiné, takže přirozeně vzniká snaha o nejlepší postupy kódování a optimalizační techniky a my začneme vidět celý proces vývoje jako problém optimalizace.
Ačkoli optimalizační problémy nejsou jedinými vývojáři, se kterými se pravidelně zabývají, například problémy s rozhodováním a problémy s vyhledáváním, optimalizace je úkol, který zahrnuje různé fáze vývoje webu pravděpodobně nejvíce.
Optimalizace kódu může probíhat na různých úrovních, v závislosti na tom, jak úzká je optimalizace, kterou provádíme, na strojovém kódu. Ve vývoji webu můžeme provádět pouze optimalizace na vyšší úrovni, Vzhledem k tomu, že optimalizace na úrovni montáže nebo runtime nejsou pro nás možností, máme stále mnoho příležitostí.
Můžeme optimalizovat náš kód na architektonické úrovni pomocí inteligentní designové vzory, na úrovni zdrojového kódu s využitím nejlepších postupů kódování a pomocí vhodných nástrojů a můžeme také zlepšit výkon našeho týmu zavádění průvodců kódováním do našeho pracovního postupu.
Bez ohledu na to, jakou techniku zvolíme, je třeba si uvědomit, že každá snaha o optimalizaci kódu musí následovat: vždy musíme provést optimalizaci způsobem, který nemění význam kódu.
Přínosy optimalizace kódu rostou v souladu s růstem našeho projektu a stejně tak i zpočátku malé projekty mohou být časem velké, získání dovedností optimalizace pevných kódů téměř vždy má měřitelné pozitivní výsledky.
1. Čistší kódová základna
Jak projekt zraje, a více a více vývojářů na něm začíná pracovat, duplikace a překrývání se obvykle objevují dříve nebo později, a najednou si uvědomujeme, že se sotva chápeme, co se děje.
Není to náhoda, že zachování principu DRY (Don't Repeat Yourself) je jedním ze základních kamenů efektivního vývoje softwaru. Pečlivě optimalizovaný kódový základ, ve kterém jsme schopni opakovaně použít stejné prvky je vždy uhladenější a úhlednější, a proto je mnohem snazší porozumět a pracovat s ním.
2. Vyšší konzistence
Konzistence je jako domácí práce, když se o něj nikdo řádně nestará, ale když je opomíjeno, celé místo vypadá chaoticky a ocitáme se v chaosu..
Dosažení úplné konzistence je tvrdé, jak je uvedeno výše zajištění zpětné kompatibility se může nakonec dostat do cesty zlepšení, ale věnovat pozornost používání koherentních kodexů, kompatibilních API a konzistentních standardů může jistě zmírnit bolest.
Zvláště důležité je udržovat konzistentnost kódu když se musíme vypořádat s dědičným kódem, nebo v případech větších projektů zapojit mnoho vývojářů.
3. Rychlejší stránky
Optimalizační kód je podobný nákupu rychlejšího automobilu. Výsledkem je náš kód provádí rychleji, a naše stránky nebo aplikace spotřebovává méně paměti než dříve. I když proces optimalizace může vyžadovat další čas a peníze, výsledek je a lepší zkušenosti, nejen pro vývojáře, ale i pro koncové uživatele.
Rychlejší kód znamená kratší doby načítání stránky také, což je velký problém v obou světů optimalizace pro vyhledávače a konverze marketing. Výzkum říká, že “téměř polovina uživatelů webu očekává, že se stránky načítají za 2 sekundy nebo méně, a mají tendenci opouštět stránky, které nejsou načteny do 3 sekund”, tak rychlost není jednoznačně oblast, kterou můžeme bezpečně ignorovat.
4. Lepší čitelnost kódu
Čitelnost je důležitým aspektem udržovatelnosti kódu. Neuskutečnitelný kód s formátováním ad hoc je obtížné číst, proto je těžko srozumitelný, zejména pro vývojáře, kteří jsou v projektu noví.
Můžeme se chránit před bolest při jednání s nesrozumitelným kódem pokud použijeme určité techniky optimalizace kódu, jako jsou:
- použití koherentních pojmenovacích konvencí s významnými jmény, jako je BEM
- konzistentní formátování s logickým využitím odsazení, mezer a svislých mezer
- vyhnout se zbytečnému hluku, jako jsou samozřejmé komentáře
To je důvod, proč velké projekty, jako jsou WordPress, jQuery a Mootools, mají jasné návody pro kódování, které musí každý vývojář sledovat..
5. Efektivnější Refactoring
Často se vyskytuje ve vývoji webu, který zdědíme kód od někoho jiného, a rychle pochopíme, že to je není zdaleka optimální, zda z hlediska strukturu, výkon nebo udržovatelnost. To samé se může stát s našimi vlastními předchozími projekty, které jsme napsali, když jsme měli mnohem menší zkušenosti s programováním.
V ostatních případech cíle jinak velkého projektu se časem mění, a musíme priority v aplikaci než dříve.
Mluvíme o refaktoringu, když jsme my změnit (vyčistit) existující kód optimalizovat, aniž by se změnila některá jeho funkce. Refactoring musí být prováděn s velkou opatrností, jako by se to dělo špatným způsobem, můžeme snadno skončit s kódovou základnou, která je ještě méně optimální než originál..
Naštěstí máme na rukou mnoho osvědčených technik, díky nimž může refaktorování hladce běžet.
6. Přímější ladění
Ladění zabere značnou část pracovního postupu pro vývoj webu a je to obvykle zdlouhavý nebo dokonce skličující úkol. Je to dost těžké, pokud musíme ladit náš vlastní kód, ale je to mnohem horší, když potřebujeme najít chyby v něčem jiném, zejména pokud je to něco jako nekonečný kód špagety, který nepoužívá nic jiného než funkce.
Inteligentní design a architektonické vzory, jako pomocí objektů a různých modulů, a jasné pokyny pro kódování může usnadnit proces ladění, i když s největší pravděpodobností to nebude náš nejoblíbenější úkol.
7. Vylepšený pracovní postup
Mnoho projektů vývoje webu jsou řízeny distribuovanými týmy, jako jsou open source komunity nebo vzdálené týmy. Jednou z nejtěžších věcí při správě takového pracovního postupu je najít způsob, jak učinit komunikaci dostatečně účinnou umožnit členům týmu snadno porozumět, a nemusela neustále diskutovat o defaultech.
Dohodnuté na osvědčených postupech a průvodcích stylů mohou překlenout propast mezi lidmi z různých prostředí, nehledě na obvyklé komunikační potíže mezi týmy návrhářů a vývojářů ve většině webových projektů.
Optimalizace kódu je také optimalizace pracovního postupu, jako by členové týmu hovořili společným jazykem a sdíleli stejné deklarované cíle, budou také schopni spolupracovat bez mnohem menších potíží.
8. Snadnější údržba kódu
I když stavba něčeho od základu bývá zábavnější než udržování existujícího kódu, někdy musíme stále provádět údržbu kódu. Práce s již existujícími systémy nám může také poskytnout nové pohledy na optimalizaci kódu, protože je to jiná zkušenost než včasná optimalizace v novém projektu.
V oblasti údržby softwaru jsme již ve fázi, kdy můžeme zachytit skutečné problémy s výkonem a efektivností a pracovat s reálnými uživateli namísto hypotetických případů použití..
Údržba kódu se v kruzích developerů obvykle dostává jen málo respektu, ale pokud se budeme řídit osvědčenými postupy, například používáním, může to být odměnou spolehlivé řízení verzí, správa závislostí, pracovní a testovací platformy, a řádně starat se o dokumentaci.
9. Rychlejší vývoj funkcí
Neustálé inovace je jádrem pobytu v našem oboru, stejně jako v případě, že jsme našim uživatelům neprojevili nic nového za chvíli, kdy můžeme rychle zůstat pozadu. Rozšíření projektu a přidání nových funkcí je obvykle mnohem rychlejší, pokud pracujeme s dobře optimalizovanou, čistou kódovou základnou.
Kromě již diskutovaných metod optimalizace kódu, může vývoj funkcí také získat hybnost, pokud budeme držet krok s moderních metod řízení projektů, například pokud používáme iterativní modely životního cyklu místo tradičního modelu vodopádu.
10. Menší technický dluh
Termín “technický dluh” byl vytvořen Ward Cunningham, programátor, který také vyvinul první wiki. Porovnává důsledky našich špatných programových rozhodnutí, která se časem kumulují s finančním dluhem, v němž lidé v budoucnu platí úroky, aby v současné době rychle dostali peníze..
Tato méně než optimální rozhodnutí se obvykle projevují v podobě rychlých oprav, programování kopírování a vkládání, pevného kódování, programování nákladu a dalších programů. kódování antipattern a nedbalé pracovní návyky.
Je to v podstatě technických dluhů, protože i dobrá rozhodnutí mohou být v budoucnu méně žádoucími důsledky, ale pokud budeme pilně optimalizovat náš kodex, určitě budeme mnohem menší technické zadlužení.