Quando si abilita SONAR su un progetto Java interno, viene segnalato un numero elevato di violazioni a causa della regola DesignForExtensionCheck
. Mentre sono d'accordo con la teoria che tutte le classi / metodi dovrebbero essere marcate come Abstract, Final, ecc. Ma è strettamente necessario per un'applicazione interna in cui gli sviluppatori hanno pieno controllo sulla base del codice e sui test unitari, ecc.?
Un esempio è un oggetto valore a cui è richiesto che ogni getter / setter sia definitivo per superare questo controllo. Quando hai più di 500 segnalazioni di questo tipo è importante chiedere il retrofit del codice.
Alcune persone hanno affermato che Java ha alcuni difetti, e uno di questi è che le classi / i metodi non sono definitivi di default. Tenendo presente che non abbiamo il comportamento predefinito come comportamento predefinito, quanto dobbiamo davvero fare per dichiarare tutto come definitivo?
Nota: mi rendo conto che le API utilizzate da terze parti devono avere controlli più rigorosi. Questa domanda è livellata alle applicazioni interne.