Um eine Vorstellung von der Qualität eines Projekts zu bekommen, das ich noch nie gesehen habe (normalerweise Open-Source-Projekte, über deren Verwendung ich nachdenke oder nicht), beginne ich häufig damit, zufällige Dateien zu öffnen und feine Details des Codes zu betrachten.
Ich suche Dinge wie:
- Stil (folgt er akzeptierten Konventionen für die Sprache und ist er konsistent)
- Qualität und Konsistenz der Kommentare
- Allgemeine sprachspezifische Fallstricke (z. B. konsequent nicht
===
in Javascript verwendet) - Sieht es logisch strukturiert aus ?
Ich finde, dies gibt mir eine gute Vorstellung von den Fähigkeiten der Entwickler, die den Code geschrieben haben, auch wenn ich absolut nichts darüber weiß, was der Code tun soll.
Halten die Leute das für nützlich? Was muss man berücksichtigen, um die Qualität der Codebasis eines Projekts schnell beurteilen zu können, vorausgesetzt, man weiß nicht, wie es tatsächlich funktioniert?
Antworten:
Wie einfach wäre es für mich, einen Fehler in diesem Code zu beheben?
Immer wenn ich auf eine neue Codebasis stoße, stelle ich mir diese Frage.
Wenn ich mich schnell mit dem Code vertraut mache, kann ich Gemeinsamkeiten mit den Entwicklern identifizieren, die ihn erstellt haben. Ich neige dazu, Folgendes zu suchen (in keiner bestimmten Reihenfolge):
Je mehr der oben genannten vorhanden sind, desto mehr Vertrauen habe ich in die Fähigkeiten und Erfahrungen der Entwickler, so dass bei der unvermeidlichen WTF?! Moment tritt ein Ich bin viel eher geneigt, nach einem Mangel an Verständnis für die Problemdomäne zu suchen, als anzunehmen, dass der ursprüngliche Entwickler einen Fehler gemacht hat.
quelle
Wenn Sie nur eine Auswahl treffen, machen Sie es wahrscheinlich falsch. :) Abgesehen davon handelt es sich im Wesentlichen um eine Zufallsstichprobe , ein ziemlich seriöser Ansatz, um in Fällen, wie Sie sie beschreiben, Informationen zu sammeln. Weitere wissenschaftliche Details dazu finden Sie in der Monte-Carlo-Methode .
In Bezug auf Dinge zu suchen, denken Sie daran zu finden, zu studieren und an Ihre spezifischen Schneiderei braucht einige altbewährte Code-Review - Checkliste.
Einige andere Aspekte, die bei der Bewertung eines Projekts berücksichtigt werden sollten, sind nachstehend aufgeführt ( Checkliste zusammengefasst aus meinen bisherigen Erfahrungen ):
Releases (zusammen mit Changelog), Versionierung und Veröffentlichungsdisziplin
Es ist im Allgemeinen viel einfacher, Probleme zu untersuchen, wenn man feststellt, dass in Release 1.2.3 ein Fehler gefunden wurde, der zum Download verfügbar ist,
some URL
als vor zwei Jahren, als mir jemand eine E-Mail mit angehängter Binärdatei gesendet hat .Entwicklerdokumentation, API-Referenz und Codebeispiele
Hilft zu vermeiden, dass das Rad neu erfunden und die Grundlagen durch Ausprobieren erlernt werden.
Beachten Sie, dass diese für eine schnelle Studie auch zufällig ausgewählt werden können .
Fehlerverfolgung
Wenn es überhaupt keine Verfolgung gibt, ist dies eine große rote Fahne. Wenn es eine gibt, sollten Sie sie schnell mit demselben Zufallsstichprobenverfahren wie für den Quellcode überprüfen
Positives Feedback
Informieren Sie sich über Projektbenutzer und versuchen Sie, eine zufällige Stichprobe ihres Feedbacks zu erstellen.
quelle
Ich denke, diese Methode zeigt eher Styling-Fähigkeiten und die Fähigkeit, Code lesbar zu machen, aber sie sagt nichts über logische, analytische Fähigkeiten zur Problemlösung der Entwickler aus, die an dem Code arbeiten.
Wenn Sie also Code auf diese Weise analysieren, erhalten Sie nur Informationen darüber, wie "gut" der Code aussieht und ob er lesbar ist oder nicht. Sie haben jedoch noch keine Ahnung, ob der Code optimiert ist, ob er gut funktioniert, ob er gut strukturiert ist usw.
Die Eigenschaften, auf die Sie achten, sind sehr wichtig. Sie zeigen, ob der Code lesbar und wartbar ist. Aber es gibt viele Programmierer, die hervorragende Lösungen anbieten, aber nicht wirklich auf Kommentare und Styling achten (was meiner Meinung nach viel einfacher zu lernen ist als das Programmieren selbst).
quelle
Ja, ich denke das ist eine gute Idee. Projekte, die schlecht geschrieben sind, werden eher abgebrochen.
Aber stützen Sie Ihre Entscheidung nicht nur darauf. Imho Quellcode-Verlauf und Anzahl der Committer sind ein weitaus wichtigerer Faktor.
quelle
Ich denke, kleine Codeabschnitte zu betrachten ist eine großartige Möglichkeit - wenn sie gut codiert sind, Variablen / Klassen / Methoden gut benannt sind und gut kommentiert sind, sollte es einfach sein zu verstehen, was ein kleiner Abschnitt tut und wozu er dient. Wenn Sie große Schwierigkeiten haben, einen kleinen Block zu verstehen (wie alles, was von Klammer zu Klammer geht), ist er wahrscheinlich nicht so gut codiert.
quelle
Wenn die Stichproben nicht zahlreich und groß sind, besteht eine sehr gute Chance, dass Sie keinen guten Querschnitt der Codebasis erhalten. Sie könnten entweder leicht mit den wenigen guten Stücken oder den wenigen schlechten Äpfeln enden.
quelle