Werbung
Ohne Zweifel ist die Programmierung schwierig. Es ist eine Sache zu Sprachen lernen und studieren Algorithmen, aber es ist ein ganz anderes Biest, das versucht, eine komplexe Arbeitsanwendung zu codieren, die Sie nicht dazu bringt, sich die Augen aus dem Kopf zu kratzen.
In gewisser Weise ähnelt das Schreiben von sauberem Code dem Zeichnen, Kochen oder Fotografieren - es sieht einfacher aus als es tatsächlich ist. Wieso sich die Mühe machen? Nun, weil sich die Vorteile lohnen:
- Probleme werden leichter zu lösen. Sobald Sie anfangen, in sauberem Code zu denken, ändert sich Ihr Ansatz zur Problemlösung. Anstatt Brute-Forcing-Lösungen zu entwickeln, werden Ihre Algorithmen und Ihr Software-Design eleganter und zielgerichteter.
- Bei der Wartung wird weniger Zeit verschwendet. Sauberer Code ist leichter zu lesen und zu verstehen, sodass Sie weniger Zeit damit verbringen, herauszufinden, was bestimmte Segmente tatsächlich tun, und mehr Zeit damit, Fehler zu beheben, zu überarbeiten, zu erweitern usw.
- Ideen werden klarer kommuniziert. Wenn Sie mit anderen Programmierern zusammenarbeiten, verringert sauberer Code die Wahrscheinlichkeit von Missverständnissen zwischen Ihnen allen, was auf lange Sicht auch weniger Fehler bedeutet.
So können Sie mit dem Schreiben von sauberem Code beginnen.
1. Verwenden Sie beschreibende Namen
Was sind Variablen, Klassen und Funktionen? Es gibt viele Möglichkeiten, dies zu beantworten, aber wenn Sie wirklich darüber nachdenken, sind diese Dinge nichts anderes als die Schnittstelle zwischen einem Programmierer und der zugrunde liegenden Logik einer Anwendung.
Wenn Sie also unklare und unbeschreibliche Namen für Variablen, Klassen und Funktionen verwenden, Sie verschleiern im Wesentlichen die Anwendungslogik von jedem Programmierer, der den Code liest, auch dich selbst.
"Ich bin kein großartiger Programmierer. Ich bin nur ein guter Programmierer mit großartigen Gewohnheiten. "
- Kent Beck
Was macht eine Variable namens dxy
eigentlich gemeint? Wer weiß. Sie müssten wahrscheinlich den gesamten Codeabschnitt lesen, um seine Bedeutung rückzuentwickeln. Auf der anderen Seite ist die Bedeutung einer Variablen wie distanceBetweenXY
ist sofort erkennbar.
Gleiches gilt für Klassen und Funktionen. Geben Sie sich nicht damit zufrieden CalcTan ()
wenn du gehen kannst CalculateTangent ()
oder CalcTangentAngle ()
stattdessen.
2. Geben Sie jeder Klasse / Funktion einen Zweck
Haben Sie jemals einen Blick in eine Funktion geworfen, die Hunderte oder sogar Tausende von Zeilen lang war? Wenn ja, dann wissen Sie, wie schmerzhaft es sein kann, zu stöbern, zu verstehen und zu bearbeiten. Kommentare können helfen, aber nur in begrenztem Umfang.
"Das Programmieren unterteilt eine große unmögliche Aufgabe in mehrere kleine mögliche Aufgaben."
- Jazzwant
Sauberer Code wird in atomare Teile zerlegt. Jede Funktion sollte darauf abzielen, eine einzige Sache zu tun, und jede Klasse sollte darauf abzielen, ein bestimmtes Konzept darzustellen. Dies ist natürlich eine Vereinfachung, aber im Zweifelsfall ist einfacher sauberer.
In der Praxis mag eine komplexe Berechnung GetCreditScore ()
Möglicherweise muss in mehrere Hilfsfunktionen wie unterteilt werden GetCreditReports ()
, ApplyCreditHistoryAge ()
, und FilterOutstandingMarks ()
.
3. Unnötigen Code löschen
Mit dieser schlechten Angewohnheit habe ich immer noch von Zeit zu Zeit zu kämpfen. Normalerweise passiert das so: Ich möchte einen Teil des Codes reparieren oder optimieren, also kommentiere ich ihn aus und schreibe ihn direkt darunter neu - und obwohl er funktioniert, behalte ich den alten Code für alle Fälle dort.
"Ist es möglich, dass Software nichts anderes ist, dass sie weggeworfen werden soll: dass es darum geht, sie immer als Seifenblase zu sehen?"
- Alan J. Perlis
Im Laufe der Zeit sammle ich eine Menge auskommentierter Codeblöcke, die nicht mehr benötigt werden und meine Quelldateien überladen. Und das Lustige ist, dass sich der umgebende Code in vielen Fällen weiterentwickelt hat, sodass der auskommentierte Code selbst bei Wiederherstellung nicht funktioniert.
Die Sache ist, dass diese Praxis des Kommentierens von „Sicherungscode“ durch die Quellcodeverwaltung überholt wurde. Wenn Sie so etwas wie Git oder Mercurial nicht verwenden, müssen Sie Verwenden Sie sofort die Quellcodeverwaltung. Sauberer Code erwartet Sie.
Denken Sie daran, dass es auch wichtig ist, das Schreiben von sich wiederholendem Code zu vermeiden, was Sie mit einem Webframework problemlos erreichen können. Hier sind ein paar Web-Frameworks, die es wert sind, als Entwickler erlernt zu werden 5 Web Frameworks, die es wert sind, für Entwickler gelernt zu werdenMöchten Sie fortgeschrittene Webentwicklung lernen? Vermeiden Sie es, sich wiederholenden Code zu schreiben, indem Sie stattdessen diese Webentwicklungs-Frameworks verwenden. Weiterlesen .
4. Lesbarkeit> Cleverness
Zu viele Programmierer verbinden „sauberen Code“ mit „cleverem Code“, als wäre es irgendwie sauberer, zehn Zeilen zu einer zu komprimieren. Sicher, es nimmt weniger Platz auf dem Bildschirm ein, aber ist es tatsächlich einfacher zu verstehen? Manchmal vielleicht. Aber die meiste Zeit? Nein.
„Jeder weiß, dass das Debuggen doppelt so schwierig ist wie das Schreiben eines Programms. Also, wenn Sie beim Schreiben so schlau wie möglich sind, wie werden Sie es jemals debuggen? "
- Brian W. Kernighan
Ich denke, Programmierer lieben cleveren Code, weil er sich wie ein gelöstes Rätsel oder Rätsel anfühlt. Sie haben eine spezielle und einzigartige Möglichkeit gefunden, etwas zu implementieren - eine „Abkürzung“, wenn Sie so wollen - und sie dient fast als Bestätigung der Fähigkeiten des Programmierers.
Aber um sauberen Code zu schreiben, müssen Sie Ihr Ego an der Tür lassen.
Optimieren Sie den Code immer für die nächste Person, die ihn lesen wird, da dies höchstwahrscheinlich die nächste Person ist Sie werden tatsächlich SIE sein und es gibt nichts Schändlicheres, als Ihre eigenen nicht lesen oder verstehen zu können Klugheit.
5. Behalten Sie einen konsistenten Codierungsstil bei
ich habe nichts gegen gute Programmier-Tutorials Was macht ein gutes Programmier-Tutorial aus?Nicht alle Programmier-Tutorials sind gleich. Einige kommen Ihnen und anderen zugute und verschwenden Ihre Zeit. Hier ist, worauf Sie in einem hochwertigen Programmier-Tutorial achten sollten. Weiterlesen Einer der Nachteile ist jedoch, dass Neulinge am Ende eine Vielzahl widersprüchlicher Gewohnheiten aufgreifen, insbesondere was den Codierungsstil betrifft.
Ich bin nicht hier, um zu erklären, dass ein Stil besser ist als ein anderer. Wenn Sie Zahnspangen in ihren eigenen Linien wollen, machen Sie es. Wenn Sie Methodenaufrufen Leerzeichen voranstellen möchten, ist dies in Ordnung. Wenn Sie Tabulatoren Leerzeichen vorziehen, lassen Sie sich nicht von mir überzeugen.
Aber was auch immer Sie tun, bleiben Sie konsequent!
Schön ist besser als hässlich.
Explizit ist besser als implizit.
Einfach ist besser als komplex.
Komplex ist besser als kompliziert.
Wohnung ist besser als verschachtelt.
Spärlich ist besser als dicht.
Lesbarkeit zählt.
- Tim Peters, Das Zen von Python
Wenn Sie verwenden möchten camelCaseNaming
Verfälschen Sie Variablen nicht mit underscore_naming
. Wenn du benutzt GetThisObject ()
an einem Ort, geh nicht mit FetchThatObject ()
irgendwo anders. Und wenn Sie Tabulatoren und Leerzeichen mischen, haben Sie es verdient, dass Ihre Tastatur entfernt wird.
Entscheiden Sie von Anfang an, was Sie tun möchten, und bleiben Sie durch und durch dabei. Einige Sprachen, wie Python und C #, verfügen über sprachweite Stilrichtlinien, denen Sie möglicherweise folgen möchten.
6. Wählen Sie die richtige Architektur
Es gibt viele verschiedene Paradigmen und Architekturen, mit denen Sie Ihre Projekte erstellen können. Beachten Sie, wie in diesem Tipp die Auswahl der Recht eine für Ihre Bedürfnisse, nicht über die Auswahl der Beste einer da draußen. Hier gibt es kein "Bestes".
"Ohne Anforderungen und Design ist das Programmieren die Kunst, einer leeren Textdatei Fehler hinzuzufügen."
- Louis Srygley
Beispielsweise ist das MVC-Muster (Model-View-Controller) derzeit in der Webentwicklung sehr beliebt, da es dazu beiträgt, Ihren Code so zu organisieren und zu gestalten, dass der Wartungsaufwand minimiert wird.
In ähnlicher Weise ist das ECS-Muster (Entity-Component-System) derzeit in der Spieleentwicklung sehr beliebt, da es hilft bei der Modularisierung von Spieldaten und -logik auf eine Weise, die die Wartung erleichtert und gleichzeitig Code erzeugt, der einfacher zu handhaben ist lesen.
7. Beherrsche die Redewendungen der Sprache
Eine der Schwierigkeiten in Beherrschung einer neuen Programmiersprache 7 Nützliche Tricks zum Erlernen einer neuen ProgrammierspracheEs ist in Ordnung, überwältigt zu sein, wenn Sie das Codieren lernen. Sie werden die Dinge wahrscheinlich so schnell vergessen, wie Sie sie lernen. Diese Tipps können Ihnen helfen, all diese neuen Informationen besser zu speichern. Weiterlesen lernt die Nuancen, die es von allen anderen Sprachen trennen. Diese Nuancen können den Unterschied zwischen hässlichem, verschlungenem Code und schönem, einfach zu wartendem Code ausmachen.
Betrachten Sie Python, Java und JavaScript. Sie unterscheiden sich alle extrem voneinander in einem Maße, das a Unterschiedliche Denkweise, je nachdem, welche Sprache Sie verwenden.
"Eine Sprache, die Ihre Meinung zum Programmieren nicht beeinflusst, ist nicht wissenswert."
- Alan J. Perlis
Während es in Python nur um kompakten Code und das Eingeben von Enten geht, ist Java eher auf der Seite der Ausführlichkeit und der Aussagekraft. Jede Sprache hat Redewendungen (wie Listenverständnisse in Python), die eine bestimmte Art der Codierung fördern. Sie sollten sie gut lernen.
Es gibt auch „Anti-Patterns“, über die man sich Sorgen machen muss. Dies sind im Wesentlichen suboptimale Entwurfsmuster, die zu ineffizientem, unzuverlässigem oder auf andere Weise schlechtem Code führen. Studieren und verlernen Sie alle gängigen Anti-Muster in Bezug auf die Sprache Ihrer Wahl.
8. Studiere den Code of Masters
Wenn Sie sauberen Code schreiben möchten, können Sie am besten sehen, wie sauberer Code aussieht, und es versuchen Verstehen Sie, warum es so ist, wie es ist - und es gibt keinen besseren Weg, dies zu tun, als die Quelldateien von zu studieren Industriemeister.
Natürlich können Sie nicht einfach in die Microsoft-Zentrale gehen und einen Blick auf deren Projekte werfen, sondern immer Durchsuchen Sie bekannte Open-Source-Projekte Anzeigen und Bearbeiten des Quellcodes einer Open Source-AppOpen Source ist zwar eine gute Wahl, aber Sie müssen auch in die richtige Community investieren. GitHub ist einer der besten Orte, um dies zu tun, nicht nur wegen der Menge ... Weiterlesen . Sie wissen nicht, wo Sie anfangen sollen? Probieren Sie die präsentierte Projekte auf Github.
„Jeder Dummkopf kann Code schreiben, den ein Computer verstehen kann. Gute Programmierer schreiben Code, den Menschen verstehen können. “
- Martin Fowler, Refactoring: Verbesserung des Designs vorhandenen Codes
Das ist schließlich einer der Gründe warum es Open-Source-Projekte gibt Warum tragen Menschen zu Open Source-Projekten bei?Open Source-Entwicklung ist die Zukunft der Software. Es ist großartig für Benutzer, da Open Source-Software normalerweise kostenlos verfügbar ist und oft sicherer zu verwenden ist. Aber was zwingt Entwickler dazu, Code kostenlos beizusteuern? Weiterlesen : damit andere von ihnen lernen können. Und wenn Sie sich entscheiden, zu einem solchen Projekt beizutragen, es kann den Lernprozess beschleunigen 5 Projektideen, mit denen Sie die Programmierung schneller erlernen könnenEs gibt einige Möglichkeiten, die Lernkurve für das Programmieren zu vereinfachen. Machen Sie sich die Hände schmutzig und lernen Sie schneller mit Nebenprojekten, die Sie jederzeit starten können. Spielen Sie mit diesen fünf herum. Weiterlesen .
Persönlich sah ich zum ersten Mal wirklich sauberen Code, als ich auf das Open-Source-Python-Projekt eines bestimmten Hobbyisten stieß. Der Code war so überwältigend elegant, dass ich fast mit dem Programmieren aufgehört hätte, aber am Ende hat er mir viel beigebracht.
9. Schreiben Sie gute Kommentare
"Gute Kommentare schreiben" ist der älteste Ratschlag in der Welt der Programmierung. Sobald Neulinge in Kommentare eingeführt werden, werden sie dazu ermutigt, so oft wie möglich zu kommentieren.
Aber es fühlt sich fast so an, als wären wir zu weit in die entgegengesetzte Richtung geschwungen. Insbesondere Neulinge neigen dazu, zu viel zu kommentieren - sie beschreiben Dinge, die nicht beschrieben werden müssen, und verfehlen den Punkt, was ein „guter Kommentar“ eigentlich ist.
"Codieren Sie immer so, als wäre der Typ, der Ihren Code verwaltet, ein gewalttätiger Psychopath, der weiß, wo Sie leben."
- John Woods
Hier ist eine gute Faustregel: Es gibt Kommentare, um zu erklären, WARUM ein Code existiert, und nicht, WAS der Code tatsächlich tut. Wenn der Code sauber genug geschrieben ist, sollte er selbsterklärend sein - der Kommentar sollte Aufschluss über die Absicht geben, warum er geschrieben wurde.
Kommentare können für Warnungen hilfreich sein (d. H. "Wenn Sie diese entfernen, werden A, B und C beschädigt"), sollten dies jedoch größtenteils tun Entdecken Sie Dinge, die nicht sofort aus dem Code entnommen werden können (d. h. "Verwenden Sie diesen Parameter, weil X, Y und Z ”).
10. Refactor, Refactor, Refactor
So wie das Bearbeiten Teil des Schreibprozesses ist, ist das Refactoring Teil des Codierungsprozesses. Eine Abneigung gegen Refactoring ist der schnellste Weg, um zu nicht wartbarem Code zu gelangen. In vielerlei Hinsicht ist dies tatsächlich der wichtigste zu berücksichtigende Tipp.
Kurz gesagt, Refactoring ist nur ein ausgefallener Begriff, um den Code zu bereinigen, ohne sein tatsächliches Verhalten zu beeinträchtigen.
"Wann immer ich darüber nachdenken muss, um zu verstehen, was der Code tut, frage ich mich, ob ich den Code umgestalten kann, um dieses Verständnis sofort deutlicher zu machen."
- Martin Fowler, Refactoring: Verbesserung des Designs vorhandenen Codes
Ein bisschen Weisheit, das mir aufgefallen ist, ist das Sprichwort: "Kommentiere keinen schlechten Code. Schreiben Sie es neu. " Wie Fowler im obigen Zitat erklärt, müssen Sie den Code möglicherweise tatsächlich umgestalten, wenn er sich jemals so verwirrend anfühlt, dass Sie ihn kommentieren müssen.
Wenn Sie hier und da während Ihres Projekts Codebits bearbeiten, Lassen Sie den Code immer in einem besseren Zustand als beim ersten Auffinden. Es mag im Moment wie ein Ärgernis erscheinen, aber es wird sich auf lange Sicht auszahlen (und kann sogar geistiges Burnout abwehren Burnout programmieren: So gewinnen Sie Ihre verlorene Motivation zurückDas Schreiben all dieser Codezeilen kann physisch und emotional anstrengend sein. Alles, was Sie brauchen, um wieder aufzustehen, ist das Bewusstsein, dass die Motivation wieder hergestellt werden kann. Weiterlesen ).
Es gibt immer etwas Neues zu lernen
Ein Programmierer, der lernt, wie man sauberen Code schreibt, ähnelt einem Romanautor, der lernt, wie man saubere Prosa schreibt: Es gibt keinen richtigen Weg, dies an sich zu tun, aber es gibt viele falsche Wege, und es wird Jahre dauern, bis es soweit ist Meister.
Einige Leute haben nicht das Zeug dazu und Am Ende wird die Programmierung endgültig beendet 6 Anzeichen dafür, dass Sie kein Programmierer sein sollenNicht jeder ist darauf ausgelegt, Programmierer zu sein. Wenn Sie nicht ganz sicher sind, ob Sie ein Programmierer sein sollen, finden Sie hier einige Hinweise, die Sie möglicherweise in die richtige Richtung weisen. Weiterlesen - und das ist in Ordnung, weil es viele gibt andere technische Jobs, bei denen es nicht um Codierung geht Codierung ist nicht jedermanns Sache: 9 technische Jobs, die Sie ohne sie bekommen könnenLassen Sie sich nicht entmutigen, wenn Sie Teil des Technologiebereichs sein möchten. Es gibt viele Jobs für Leute ohne Programmierkenntnisse! Weiterlesen . Aber für alle anderen ist sauberer Code etwas, das es absolut wert ist, angestrebt zu werden, auch wenn es den Rest Ihres Lebens braucht, um dorthin zu gelangen.
Joel Lee hat einen B.S. in Informatik und über sechs Jahre Berufserfahrung im Schreiben. Er ist Chefredakteur von MakeUseOf.