Kontrola kvality kódu
Nástroje Delphi a C++Builder poskytují širokou flexibilitu. Proto je při programování v těchto prostředích zásadní udržovat dobrou kvalitu kódu. DerScanner se zaměčuje na nejčastější problémy, mezi které patří například:
- Delphi nemá automatický garbage collection jako Java nebo Python. Vyžaduje explicitní správu paměti. Špatně spravovaný kód může vést k únikům paměti.
- Delphi se silně spoléhá na programování založené na událostech a vizuální komponenty. Špatně napsané obslužné rutiny událostí nebo úzce propojené komponenty mohou ztěžovat ladění, rozšiřování nebo úpravy aplikací. Silný typizační systém Delphi snižuje chyby za běhu, ale vyžaduje pečlivou pozornost k datovým typům. Špatně strukturovaný kód může vést ke zbytečným konverzím typů nebo skrytým chybám, které je za běhu obtížnější odhalit.
- Delphi se kompiluje přímo do nativního strojového kódu. To znamená, vyšší rychlost ve srovnání s jazyky jako C# nebo Java, ale také že kód prochází za běhu méně bezpečnostními mechanismy. Špatné praktiky, jako je nesprávné zpracování výjimek nebo nebezpečné použití ukazatelů, mohou vést k pádům.
- Delphi se široce používá v podnikových aplikacích. Mnoho z těchto aplikací je v produkci již desítky let. Proto je udržovatelnost hlavním přínosem jazyka Delphi. Kvalitní kód v konečném důsledku usnadňuje aktualizaci nebo refaktorování starších systémů.
- Delphi vytváří vysoce optimalizované nativní aplikace pro Windows, macOS, iOS, Android a Linux. Špatně napsaný kód může vést ke zbytečné spotřebě paměti, pomalému provádění nebo neefektivnímu vykreslování grafického uživatelského rozhraní. Mnoho aplikací Delphi se používá v průmyslových řídicích systémech, zdravotnických zařízeních a vestavěných prostředích. Tyto systémy vyžadují vysokou spolehlivost, protože selhání by mohla mít vážné následky. Kvalitní kód pomáhá předcházet pádům, únikům paměti a neočekávanému chování.
Pozor, v C++Builderu nemusí být některé z uvedených funkcí k dispozici!
QA v Delphi/C++Builderu*
V Delphi 12 Athens (platí i pro starší verze) jsou k dispozici nástroje pro analýzu kvality kódu. QA metriky (Quality Assurance Metrics) pomáhají vývojářům identifikovat potenciální problémy, zlepšovat strukturu kódu a udržovat vysokou úroveň čitelnosti a udržovatelnosti.
Kvalitu kódu lze také zlepšovat s použitím QA Audits. Na rozdíl od metrik, které měří kvantitativní vlastnosti kódu, audity hodnotí kvalitativní aspekty – například porušení návrhových principů, použití špatných praktik nebo potenciální chyby.
*V C++Builderu nejsou uvedené možnosti implementované v plném rozsahu.
QA Metriky
QA Metriky poskytují informace o měřitelných atributech jako je počet zanoření, počet tříd, na které je daná třída závislá a podobně. Lze si tak stanovit prahové hodnoty a ve výstupu rychle vyhledat místa v kódu, která daný cíl nesplňují.
Použití QA metrik
- Otevřeme vybraný projekt Delphi
- V hlavní nabídce prostředí vybereme Project -> QA Metrics
- V dialogovém okně nastavíme:
- Scope – zda analyzovat celý projekt nebo jen vybrané části
- Metriky – zvol konkrétní metriky, které chceš spustit
- Nastav volitelné parametry (např. limity, granularitu)
- Klikneme na Start – výsledky se zobrazí v panelu “Metrics“.

Příklady metrik
- Cyclomatic Complexity – měří počet nezávislých cest skrz metodu
- Depth of Inheritance Tree (DIT) – hloubka dědičnosti třídy
- Number of Children (NOC) – kolik tříd dědí z dané třídy
- Coupling Between Objects (CBO) – počet tříd, na které je daná třída závislá
Výhody použití QA metrik
- Zvýšení kvality kódu – Pomáhají odhalit problematické části kódu, které mohou být těžko udržovatelné nebo náchylné k chybám
- Lepší architektura – Umožňují sledovat, zda návrh tříd a modulů odpovídá principům dobrého návrhu (např. SOLID)
- Podpora refaktoringu – Identifikují části kódu, které by měly být přepracovány
- Měřitelnost pokroku – Umožňují sledovat vývoj kvality kódu v čase
- Zvýšení týmové efektivity – Pomáhají udržet jednotný styl a kvalitu napříč týmem
QA Audits
QA Audits poskytují informace o dodržování obecně doporučených pravidel / principů vývoje. Například použití globálních proměnných, metody s příliš mnoha parametry, silné závislosti mezi třídami a mnoho dalších.
Použití QA Audits
- Otevřeme vybraný projekt
- V hlavní nabídce prostředí vybereme Project -> QA Audits
- V dialogovém okně nastavíme:
- Scope (celý projekt nebo jen vybrané části).
- Vyber konkrétní audity – Vybereme požadované audity
- Klikneme na Start – Delphi provede analýzu a výsledky zobrazí v panelu „Audits“

Příklady auditů
- Avoid global variables – upozorní na použití globálních proměnných
- Too many parameters – detekuje metody s příliš mnoha parametry
- Class too big – označí třídy, které mají příliš mnoho členů
- Tight coupling – upozorní na silné závislosti mezi třídami
- Missing documentation – detekuje chybějící komentáře u veřejných členů
Výhody použití QA Audits
- Zajištění konzistence – Pomáhají udržet jednotný styl a strukturu kódu napříč týmem
- Odhalení problémů v návrhu – Upozorňují na porušení principů jako je zapouzdření, nadměrná závislost, špatná dědičnost apod.
- Zvýšení udržovatelnosti – Identifikují části kódu, které mohou být obtížně rozšiřitelné nebo testovatelné
- Podpora refaktoringu – Navrhují konkrétní místa, kde je vhodné provést úpravy
- Automatizace code review – Umožňují rychlou a objektivní kontrolu bez nutnosti ručního procházení celého kódu
Funkce | QA Audits | QA Metrics |
Typ analýzy | Kvalitativní (porušení pravidel) | Kvantitativní (měření hodnot) |
Výstup | Seznam problémů | Číselné hodnoty |
Použití | Code review, refaktoring | Monitoring složitosti, návrhu |
Přizpůsobení | Výběr auditů, úroveň závažnosti | Výběr metrik, nastavení prahových hodnot |