Es wird viel Code geschrieben und ohne ordnungsgemäße Codeüberprüfung zusammengeführt. Es kann funktionieren. Es gibt einen Grund , warum es Code genannt Geruch nicht „gebrochen Code“ oder etwas in diesem Sinne. Die fehlende Codeüberprüfung ist ein Warnsignal und kein Vorbote des Schicksals.
Die Lösung für dieses Problem ist, dass es keine Lösung für alle Fälle gibt, die wir in eine Antwort im StackExchange-Stil packen können. Es ist der starke Konsens der Softwareentwickler, dass die Codeüberprüfung eine entscheidende "Best Practice" darstellt und in diesem Fall übersprungen wird. Ihre Entwicklung ist nicht mehr in diesem engen Kanal von "Befolgen aller Best Practices". Sie müssen Ihren eigenen Weg finden.
Was ist überhaupt eine "Best Practice"? Wenn man es genau betrachtet, handelt es sich um eine Reihe von Praktiken, von denen die Leute im Allgemeinen denken, dass sie den Code besser machen. Machen sie den Code richtig? Mist nein! Das Internet ist übersät mit Geschichten von Unternehmen, die sich an "Best Practices" orientierten und sich dadurch stauen ließen. Vielleicht ist ein besserer Standpunkt zu "Best Practices", dass es sich um die "fire and forget" -Lösungen der Software-Welt handelt. Ich kann nichts über Ihr Unternehmen, Ihr Projekt, Ihr Team wissen und in der Lage sein, "Best Practices" als Dinge, die Ihnen helfen, abzuspielen. Sie sind die allgemeinen "keinen Schaden anrichten" Ratschläge.
Sie haben deutlich von diesem Plan abgewichen. Zum Glück erkennen Sie es. Gut gemacht! Sie sagen, Wissen ist die halbe Miete; wenn ja, ist das Bewusstsein weit über die Hälfte davon! Jetzt ist eine Lösung erforderlich. Aus Ihrer Beschreibung geht hervor, dass sich das Geschäftsumfeld, in dem Sie sich befinden, zu einem Punkt entwickelt hat, an dem der langweilige Ratschlag "Mach die Codeüberprüfung, es ist die beste Vorgehensweise" nichts mehr ändert. Hierfür empfehle ich eine wichtige Regel, die ich bei den Best Practices für Software verwende:
Kein bewährtes Verfahren für die Softwareentwicklung übertrifft die Anforderungen eines Unternehmens.
Ehrlich gesagt zahlen sie Ihren Gehaltsscheck, und das Überleben des Unternehmens ist in der Regel weitaus wichtiger als die Qualität der Software. Wir geben es nicht gerne zu, aber perfekt geschriebene Software ist nutzlos, wenn sie im Körper eines Unternehmens gefangen ist, das vor den Bemühungen um die Aufrechterhaltung dieser perfekt geschriebenen Software im Sterben liegt.
Also wohin gehst du? Folgen Sie der Spur der Gewalt. Sie haben darauf hingewiesen, dass es aus unerklärlichen Gründen unvernünftig ist, für eine Aufgabe eine Codeüberprüfung durchzuführen. Nach meiner Erfahrung ist dieser Grund immer zeitlich. Es ist immer entweder "nicht genug Zeit" oder "nicht genug Geld, um die Gehälter in Fluss zu halten, während Sie die Zeit verbringen." Das ist Geschäft; es ist in Ordnung. Wenn es einfach wäre, würde es jeder tun. Folgen Sie der Spur der Gewalt nach oben und finden Sie das Management, das in der Lage ist, Ihnen zu helfen, zu verstehen, warum eine Codeüberprüfung keine Option ist. Die Sprache ist schwer, und oft sickert ein Dekret vom oberen Management herunter und wird verzerrt. Die Lösung Ihres Problems liegt möglicherweise in dieser Verzerrung.
Die Antwort darauf ist notwendigerweise ein spezifisches Fallszenario. Es ist vergleichbar mit dem Versuch, vorherzusagen, ob ein Münzwurf Kopf oder Zahl ist. Die Best Practices besagen, dass es 100-mal gekippt werden muss und die Erwartung ungefähr 50 Köpfe und 50 Schwänze beträgt, aber Sie haben keine Zeit, es 1-mal zu kippen. Hier kommt es auf die Details Ihrer Situation an. Wussten Sie, dass eine Münze normalerweise in der gleichen Ausrichtung landet, in der sie in etwa 51% der Fälle geworfen wurde? Haben Sie sich die Zeit genommen, um zu beobachten, in welche Richtung die Münze geworfen wurde? Es könnte einen Unterschied machen.
Eine allgemeine Lösung, die Ihnen zur Verfügung stehen könnte, besteht darin, einen Weg zu finden, um den Codeüberprüfungsprozess zu entwickeln und ihn zu einem sehr geringen Kostenaufwand zu machen. Ein Großteil der Kosten eines Codeüberprüfungsprozesses besteht darin, dass sich jeder zu 100% der Codeüberprüfung widmet, während Sie dies tun. Dies muss der Fall sein, da der Code nach Abschluss der Codeüberprüfung gesegnet ist. Vielleicht können Sie den Code in einen anderen Zweig stellen und die Codeüberprüfung parallel zur Entwicklung auf dem Haupttrunk durchführen. Oder Sie können es sogar so einrichten, dass die Software die Tests für Sie durchführt. Vielleicht befinden Sie sich in einer Geschäftsumgebung, in der Ihre Kunden den "neuen" Code parallel zum alten ausführen und die Ergebnisse vergleichen lassen können. Dies macht die Kunden zu einer Reihe von Anwendungsfallerstellungsgeräten.
Ein Schlüssel zu all diesen laufenden "Maybes" ist, dass Sie sich bemühen sollten, Ihren Code leicht in Teile zu zerlegen. Möglicherweise können Sie Teile des Codes "beweisen", ohne sich auf eine formelle Codeüberprüfung verlassen zu müssen, indem Sie sie in weniger unternehmenskritischen Projekten verwenden. Es ist einfacher, dies zu tun, wenn sich die Änderungen in kleineren Teilen befinden, auch wenn die Gesamtsumme zu groß ist, um von Fachleuten begutachtet zu werden.
Suchen Sie im Allgemeinen nach Lösungen, die spezifisch für Ihr Projekt, Ihr Unternehmen und Ihr Team sind. Die allgemeine Antwort lautete "Best Practices". Da Sie diese nicht verwenden, sollten Sie dieses Mal nach maßgeschneiderten Lösungen für dieses Problem suchen. Das ist Geschäft. Wenn alles so laufen würde, wie wir es uns immer vorgestellt hatten, wäre es viel einfacher, Börsengänge zu bewerten, nicht wahr?
Wenn es schwierig ist, eine Codeüberprüfung zu ersetzen, denken Sie daran, dass es noch nie einen einzigen Code gab, von dem nachgewiesen wurde, dass er in einer Codeüberprüfung funktioniert. * Bei einer Codeüberprüfung können Sie nur auf den Code vertrauen und Korrekturen vornehmen bevor sie zum Problem werden. Diese beiden wertvollen Produkte einer Codeüberprüfung können auf andere Weise erworben werden. Die Codeüberprüfung hat nur einen anerkannten Wert dafür, besonders gut darin zu sein.
* Nun, fast: Der L4-Mikrokern hat vor einiger Zeit eine Codeüberprüfung durch ein automatisiertes Proof-System erhalten, das beweist, dass sein Code genau das tut, was in der Dokumentation angegeben ist, wenn er von einem konformen C ++ - Compiler kompiliert wird.