Im Rahmen eines Plans zur Verbesserung der Softwarequalität haben wir kürzlich eine Reihe von Code-Sniffs codiert, die in unseren Erstellungsprozess integriert werden sollen.
Wir bauen viel, da es für eine PHP-Anwendung keine wirkliche Kompilierung gibt, ist der Build wirklich ein Unit-Test / eine statische Analyse / ein Runner, und wir können es uns leisten, ein paar Zyklen damit zu verbringen.
Wir hatten einige Probleme mit der Codequalität und einigen älteren Code mit vielen Problemen.
Ausgehend davon, dass das Festschreiben ignoriert wird, wenn es nicht fehlschlägt, haben wir damit begonnen, Festschreibungen gegen unseren 'gewünschten' Codierungsstandard zu bestätigen und fehlgeschlagene Festschreibungen mit Fehlern, die nicht dem Standard entsprachen.
Die Wartung wurde gestoppt, selbst die einfachste Behebung einer älteren Komponente erforderte vom Entwickler die Neuformatierung großer Mengen von Quellcode, und der Build wurde mehrmals abgebrochen. Unnötig zu erwähnen, dass wir die Fehler in Warnungen geändert haben, und jetzt sind sie ignoriert und "größtenteils" sinnlos.
Also würde ich das sagen (aus harter Erfahrung gelernt).
Stellen Sie sicher, dass der Standard Ihrer Codebasis nahe genug an dem Standard liegt, den Sie erzwingen, damit Sie nicht von Entwicklern verlangen, dass sie die Codevolumen sofort neu formatieren. Oder .. Sie sind auf den Mehraufwand vorbereitet und rechnen damit.
Da wir ein kleines Team mit einem großen Lieferbedarf sind, konnten wir es uns nicht leisten, das Team auf einen großen Umstrukturierungsvorgang umzustellen. Unsere Kodierungsstandards werden jetzt hauptsächlich manuell überprüft, und das Erbe wird im Rahmen eines kontinuierlichen Verbesserungsplans neu geschrieben.
Als ich sagte, dass die Warnungen "größtenteils" sinnlos sind, verwenden wir sie jetzt zum Aufzeichnen von Statistiken, mit denen wir KPIs messen können, die sich weiter verbessern sollten.
Wenn wir die Code-Sniffs erneut erzwingen, beginnen wir mit Light und führen jeweils ein paar Sniffs ein, bis der Standard erzwungen ist.