Ich bin wahrscheinlich nicht der Einzige, der sich so fühlt. Aber ich habe das, was ich "Das Syndrom des perfekten Programmierers" nenne, was viele als Perfektionisten bezeichnen, aber in diesem Fall liegt es im Bereich der Programmierung. Der Bereich der Programmierung ist für ein solches Syndrom jedoch etwas problematisch.
Haben Sie jemals das Gefühl gehabt, dass Sie beim Programmieren nicht sicher oder nicht sicher genug sind, dass Ihr Code sauber und gut ist und den meisten Best Practices entspricht? Es gibt so viele Regeln, dass ich das Gefühl habe, irgendwie überfordert zu sein. Nicht, dass ich die Regeln nicht befolgen möchte. Natürlich bin ich Programmierer und ich liebe das Programmieren. Ich sehe das als Kunst und ich muss die Regeln befolgen. Aber ich liebe es auch, ich meine, ich will und ich liebe es, die Regeln zu befolgen, um ein gutes Gefühl dafür zu haben, was ich tue, geht in die richtige Richtung. Aber ich wünschte nur, ich könnte alles ein bisschen mehr unter Kontrolle haben. in Bezug auf Best Practices und guten Code.
Vielleicht mangelt es an Organisation? Vielleicht mangelt es an Erfahrung? Vielleicht mangelnde Übung? Vielleicht mangelt es an etwas anderem, worauf jemand hinweisen könnte? Gibt es eine Möglichkeit, dieses Syndrom irgendwie loszuwerden?
quelle
Antworten:
Priorisieren . Das wichtigste zuerst. Konzentrieren Sie sich darauf, worauf es ankommt.
Ihre Prioritäten können variieren, aber im Allgemeinen sollten Sie Folgendes beachten:
Vielleicht in dieser Reihenfolge. Der erste Punkt ist jedoch der wichtigste. Ohne das ist Code nutzlos. Was machen Sie mit einem Programm, das nicht richtig funktioniert?
Lass es funktionieren, alles andere ist für die Lösung der Probleme, die du lösen musst, nahezu irrelevant. Natürlich leide auch ich darunter. Was ich gelernt habe, das hilft, ist sich nur auf Lösungen zu konzentrieren, die funktionieren . Das reicht. Das sind 99% der Arbeit.
Vielleicht möchten Sie an so etwas wie guten Code denken . Was ist es? Was für Leute schreiben das? Wie schreibe ich guten Code ? Es ist sehr einfach. Schreiben Sie Code, der funktioniert . Arbeitscode ist guter Code. Alles andere kommt später.
Natürlich werden beim Schreiben von Code in einer professionellen Teamumgebung offensichtlicher, lesbarer Code und wartbarer Code immer wichtiger. Die erste Aufgabe ist es jedoch , es zum Laufen zu bringen und sich darauf zu konzentrieren. Erst dann können Sie bei Bedarf mit der Verbesserung und Umgestaltung beginnen.
Es ist oft ganz offensichtlich, dass die Code-Korrektheit sehr wichtig ist - aber wir alle erkennen diese Bedeutung beim Schreiben von Code nicht an. Wir schneiden Ecken, wir vorzeitige Optimierung verwenden, wir versuchen zu schreiben elegant Code , noch bevor wir haben Arbeits Code geschrieben. Es ist die menschliche Natur, von Anfang an nach Perfektion zu streben, aber Programmierung und Softwareentwicklung sind iterative Prozesse, und es gibt Prioritäten. So wieder, damit es funktioniert , Sorgen über alles andere später. Verstehe die Wichtigkeit des richtigen Codes und strebe danach.
Zwar gibt es Tonnen und Tonnen von sogenannten guten Praktiken , aber ich denke, gesunder Menschenverstand ist das Wichtigste. Überlegen Sie, warum die Praktiken als gut angesehen werden und wann und wo sie anzuwenden sind. Bemühen Sie sich jedoch nicht, jedes einzelne Bit der guten Praktiken zu erfüllen. Es gibt keinen Ersatz oder Ersatz für persönliche Erfahrungen. Sie können häufige Fallstricke nicht vermeiden - egal, wie viele Bücher Sie lesen, an welchen Seminaren Sie teilnehmen oder was nicht. Was zählt, ist das Lernen, indem man Dinge richtig macht und Spaß hat - wann immer es möglich ist.
quelle
Die einfachste Möglichkeit, dieses Problem zu vermeiden, besteht darin, nur das zu ändern, was weh tut. Polieren Sie keinen Code, der korrekt, lesbar und wartbar ist, auch wenn Sie der Meinung sind, dass einige Änderungen ihn möglicherweise noch verbessern. Aber wenn Sie zum Beispiel versuchen, etwas und Stables über eine Variable zu ändern, deren Zweck unklar ist, oder eine Funktion, die einfach zu lang ist, um sie zu verstehen, reparieren Sie sie. Nicht früher
Das bedeutet nicht, dass Sie nicht unbedingt nach gutem, sauberem Code streben sollten, aber Sie sollten Ihren ersten Versuch als "gut genug" betrachten, sofern nichts anderes bewiesen ist.
quelle
Ich denke, das beste Gegenmittel ist es, sich daran zu erinnern, dass all diese Best Practices und Regeln zur Codebereinigung nicht für sich selbst existieren und dass der Code selbst auch nicht existiert.
Am Ende zählt vor allem, dass die Software funktioniert und verwendet werden kann. Und das wird nicht passieren, wenn Sie es nicht beenden.
Ich mag den Vergleich von Codierung mit Kunst nicht, aber in dieser Hinsicht funktioniert er: Künstler ( insbesondere Autoren ) möchten auch oft weiter an einem Stück arbeiten, weil es immer etwas gibt, das nicht perfekt ist. Aber welchen Wert hat Perfektion, wenn sie die Veröffentlichung auf unbestimmte Zeit verzögert und somit verhindert, dass jemand die Arbeit wertschätzt ?
quelle
Das Wichtigste ist, dass sich Ihr Code ständig ändert und es immer Raum für Verbesserungen gibt. Kein Code ist jemals perfekt. Meistens wird eine Klassenbibliothek, an der Sie heute arbeiten, sechs Monate später ganz anders aussehen. Sie lernen eine neue Technik oder finden ein Muster, das wirklich zu Ihnen passt. Solange der Code leicht zu pflegen und lesbar ist, sollten Sie gut sein. Im Idealfall würden Sie Unit-Tests durchführen, um die spätere Umgestaltung zu vereinfachen.
Es ist einfach, den Code perfekt aussehen zu lassen und alle erdenklichen Standards zu befolgen. Es passiert uns allen. Wenn ich mir den Code anschaue, den ich vor ein paar Wochen geschrieben habe, denke ich darüber nach, Änderungen vorzunehmen. Fügen Sie hier eine Eigenschaft hinzu, und ändern Sie dort die Methode. Und es scheint am Ende des Projekts zu geschehen. Aber wenn Sie zu sehr damit beschäftigt sind, könnten Sie am Ende einen aufsehenerregenden Fehler machen. Ich habe das ein paar Mal zu Beginn meiner Karriere gemacht. Ein paar Fehlerbehebungssitzungen um 3 Uhr morgens haben mich von diesem Problem befreit.
quelle
Mach es anders herum.
Anstelle von "Was kann man besser machen?" suche nach "was pisst mich an?" bis nichts mehr geht.
quelle
Als Programmierer müssen Sie Code erstellen. Der Zweck von Best Practices ist es, Ihre Produktionsrate zu erhöhen, indem Dinge leichter zu verstehen / zu tun / zu merken sind. Wenn das Festhalten an diesen Praktiken die Erledigung von Aufgaben behindert, machen Sie etwas falsch. Versuchen Sie einfach, Code so schnell wie möglich zu erstellen, und Ihre Methoden sollten sich weiterentwickeln, damit Sie genau das tun können.
quelle
Lassen Sie es funktionieren, machen Sie es sauber, machen Sie es fest, machen Sie es performant.
Die ersten drei sind ein Sprichwort, für das ich mich ausspreche, wenn sich jemand fragt, wie man SOLID-Code auf einer Timeline schreibt. Wenn Sie zum ersten Mal eine Codezeile schreiben, muss diese einfach funktionieren. Tun Sie also, was Sie tun müssen, und werden Sie nicht schick. Wenn Sie zum ersten Mal eine Codezeile erneut aufrufen, ist dies kein einmaliger Vorgang mehr und Sie sollten den Code bereinigen, damit er lesbarer und damit wartbarer wird. Wenn Sie den Cursor zum dritten Mal in diese Zeile setzen, ist dies wahrscheinlich eine große Sache, und Sie sollten ihn überarbeiten, um die SOLID-Methode einzuhalten, Abhängigkeiten zu abstrahieren, Muster zu implementieren und den Code im Allgemeinen einfacher einzufügen oder einzufügen für zukünftige Verbesserungen.
Eleganz im Code soll erreicht werden, wenn der Programmierer eine Gelegenheit wahrnimmt, und ist im Allgemeinen eine Funktion zur Vereinfachung, Reinigung und allgemeinen Verbesserung der Lesbarkeit und Wartbarkeit von Code, während die vorhergehenden Schritte befolgt werden. Es ist nicht etwas zu maximieren .
Leistungsfähiger Code ist in Sprachen mit Speicherverwaltung (Java, die .NET-Familie, die meisten funktionalen Sprachen usw.) fast immer am wenigsten von Bedeutung. In diesen Umgebungen ist das Ziel schreiben richtigen Code ( „richtig“ hier definiert als die Herstellung des erwarteten Ergebnisses in allen erwarteten Fällen undverständlich und gut strukturiert sein und somit gewartet werden können), und die Leistung ist zweitrangig (normalerweise wird sie bis zu einem gewissen Grad von korrektem Code ausgehen). In allen Fällen ist ein Algorithmus leistungsfähig, wenn er "gut genug" ist. Denken Sie daran, "vorzeitige Optimierung ist die Wurzel allen Übels"; Optimierungen vorzunehmen, von denen Sie nicht wissen, dass Sie sie benötigen, reicht nicht aus, um Zeit zu verschwenden, Code zu verschleiern und im Allgemeinen den Fortschritt zu verhindern. Es muss zuerst funktionieren, und sobald es funktioniert, können Sie es ausführen und sehen, wie schnell es ausgeführt wird. Wenn es nicht schnell genug ist (wie durch einen veröffentlichten Benchmark definiert), verbessern Sie es, bis es ist, und hören dann auf .
quelle
Bei der Programmierung muss man wirklich pragmatisch sein. Ja, wir alle tun gerne alles richtig, aber Sie werden dafür bezahlt, dass Sie funktionierende Software liefern, und nicht dafür, dass Sie sie für den Rest Ihres Lebens polieren.
Der Ansatz besteht darin, dies in Ihrem Berufsleben zu "erledigen". Liefern und weitermachen. Speichern Sie Ihren Perfektionismus für persönliche Projekte.
quelle