Ich bin ein Anfänger in der Programmierung, und wenn ich an meinen eigenen Projekten arbeite, habe ich oft das Gefühl, dass das Design meines Codes nicht das Beste ist, was es sein könnte, und ich hasse dieses Gefühl. Am Ende verbringe ich Zeit damit, Dinge nachzuschlagen, aber dann werde ich leicht von vielen Details überwältigt, z. Soll ich versuchen, ein bisschen von allem auf einmal zu lernen?
code-quality
Chris Bui
quelle
quelle
Antworten:
Ein paar Vorschläge:
Verwenden Kapselung , um die Komplexität zu verwalten, indem Sie die Funktionalität in verschiedene Bausteine unterteilen. Beweisen Sie, dass jeder Block funktioniert (durch Unit-Tests), und Sie können ihn verwenden, ohne sich um seine inneren Details kümmern zu müssen.
Lernen und lernen Softwaremuster . Softwaremuster sind bewährte Methoden zur Ausführung bestimmter allgemein bekannter Aufgaben.
Studiere und verstehe Datenstrukturen . Lernen Sie die geeigneten Verwendungen und Leistungsmerkmale für jeden Datenstrukturtyp kennen.
Kennen Sie Ihre Programmiersprache gut, kennen Sie ihre Stärken und Schwächen und wissen Sie, wie Sie ihre Funktionen am besten nutzen.
Sie müssen nicht alles auf einmal wissen, aber Sie sollten alles im Laufe der Zeit studieren.
quelle
Mein Rat ist: Hör auf, dir Sorgen zu machen.
Erfahrung ist der beste Lehrer, und Sie erhalten keine Erfahrung, wenn Sie keinen Code schreiben. Auch schlecht gestalteter Code, wird geschrieben ist besser als großer Entwurf, ist nicht .
Schreiben Sie also mehr Code. Beenden Sie Ihre Projekte. Das Gefühl, dass der Code nicht ideal ist, ist wahrscheinlich richtig. Und Sie werden wahrscheinlich Probleme mit diesem Code haben. Und wenn Sie diese Probleme haben, dann würden Sie lernen, warum genau es schlecht war. Man lernt viel mehr aus eigener Erfahrung als aus dem Nachschlagen.
Hoffen Sie auch nicht, dass dieses Gefühl des "Code-Geruchs" jemals verschwinden wird. Wenn Sie besser werden, werden Sie einige Probleme beheben, aber neue, obskurere / fortgeschrittenere bemerken.
quelle
Dies ist ein häufiges Problem bei Programmieranfängern. Lähme dich nicht, indem du denkst, dass alles perfekt sein muss. Das ist der sicherste Weg, ein Projekt niemals zu beenden. Eine der wichtigsten Fähigkeiten, um als Entwickler zu lernen, ist der Unterschied zwischen perfekt und gut genug . Akzeptieren Sie, dass jedes von Ihnen erstellte System verbessert werden kann. Konzentrieren Sie sich auf die Fertigstellung Ihrer Projekte. Nachdem Sie fertig sind, können Sie zurückgehen und sie verbessern. Deshalb haben wir ja auch die Version 2.0.
quelle
Ich hoffe nicht. Auf der anderen Seite, Sie sollten die ganze Zeit lernen und zu verbessern.
Lesen Sie Bücher, belegen Sie Kurse, qualifizieren Sie sich, arbeiten Sie daran, und Sie sollten sich verbessern.
quelle
Mein bester Rat ist, mich auf die Grundlagen zu konzentrieren, wie die von Robert Harvey vorgeschlagene Liste. Die Softwareentwicklung ist ein komplexes Monster, in dem es Jahre dauert, bis es auch nur annähernd funktioniert, insbesondere beim Thema gutes Interface-Design. Es ist wirklich schwer, viele Aspekte der Softwareentwicklung zu verstehen, ohne sie zuerst zu erleben. Sogar etwas so Grundlegendes wie das Kommentieren von Code kann unterschätzt werden. Vom ersten Tag an lernen Sie, gut dokumentierten Code zu schreiben. Ich gebe zu, dass ich erst vor Monaten wirklich versucht habe, Code zu verstehen, bevor ich den Wert guter Kommentare wirklich zu schätzen wusste. Gleiches gilt für viele Programmierkonzepte. Zum Beispiel Datenkapselung, niedrig gekoppelte Module und klare Schnittstellen.
Die wertvollste Ressource, der ich begegnet bin, sind meine Mitarbeiter. Sie werden schlecht Code schreiben. Akzeptiere das einfach. Sie sorgen dafür, dass Sie im Laufe der Zeit einen besseren Code schreiben, der Sie als Programmierer auszeichnet. Als ich zum Beispiel anfing zu arbeiten, verfügte mein Unternehmen über keinerlei formellen Code oder Verfahren zur Entwurfsprüfung. Ich habe es auf mich genommen, meine Arbeit der Kritik meiner älteren Mitarbeiter zu unterwerfen, und um ehrlich zu sein, ich fühlte mich für einen Großteil meines ersten Arbeitsjahres wie ein Idiot.
Softwareentwicklung ist eine kontinuierliche Lernerfahrung. Stellen Sie Unmengen von Fragen, lassen Sie Ihren Code überprüfen, verstehen Sie die Gründe für die Vorschläge, die ältere Leute machen, haben Sie keine Angst, die Gültigkeit der Vorschläge, die ältere Entwickler machen, in Frage zu stellen, und haben Sie vor allem keine Angst, falsch zu liegen. Irgendwann schwindet der Andeutungsfaktor oder das Gefühl, überfordert zu sein. Für den Rekord ... Lernkurven saugen.
quelle
quelle
Lesen Sie das Buch Refactoring: Verbessern des Designs von vorhandenem Code von Martin Fowler. Als erstes sollten Sie Ihren Code überarbeiten überarbeiten, um die Lesbarkeit des Codes zu verbessern und die Komplexität zu verringern, um die Wartbarkeit zu verbessern.
Wenn Sie Ihren Code überarbeiten, verwenden Sie bereits Design Patterns , Encapsulating code usw.
Dies ist eines der besten Bücher, die ich je zu diesem Thema gelesen habe. Es bietet viele nützliche Rezepte.
quelle
Eine gute Ressource ist The Pragmatic Programmer . Das Kapitel "Defekte Fenster" beschreibt, wo Sie sich selbst sehen. Die kurze und prägnante Antwort ist, die Probleme zu beheben.
Wenn Sie anfangen, Ihr Design zu reparieren, hilft es Ihnen zu verstehen, was Ihnen daran nicht gefällt. Es ist einfach, vage Antworten zu finden wie "Es geht überall" oder "Warum habe ich das dort gemacht?". Nehmen Sie sich jedoch die Zeit, um zu prüfen, ob es gemeinsame Muster gibt, die Sie verwendet haben.
Wenn Sie herausfinden , wo Sie gehen möchten, nehmen kleine, leicht umkehrbar Schritte , um dort (also das ist , was Refactoring ist etwa). Berücksichtigen Sie bei jeder Verbesserung Ihres Codes die Auswirkungen auf den Rest des Codes. Hast du es besser oder schlechter gemacht? Zumindest ist dies mein Ansatz, um Ordnung ins Chaos zu bringen.
quelle
Wenn Sie bereits Programmiererfahrung haben, warum studieren Sie nicht einige Open Source-Projekte, die sauberen Code enthalten ? Sie könnten sich DIESE Frage von SO ansehen, die einige relevante Links hat.
Auch Designmuster sind ein Muss - denken Sie darüber nach. Die ganze Idee, Muster zu haben, besteht darin, bekannte Probleme zu lösen, ohne das Rad neu zu erfinden oder Buggy-Code zu schreiben.
Sieht schließlich so aus, als bräuchten Sie eine Portion funktionale Programmierung, um den Kopf frei zu bekommen. Schauen Sie sich zunächst Haskell oder Ocaml an.
quelle
Wenn Sie kein gefährliches Monster sind, sollten Sie einen sogenannten Freund finden , der Ihren Code überprüfen kann und umgekehrt. Auch, wenn Sie Dinge machen, die überarbeitet werden oder nur von anderen übersehen werden, ist es eine gute Pression, es besser zu machen.
Und vergessen Sie nicht, dass die Programmierung vor dem Programmieren beginnt. Überdenken Sie immer Ihre Ideen und Pläne. Wenn Ihr Plan schlecht ist, ist es eine freudige Handlung, ihn rauszuwerfen: Sie haben sich gerade die Frustration erspart, einen Haufen Code (und den Zeitpunkt seiner Erstellung) auf der Grundlage eines schlechten Plans rauszuwerfen.
quelle
Mein Rat ist, jeden Geruch ernst zu nehmen und zu versuchen, ihn zu beseitigen. Es gibt viele gute Bücher zum Thema (Clean Code und GOOS sind meiner Meinung nach die besten). Aber mehr als Bücher gehen zu Konferenzen, um mit anderen Menschen und über Online-Communities (Mailing-Liste, Gruppen) zu hören und zu diskutieren. Versuchen Sie noch besser, Ihrem lokalen xxug (dotnetug, jug, xpug usw.) beizutreten oder einen zu finden.
Das Gespräch mit anderen Programmierern ist der einzige Weg, den ich wirklich verbessern kann (es sei denn, Sie können glücklicherweise mit anderen engagierten Programmierern zusammenarbeiten).
quelle