Skip to content

Statikus kódanalízis (metrikák)

Miért?
A bizalom jó, de az ellenőrzés jobb – és minél jobban automatizálva van, annál könnyebb.

Hogyan határozható meg egy kódrészlet minősége, pl. egy osztályé vagy egy komponensé? Elegendő az, ha a megrendelői követelményeknek funkcionálisan eleget tesz? Elegendő az, hogy elég gyors és eléggé skálázható? Az automatikus tesztek és végül a megrendelő tesztjei fognak erről felvilágosítást nyújtani. Az ilyen követelménynek való megfelelések nélkül a szoftvernek természetesen nincsen releváns minősége. Ha nem használ a megrendelőnek, minden további kérdés feleslegessé válik.A másik oldalon viszont nem elegendő, minden széleskörben elterjedt feltételezéssel ellentétben, a követelményeknek való megfelelés. A jó minőség nem csupán a funkcionalitásból és pl. a performanciából áll. Mert a funkcionális és nem funkcionális követelmények mellett van egy általában kimondatlan, rejtett követelmény: A megrendelők általában azt akarják, hogy a szoftver ne csak ma feleljen meg a követelményeknek, hanem holnap és holnapután is. A megrendelők befektetésvédelmet szeretnének továbbfejleszthetőség által.

A megrendelők számára ez a követelmény általában implicit. Azt hiszik, hogy ez magától értetődő, hogy egy immateriális termék, mint egy szoftver kvázi a végtelenségig fejleszhető és gombnyomásra az új követelményekhez igazítható. Gyakran azok a vezetők is ezt hiszik, akik nem a szoftverfejlesztésből kerülnek ki. Sőt még maguk a szoftverfejlesztők is!

Nem is lehetne nagyobb a félreértés a szoftverek körül. A továbbfejleszthetőség sem a szoftverfejlesztők által mindenképpen követett célok értelmében magától értetődő, sem pedig nem adódik valamiből kvázi magától. A továbbfejleszthetőség sokkal inkább kemény munka eredménye, melyet folyamatosan egyéb értékekkel szemben kell mérlegelni.

Amikor egyéb követelménynek való megfelelést csak (automatizált) tesztekkel lehet megállapítani, hogyan állunk akkor a továbbfejleszthetőséggel? Lehet a kód minőségét a túlélőképessége tekintetében automatikusan is mérni? Részben. Nem minden aspektusát lehet annak automatikusan ellenőrizni, ami a szoftvert továbbfejleszhetővé teszi. Például, hogy a szoftver nyitott-e a bővítésre az Add-In koncepció szerint, azt nem lehet automatikusan felismerni.

Mégis vannak metrikák, melyek értéke egy szoftver számára „kiszámítható”. Eszközök segítenek ebben. Ezeket az eszközöket tehát minden szoftverprojektben be kellene vetni.

  • Ezek az eszközök képesek a régebbi kódot státusz quo-nak használni, és ez alapján egy alapvonalat meghatározni, amivel a kód további fejlesztését (javítását) össze lehet hasonlítani.
  • Az új kódnál, amit a továbbfejleszthetőség szempontjából terveztek, a statikus kódanalízis azt mutatja meg, hogy a tervezés ideális állapotát elérte-e.

A Clean Code fejlesztő nem elégszik meg azzal, hogy automatizáltan tesztelje a kódot. Az egyik szemünk mindig a továbbfejleszthetőségen van, mert tudjuk, hogy a megrendelő ebben ugyanannyira érdekelt – mindegy, hogy explicit mondta-e vagy sem.

Lásd az eszközök alatt.

Published inPraktikák