Varför är kodkvalitet så stor för utvecklare?
kodkvalitet kan översättas till hur användbar och underhållbar din kod är: kod av hög kvalitet kan återanvändas och utvecklas igen; kod av låg kvalitet varar inte.
projekt är ofta en kamp mot klockan och budgeten så snäv att räkna med ett par händer att skriva kod är en chimär. Skärande hörn kan verka den enkla vägen ut, men det kommer inte att betala på lång sikt.
välstrukturerad kod, efter språkregler, är mycket lättare att läsa och förstå av olika webbläsare och andra utvecklare. Det är också mer tillförlitligt och undviker framtida omarbetningar.
programvaruprojekt kan vara föremål för olika begränsningar i olika stadier (från krav till analys, utveckling, testning, distribution och underhåll) vilket ibland kan leda till att själva koden hanteras som den minst viktiga aspekten (funktion över form). En av de viktigaste — och ofta glömda — egenskaperna hos bra programvara är dock dess kodkvalitet.
kodkvalitet kan mätas på ett antal olika sätt, men några av de viktigaste aspekterna är:
- läsbarhet, konsekvens – hur lätt det är att läsa och förstå delar av koden; detta inkluderar kod klarhet, enkelhet och dokumentation.
- förutsägbarhet, tillförlitlighet och robusthet — programvarubeteende bör vara förutsägbart och inte benäget för dolda buggar.
- Underhåll och utbyggbarhet — fastställande, uppdatering och förbättring av programvara bör vara så enkelt som möjligt, inte i sig komplex.
varför spelar kodkvalitet verkligen roll?
med tanke på de vanliga begränsningarna som redan finns i mjukvaruutveckling, varför ska ansträngningen att producera kvalitetskod vara så viktig?
Skrivkvalitetskod bör inte betraktas som en tidskrävande uppgift, utan snarare som ett av huvudmålen när man utvecklar programvara; Det bör betraktas som en viktig investering som avkastningen kommer att följa nästan omedelbart:
- kod som är mycket läsbar, konsekvent och dokumenterad är lättare att granska, vilket leder till en mycket lägre utvecklingsinsats.
- ren och elegant kod är också mycket lättare att förstå, underhålla och utöka.
- programvara som är väl utformad och uppnår en lägre kodkomplexitet gynnar också mycket när det gäller testbarhet och robusthet (mindre benägna att nya buggar introduceras).
i huvudsak är en hög kodkvalitet ett av de mest effektiva sätten att sänka teknisk skuld.
Låt mig visa dig ett exempel
Dålig kvalitetskod kan vanligtvis orsakas av:
- brist på (eller otillräcklig) kodningsstil/standarder.
- ingen / dålig dokumentation.
- dåligt utformad arkitektur (utan ansvarsfördelning, som i MVC).
- hög metodkomplexitet
i följande exempel kan syftet med metoden inte tydligt identifieras utan noggrann undersökning:
- det finns ingen funktionsdokumentation, inga kommentarrader och ingen uppenbar kodningsstandard följs (ses till exempel vid användning av lockiga parenteser och tomma linjer).
- komplexiteten är relativt hög på grund av antalet olika åtgärder och processer (DB-frågor, vy/utgång och affärslogik), flera nestningsnivåer.
- det finns en inkonsekvens i sätten att utföra utdata och variabel interpolering.
med tanke på dess låga kvalitet är koden benägen för fel/buggar (för att inte tala om säkerhetsproblem) och svår att testa ordentligt.
dessutom kommer eventuella ändringar av programvaran sannolikt att resultera i en ökad utvecklings-och testinsats och ändå resultera i potentiella nya buggar introduceras.
på motsatt sida är det en viktig aspekt av kvaliteten att följa en kodningsstandard och dokumentera kod.
ett slumpmässigt exempel på detta kan ses i följande bild, ett avsnitt av Symfonys FrameworkBundle Controller.php:
förutom metoden / parameterdokumentationen kan vi tydligt se det:
- koden är enkel och självförklarande.
- olika logiska sektioner separeras med tomma linjer.
- det finns få häcknings – / indragningsnivåer, med tidiga avkastningsuttalanden.
- det finns lämpliga designöverväganden (ansvarsfördelning av olika objekt/klasser).
- på grund av hög kodkvalitet och tydlighet bör klassen/metoden vara lätt att testa och underhålla, med låg ansträngning; sannolikheten för att fel uppstår bör också vara extremt låg.
Hur kan en hög kodkvalitet uppnås?
här är några tips:
- välja en lämplig kodning (stil) standard för språket eller ramverket. För PHP kan till exempel PSR-2 betraktas som den nuvarande standardrekommendationen. Det kan vara möjligt att integrera CS fixer-verktyg med din utvecklingsmiljö (se php-cs-fixer)
- konsistens i klass, metod och variabelnamn är en annan viktig faktor för läsbarhet.
- se till att korrekt dokumentera klasser, egenskaper, metoder och särskilda block av kod vid behov, säkerställa kommentarer är enkla, koncisa och effektiva.
- Refactoring och välja rätt designmönster är ett bra sätt att främja kod återanvändbarhet och töjbarhet, och för att uppnå en lägre klass/metod komplexitet.
- lägga till kodanalysverktyg i CI-miljön, som ska köras innan nya ändringar slås samman. För PHP är phpmd och / eller phpstan verktyg som kan varna för potentiella problem i koden och har ett antal olika konfigurerbara regler.
- automatiserad testning är ett annat måste; det kommer inte bara att hjälpa till att förhindra nya buggar, men också för att säkerställa att det uppfyller kraven och svarar korrekt på olika ingångar.
- slutligen, utnyttja verktyg som scrutinizer-ci och Codacy för att testa och visa en tydlig översikt över kvaliteten på ett projekt över tid, och viktiga detaljer om vad och var frågorna är.
Bottom line
oavsett utvecklingsmetoder, språk, ramverk eller verktyg är det ett sätt att uppnå snabbare och enklare utveckling, testning och underhåll, vilket resulterar i minskade kostnader för mjukvaruägande.
skriven av Jo Exceptiono i Exceptioncio | Senior Developer och Team Leader på Cleverti
den här artikeln publicerades ursprungligen på Clevertis blogg