SonarQube è un prodotto software che esegue varie regole di stile di codifica e altre metriche simili a FxCop o Re-sharper. Definisce l'interruzione delle regole di stile come:
"MAINTAINABILITY ISSUE
This is commonly referred to as technical debt. Issues associated with maintainability are named “code smells” in our products."
Tuttavia, normalmente considererei il debito tecnico come "Un pezzo di codice che non segue il modello generale dell'architettura".
Ad esempio, diciamo che abbiamo un livello di regole aziendali, ma come soluzione rapida abbiamo inserito un po 'di logica aziendale nel livello dell'interfaccia utente.
Oppure, diciamo che abbiamo un progetto che è molto OOP, ma aggiungiamo una classe helper procedurale per una nuova funzione.
Il codice potrebbe ben rispettare tutte le regole di stile, non avere duplicazioni ecc. e stare bene da solo. È considerato un debito tecnico solo perché non si adatta al modello dell'altro codice nel progetto. Per rendere "bello" il progetto, dobbiamo tornare indietro e rifattorizzarlo in modo che tutto funzioni allo stesso modo.
Penso che questo tipo di differenza sarebbe difficile da ottenere con le serie di regole di analisi del codice e sembra inaffidabile chiamare violazioni delle regole di stile "debito tecnico".
Ho torto o ragione? Alcune regole oggettive o alcune classi di regole costituiscono una buona definizione di debito tecnico o almeno un tipo di debito tecnico?
PRECISAZIONE:
questo strumento dirà alla direzione che una linea di codice
this.myvariable
2min di valore del debito tecnologico. Che sembra sbagliato.
Tuttavia, farà anche la stessa cosa per la complessità ciclomatica o il codice duplicato. Che sembra meno sbagliato.