Prozkoumání kvality kódu

Dokončeno

Kvalita kódu by se neměla měřit subjektivním způsobem. Kód, který píše vývojáře, by ohodnotit kvalitu kódu, ale to není skvělý způsob, jak měřit kvalitu kódu. Různé týmy můžou na základě kontextu používat různé definice.

Kód, který je považován za vysokou kvalitu, může znamenat jednu věc pro automobilový vývojář. A může to znamenat další pro vývojáře webových aplikací.

Kvalita kódu je nezbytná, protože má vliv na celkovou kvalitu softwaru.

Studie "Software Defect Origins and Removal Methods" zjistila, že jednotliví programátoři jsou méně než 50% efektivní při hledání chyb v jejich softwaru. A většina forem testování je pouze 35% efektivní. Je obtížné určit kvalitu.

Existuje pět klíčových vlastností, které je třeba měřit pro vyšší kvalitu.

Spolehlivost

Spolehlivost měří pravděpodobnost, že systém poběží bez selhání v určitém období provozu. Týká se počtu vad a dostupnosti softwaru. Několik vad lze měřit spuštěním nástroje pro statickou analýzu.

Dostupnost softwaru se dá měřit pomocí střední doby mezi selháními (MTBF).

Nízký počet vad je zásadní pro vývoj spolehlivého základu kódu.

Udržovatelnost

Udržovatelnost měří, jak snadno se dá software udržovat. Souvisí s velikostí, konzistencí, strukturou a složitostí základu kódu. A zajištění udržovatelného zdrojového kódu závisí na několika faktorech, jako je testovatelnost a srozumitelnost.

K zajištění udržovatelnosti nemůžete použít jednu metriku.

Některé metriky, které můžete zvážit pro zlepšení udržovatelnosti, jsou počet stylistických upozornění a míry složitosti Halstead.

Automatizace i lidé revidujícím jsou nezbytné pro vývoj udržovatelných základů kódu.

Testovatelnosti

Testovatelnost měří, jak dobře software podporuje testování. Kromě jiných faktorů spoléhá na to, jak dobře můžete řídit, sledovat, izolovat a automatizovat testování.

Testovatelnost je možné měřit na základě toho, kolik testovacích případů potřebujete k nalezení potenciálních chyb v systému.

Velikost a složitost softwaru můžou mít vliv na testovatelnost.

Použití metod na úrovni kódu, jako je například složitost cyklomatice, vám tedy může pomoct zlepšit testovatelnost komponenty.

Přenosnost

Přenositelnost měří, jak použitelný je stejný software v různých prostředích. Týká se nezávislosti platformy.

Neexistuje konkrétní míra přenositelnosti. Existuje ale několik způsobů, jak zajistit přenositelný kód.

Je důležité pravidelně testovat kód na různých platformách a nečekejte na konci vývoje.

Je také vhodné nastavit úrovně upozornění kompilátoru co nejvyšší a použít aspoň dva kompilátory.

Vynucení kódovacího standardu také pomáhá s přenositelností.

Opětovná použitelnost

Opětovná použitelnost měří, jestli je možné znovu použít existující prostředky, například kód.

Prostředky se snadněji používají, pokud mají modularitu nebo volné vlastnosti spojky.

Počet vzájemných závislostí může měřit opětovnou použitelnost.

Spuštění statického analyzátoru vám může pomoct identifikovat tyto vzájemné závislosti.