Heim > Artikel > Backend-Entwicklung > 5 Erkenntnisse aus der Codeüberprüfung
Wir hören oft, dass Teammitglieder sagen:
„Die Codeüberprüfung dieses Projekts ist Zeitverschwendung.“
„Ich habe keine Zeit für die Codeüberprüfung.“
„Der Start verzögert sich, weil mein gemeiner Kollege meinen Code noch nicht überprüft hat.“
„Kannst du glauben, dass mein Kollege mich gebeten hat, meinen Code zu ändern? Muss der Code noch geändert werden? „
Warum müssen wir eine Codeüberprüfung durchführen?
Eines der wichtigsten Ziele eines jeden professionellen Softwareentwicklers ist es, die Qualität seiner Arbeit kontinuierlich zu verbessern. Aber nur durch Teamarbeit können wir unsere Anstrengungen auf einen Punkt konzentrieren und die Softwarequalität verbessern. Codeüberprüfungen sind eine der wichtigsten Möglichkeiten, dieses Ziel zu erreichen. Insbesondere können Codeüberprüfungen:
Defekte und bessere Lösungen aus einer anderen Perspektive entdecken.
Stellen Sie sicher, dass mindestens eine weitere Person mit Ihrem Code vertraut ist.
Helfen Sie dabei, neue Mitarbeiter zu schulen, indem Sie den Code erfahrener Entwickler durchgehen.
Wissensaustausch fördern.
Motivieren Sie Entwickler, besseren Code zu schreiben und Probleme im Code zu lösen, um zu vermeiden, dass sie bei der Überprüfung von anderen erwischt werden.
Die Codeüberprüfung muss gründlich sein.
Wenn Sie jedoch nicht wirklich Zeit und Energie in die gründliche Codeüberprüfung investieren können, ist das oben genannte Ziel schwer zu erreichen.
Meiner Meinung nach sollten etwa 25 % der ursprünglichen Entwicklungszeit für die Codeüberprüfung aufgewendet werden. Wenn ein Entwickler beispielsweise zwei Tage braucht, um ein Programm zu implementieren, sollte die Überprüfung etwa vier Stunden dauern.
Natürlich ist die Zeit nicht das Wichtigste, der Schlüssel liegt darin, ob Sie den Code richtig überprüfen können. Sie müssen den Code verstehen, den Sie überprüfen. Das bedeutet, dass Sie nicht nur die Syntax kennen müssen, sondern auch verstehen müssen, wie der Code in den Kontext der Anwendung passt und Teil einer Komponente oder Bibliothek wird. Wenn Sie die Bedeutung jeder Codezeile nicht verstehen können, ist Ihre Rezension nicht ausreichend und nicht sehr wertvoll. Aus diesem Grund ist es meist unmöglich, gut durchgeführte Codeüberprüfungen schnell abzuschließen: Denn wir brauchen Zeit, um die verschiedenen Codes zu studieren, die eine bestimmte Funktion auslösen, um sicherzustellen, dass die Drittanbieter-API korrekt verwendet wird.
Bei der Überprüfung sollten Sie neben der Suche nach Codefehlern und anderen Problemen auch Folgendes sicherstellen:
Alle erforderlichen Tests einbeziehen.
Eine entsprechende Designdokumentation wurde erstellt.
Selbst Entwickler, die gut darin sind, Tests und Dokumentation zu schreiben, vergessen oft, ihren Code zu aktualisieren, wenn sie ihn ändern. Codeüberprüfungen sollen sicherstellen, dass diese Informationen nicht mit der Zeit unbrauchbar werden.
Vermeiden Sie übermäßige Codeüberprüfungen
Entwickler sollten daran arbeiten, den Rückstand an Überprüfungsaufgaben zu beseitigen. Eine Möglichkeit, dies zu tun, besteht darin, morgens eine Codeüberprüfung durchzuführen und die Überprüfung durchzuführen, bevor Sie mit Ihrer eigenen Entwicklungsarbeit beginnen. Natürlich können Sie den Code auch vor oder nach dem Mittagessen oder am Ende des Tages überprüfen. Alles in allem sollten Sie Code als Teil Ihrer täglichen Arbeit und nicht als Belastung betrachten, also sollten Sie Folgendes vermeiden:
Keine Zeit, sich mit einem Rückstand an Überprüfungsaufgaben zu befassen.
Verzögerte Veröffentlichung aufgrund unvollständiger Überprüfung.
Es ist dumm, den irrelevanten Code noch einmal zu überprüfen. Nachdem er Ihnen übergeben wurde, wurde er bis zur Unkenntlichkeit verändert.
Aus Zeitgründen habe ich es eilig gemacht.
Schreiben Sie überprüfbaren Code
Prüfer sind nicht die einzigen, die für das Problem verantwortlich sind, dass der Code-Rückstand außer Kontrolle gerät. Wenn Ihr Kollege beispielsweise eine Woche damit verbracht hat, unordentlichen Code zu einem großen Programm hinzuzufügen, wird es schwierig, den veröffentlichten Patch zu überprüfen, und es wird zu viel Inhalt geben, um ihn zu verstehen und zu vertiefen. Selbst der Zweck und die Grundstruktur des Codes sind unklar. Das ist nicht das, was das Schreiben von Code bewirkt.
Bevor Sie überprüfbaren Code schreiben, müssen Sie einige Vorbereitungen treffen. Wenn Sie schwierige architektonische Entscheidungen treffen müssen, besprechen Sie diese am besten zuerst mit dem Gutachter. Dadurch wird Ihr Code einfacher zu überprüfen und zu verstehen, da sie bereits im Voraus wissen, was Sie erreichen möchten und wie Sie dies erreichen möchten. Dies verhindert auch, dass Sie einen großen Teil Ihres Codes neu schreiben müssen, wenn ein Prüfer später einen völlig anderen und besseren Ansatz vorschlägt.
Die Projektarchitektur sollte im Designdokument detailliert beschrieben werden. Dies ist wichtig, da es neuen Projektmitarbeitern ermöglicht, die vorhandene Codebasis schneller zu verstehen, und auch Prüfern dabei hilft, ihre Arbeit besser zu erledigen. Darüber hinaus können Prüfer durch Unit-Tests die Verwendung einzelner Komponenten besser verstehen.
Wenn Ihr Patch auch Code von Drittanbietern enthält, reichen Sie ihn separat ein. Stellen Sie sich vor, wenn 9.000 Zeilen jQuery in die Mitte des Codes eingefügt würden, würde dies die Überprüfung erheblich erschweren?
Einer der wichtigsten Schritte beim Erstellen von überprüfbarem Code ist das Kommentieren Ihrer Codeüberprüfungen. Dazu müssen Sie es selbst vorab überprüfen und dann Kommentare hinzufügen, wenn Sie glauben, dass es dem Rezensenten hilft, es zu verstehen. Ich habe festgestellt, dass Codeüberprüfungen nach Kommentaren relativ wenig Zeit in Anspruch nehmen (normalerweise nur ein paar Minuten). Natürlich sollten gegebenenfalls weiterhin Codekommentare verwendet werden. Darüber hinaus zeigen Untersuchungen, dass Entwickler beim Kommentieren von Code selbst viele vorhandene Fehler finden.
Code-Refactoring
Manchmal müssen wir unsere Codebasis umgestalten. Wenn Sie auf eine große Anwendung stoßen, kann es mehrere Tage (oder länger) dauern und eine große Anzahl von Patches generieren. In diesem Fall kann es unpraktisch sein, einen Standardprozess für die Codeüberprüfung zu implementieren.
Die beste Lösung besteht darin, den Code schrittweise umzugestalten. Geben Sie zunächst einen angemessenen Umfang an, bestimmen Sie die entsprechende Codebasis und führen Sie dann eine Korrektur und Rekonstruktion in die Zielrichtung durch. Nachdem der erste Teil fertig ist, überprüfen und veröffentlichen Sie ihn und überarbeiten Sie dann den zweiten Teil ... bis alles fertig ist. Dieser abgestufte Ansatz ist möglicherweise nicht immer möglich, aber wenn wir diesen Ansatz in unserem Denken und Planen verwenden, können wir beim Refactoring große monolithische Patches vermeiden. Natürlich erfordert dieser Ansatz möglicherweise mehr Refactoring-Zeit, führt aber auch zu einer höheren Qualität des Codes und einem einfacheren Überprüfungsprozess.
Wenn eine inkrementelle Umgestaltung des Codes immer noch nicht möglich ist, dann ist die Paarprogrammierung eine andere Lösung.
Streitbeilegung
Es besteht kein Zweifel daran, dass jedes Mitglied des Teams ein Talent ist, aber das kann bei bestimmten Codierungsproblemen leicht zu Meinungsverschiedenheiten führen. Als Entwickler sollten wir aufgeschlossen bleiben und bereit sein, unterschiedliche Meinungen von Rezensenten zu akzeptieren.
Als Rezensent sollten Sie taktvoll sprechen. Bevor Sie einen Vorschlag machen, überlegen Sie, ob Ihre Meinung wirklich besser ist oder nur eine Frage eines anderen Geschmacks. Wenn Sie einen Codebereich auswählen, der wirklich verbessert werden muss, wird der gesamte Überzeugungsprozess viel einfacher. Und die Worte sollten so lauten: „Hier lohnt es sich, darüber nachzudenken …“, „Jemand hat vorgeschlagen …“ und nicht „Der Algorithmus, den ich mit geschlossenen Augen geschrieben habe, kann effizienter sein als Ihrer.“ 🎜>