Was ist Codequalität?

Codequalität ist eine Möglichkeit, darüber zu sprechen, wie effizient, lesbar und nutzbar Code ist. Programmieren ist von Natur aus ergebnisoffen, und man kann ein und dasselbe Problem in ein und derselben Programmiersprache auf mehrere Arten lösen. Die Codequalität misst die Genauigkeit und Zuverlässigkeit von Code — aber die Fehlerfreiheit und Portierbarkeit ist nicht der einzige Maßstab für die Codequalität. Sie beinhaltet auch, wie entwicklerfreundlich der Code ist. Die Codequalität beschreibt auch, wie einfach es ist, den Code zu verstehen, zu ändern und gegebenenfalls wiederzuverwenden.

Warum ist Codequalität wichtig?

Sie können eine Softwarefunktion mit mehreren hundert Codezeilen oder nur mit ein paar Dutzend Zeilen schreiben. Ihr Ansatz könnte von einer Reihe von Dingen abhängen. Sie würden zum Beispiel Ihr Programmierparadigma in Betracht ziehen. Ebenfalls miteinbeziehen können Sie Ihre Entwurfsmuster, Ihren Problemlösungsansatz, die Fähigkeiten Ihrer Programmiersprache und die Verwendung externer Bibliotheken.

Die Codequalität steht für die Effizienz des Codes, nicht nur in Bezug auf seine Funktionalität, sondern auch in Bezug auf seine Lesbarkeit und sein langfristiges Management.

Ein Qualitätscode erleichtert allen die Arbeit, indem er Zeit und Ressourcen spart. Hier ist ein kurzer Überblick darüber, wem und wie es hilft:

  • Qualitätscode hilft Entwicklern, ihren eigenen Code zu lesen, darauf aufzubauen und zu überarbeiten
  • Er hilft anderen Entwicklern, den Code einer anderen Person zu verstehen und gemeinsam daran zu arbeiten
  • Er hilft dem Systemarchitekten oder Projektleiter, die Einhaltung der Struktur zu überprüfen und die Arbeitsanstrengungen des Teams zu koordinieren
  • Er hilft anderen Beteiligten in der Softwareentwicklung — wie Sicherheits- oder Betriebsteams —, den Code zu testen, bereitzustellen und zu sichern

Die Erfahrung im Laufe der Zeit hilft Entwicklern, ihre Codierungstechniken und -ansätze zu verfeinern, um qualitativ hochwertigen Code zu erstellen. 

Wie misst man die Codequalität?

Quantitative Kennzahlen zur Codequalität sind diskret und messbar. Ein Beispiel wäre die Anzahl der Fehler im Code einer Softwareanwendung, die 1.000 Stunden lang gelaufen ist.

Qualitative Kennzahlen zur Codequalität sind subjektiv und beschreibend. Beispielsweise kann ein erfahrener Entwickler die Arbeit eines Junior-Entwicklers überprüfen und Kommentare abgeben.

Durch die Kombination von quantitativen und qualitativen Bewertungen ist es möglich, das beste Maß für die Softwarequalität zu erreichen. Weitere Faktoren, die die Codequalität ausmachen, sind Dokumentation, Effizienz, Benutzerfreundlichkeit für Endbenutzer, Aktualität und Sicherheit.

Als Nächstes erläutern wir die sechs wichtigsten Messbereiche für die Codequalität.

Zuverlässig

Zuverlässiger Code wird bei jeder Ausführung wie dokumentiert ausgeführt. Zuverlässiger Code ist auch robust; er verarbeitet unerwartete Eingaben und Unterbrechungen ohne Abstürze oder andere schädliche Verhaltensweisen.

Um die Zuverlässigkeit zu messen, sollten Sie Metriken wie die Anzahl der Systemausfälle in einem bestimmten Zeitraum, die mittlere Zeit bis zum Ausfall und die Anzahl der bekannten Fehler verfolgen.

Erweiterbar

Eine Software mag jedes Mal perfekt laufen, aber was ist, wenn der Code ein wenig geändert werden muss?  Oder was ist, wenn er für die Entwicklung neuer Funktionen verwendet werden muss? Was ist, wenn der Entwickler, der den Code ursprünglich geschrieben hat, nicht mehr verfügbar ist?

Wenn der Code erweiterbar ist, ist es einfach, den Code zu aktualisieren oder zu ändern, nachdem er in den ursprünglichen Spezifikationen vollständig und korrekt ist. Hier sind Faktoren, die für erweiterbaren Code relevant sind:

  • Allgemeine Software-Architektur
  • Modularität
  • Einhaltung der Kodierungsstandards
  • Länge, Größe und Komplexität der Codebasis

Es gibt verschiedene Tools, z. B. statische Analysen und Abhängigkeitszuordnungen, mit denen diese Metriken bewertet werden können, nachdem sie die Codebasis gelesen haben.

Testbar

Ein Teil des Codes sollte einfach zu entwickeln und zu testen sein.

So ist es beispielsweise schwierig, Tests zu schreiben, die alle Szenarien abdecken, wenn eine einzelne Funktion mehrere logische Schritte enthält oder auf andere Teile der Software verweist. Im Gegensatz dazu erleichtert die Aufteilung der Software in logisch getrennte Einheiten oder Module das Testen.

Um die Testbarkeit zu messen, können Sie die folgenden Techniken verwenden:

  • Ordnen Sie Tests schriftlichen Anforderungen zu
  • Verwenden Sie Tools, die die Test-to-Code-Abdeckung untersuchen
  • Implementieren Sie zyklomatische Komplexitätstools wie Halstead-Komplexitätsmaße zur Bewertung der Codekomplexität

Die Entwickler können auch testgetriebene Entwicklungsparadigmen anwenden und regelmäßige manuelle Codeüberprüfungen durchführen, um die Testbarkeit zu verbessern.

Tragbar

Sie möchten vielleicht, dass es einfach ist, den Code aus einer Umgebung zu nehmen und ihn in einer anderen Umgebung wieder zum Laufen zu bringen. Wenn ja, können Sie die Portabilität messen.

Wenn Sie beispielsweise eine Android-App auf iOS portieren möchten, wie viel Arbeit wäre damit verbunden? Wenn Sie Code für plattformübergreifende Anwendungsfälle erstellen, wird die Portierung auf ein neues Zielsystem relativ einfach.

Die Portabilität hängt davon ab, wie eng der Code mit dem zugrunde liegenden Software- und Hardware-Zielsystem verknüpft ist. Für die Ausführung von eng gekoppeltem Code sind hochspezifische virtuelle Maschinen erforderlich.

Im Gegensatz dazu kann in Containern bereitgestellter Code in jeder Umgebung ausgeführt werden. In einigen Fällen kann ein vollständiger Code-Faktorwechsel erforderlich sein, um die Funktionalität vom Zielsystem zu entkoppeln. 

Wiederverwendbar

Hochwertiger Code ist modular und für die Wiederverwendung konzipiert. So könnte beispielsweise eine Funktion zum Hinzufügen von Aufgaben zu einer Aufgabenverfolgungsdatenbank in verschiedenen Teilen eines Softwareprojekts oder in einem ganz anderen Softwareprojekt wiederverwendet werden.

Softwarekomponenten, die für die Wiederverwendung konzipiert sind, sind häufig an APIs angehängt. APIs bieten eine Standardmethode, um mit der Funktionalität des wiederverwendbaren Codes zu kommunizieren, anstatt einfach eine Funktion zu kopieren und einzufügen.

Was sind einige Tipps zur Verbesserung der Codequalität?

Es gibt viele verschiedene Arten von Tools, mit denen die Codequalität überprüft und verbessert werden kann. Sie können beispielsweise Test-Frameworks und Tools für viele Zwecke verwenden:

  • Statische Code-Analyse
  • Softwareversionsverwaltung
  • Prüfungen des Codierungsstils
  • Codekomplexität und zyklomatische Komplexitätsprüfungen
  • Umfassende Testabdeckung
  • Leistungstests
  • Identitätsüberprüfung

Durch die Integration eines oder mehrerer Tools in den Softwareentwicklungszyklus wird es einfacher, mit jedem Projekt qualitativ hochwertigen Code zu erstellen. Stellen Sie sicher, dass Sie Tools in die integrierte Entwicklungsumgebung (IDE) integrieren, damit Entwickler von Anfang an qualitativ hochwertige Softwareprojekte erstellen können.

Sie können auch automatisierte Codequalitätsprüfungen und Tools zur Codeüberprüfung einbauen, die bei CI/CD-Ereignissen (Continuous Integration and Development) ausgelöst werden, z. B. beim Übertragen von Code in ein Git-Repository.

Als Nächstes folgen einige weitere Strategien zur Verbesserung der Codequalität.

Mehr über IDEs lesen »

Rezensionen

Automatisierung und spezielle Softwaretools helfen bei der Überprüfung der Codequalität, aber auch manuelle Codeprüfungen bieten Vorteile.

Bei der Paarprogrammierung überprüfen die Entwickler den Code des anderen, um Qualitätsprobleme zu erkennen, die bei der Einzelprogrammierung übersehen wurden. Sie können auf der Grundlage von Programmierparadigmen und Entwurfsmustern wie objektorientierter Programmierung, funktionaler Programmierung und Model-View-Controller-Pattern überprüfen.

Faktorwechsel

Nachdem Code-Qualitätstests und Code-Reviews minderwertigen Code in einer Codebasis identifiziert haben, können Sie den Code für einen Faktorwechsel kennzeichnen.

Beim Faktorwechsel wird derselbe Code so neu erstellt, dass er qualitativ hochwertiger oder leistungsfähiger ist. Der Code muss vor und nach dem Faktorwechsel gründlich getestet werden, um sicherzustellen, dass im Entwicklungsprozess keine Fehler auftreten.

Dokumentation

Um qualitativ hochwertigen Code zu erstellen, benötigen Sie eine qualitativ hochwertige Anforderungsdokumentation. In dieser Dokumentation sollten die Funktions-, Nichtfunktions- und Leistungsanforderungen des Systems konsistent und gründlich beschrieben werden. Diese Dokumente dienen als Leitfaden für effektives, gründliches Architekturdesign und Testen. 

Stilrichtlinen

Stilrichtlinien behandeln eine Reihe von Konventionen für die Entwicklung von Code. Diese Konventionen beziehen sich auf stilistische Aspekte wie Formatierung, Benennung und Einrückung. Zwar kann der Code auch dann laufen, wenn er nicht nach diesen Konventionen aufgebaut ist, doch sinkt die Qualität im Hinblick auf die Wartbarkeit.

Wenn sie sich an Stilrichtlinien wie PEP 8 von Python halten, können Entwickler Code erstellen, der von anderen Entwicklern gelesen und gepflegt werden kann.

Codierungsstandards

Codierungsstandards gehen über die grundlegenden stilistischen Konventionen der Stilrichtlinien hinaus. Sie werden eher zu Standardarbeitsanweisungen (SOPs) für die Codeentwicklung. Sie enthalten Richtlinien zu verwendenden Entwurfsmustern, Architekturregeln und zur Fehlerbehandlung.

Codierungsstandards können gemeinschaftsbasiert sein, wie etwa der SEI CERT C Coding Standard für sichere Kodierung. Sie können sie auch intern entwickeln, um sie speziell auf Ihr Unternehmen oder Ihre Projekte abzustimmen.

Sowohl Stilrichtlinien als auch Codierungsstandards helfen dabei, die Codequalität zu definieren, lange bevor ein Projekt überhaupt beginnt.

Wie kann AWS zur Verbesserung der Codequalität beitragen?

Amazon Web Services (AWS) bietet viele Lösungen, mit denen Entwickler Qualitätscode erstellen und die Codequalität messen können:

  • Amazon Q Developer unterstützt Entwickler und IT-Experten bei all ihren Aufgaben während des gesamten Lebenszyklus der Softwareentwicklung — von der Programmierung, dem Testen und Aktualisieren bis hin zur Fehlerbehebung, der Durchführung von Sicherheitsscans und -behebungen, der Optimierung von AWS-Ressourcen und der Erstellung von Data Engineering-Pipelines.
  • Amazon CodeGuru Security ist ein Tool zum Testen der statischen Anwendungssicherheit (SAST), das Machine Learning (ML) und Automated Reasoning kombiniert. Es identifiziert Schwachstellen im Code, gibt Empfehlungen zur Behebung der Schwachstellen und verfolgt den Status der Schwachstellen bis zur Schließung.
  • Amazon CodeGuru Profiler hilft Ihren Entwicklern, die teuersten Codezeilen einer Anwendung zu finden. Dies hilft ihnen, das Laufzeitverhalten ihrer Anwendungen zu verstehen. Sie können Code-Ineffizienzen identifizieren und beheben, die Leistung verbessern und die Rechenkosten erheblich senken. 
  • AWS Cloud9 ist eine cloudbasierte IDE, die die Software und Tools bereitstellt, die Sie für die Entwicklung in dynamischen Programmiersprachen benötigen. Zu diesen Sprachen gehören JavaScript, Python, PHP, Ruby, Go und C++.

Im AWS Marketplace können Sie auch aus mehreren Tools zur Codequalität für verschiedene Zwecke wählen.

Beginnen Sie mit der Erstellung von Qualitätscode in AWS, indem Sie noch heute ein Konto erstellen.

Nächste Schritte in AWS

Zusätzliche produktbezogene Ressourcen ansehen
Entwickler-Tools-Services ausprobieren 
Registrieren Sie sich und erhalten Sie ein kostenloses Konto

Sie erhalten sofort Zugriff auf das kostenlose Kontingent von AWS.

Registrieren 
Mit der Entwicklung in der Konsole starten

Starten Sie mit der Entwicklung in der AWS-Managementkonsole.

Anmelden