Eine Qualität, die ich entwickeln möchte, ist das Schreiben von präziserem Code. Wenn man, zumindest meiner Meinung nach, prägnanter schreibt, ist die Möglichkeit, Fehler zum Code hinzuzufügen, geringer. Es ist einfacher, den Code für andere zu lesen.
Meine Frage ist, ob es etwas ist, das nur mit Erfahrung verbunden ist, oder ist es etwas, das Sie explizit tun können, um diese Qualität zu entwickeln?
Antworten:
Ich würde sagen, dass es im Großen und Ganzen etwas ist, das mit Zeit und Erfahrung verbunden ist, aber Sie werden feststellen, dass Sie diese Qualität wieder in Ihre regulären Arbeitssprachen zurückbringen, wenn Sie mit knapperen Sprachen arbeiten.
Sicherlich fand ich nach ein oder zwei Jahren Arbeit mit Ruby, dass mein C # viel verspannter wurde. Ich denke, wenn ich die funktionale Programmierung besser verstehen würde (ein ständiger Ehrgeiz), würde ich wahrscheinlich mehr davon nehmen.
Es gibt auch einige Richtlinien, die hilfreich sein können - zum Beispiel, wenn Sie dieselben zwei Zeilen mehr als einmal schreiben und sie in ihre eigene Methode aufteilen. Dies ist eine einfache Richtlinie, die jedoch schnell Codezeilen einspart und das Programmieren durch Ausschneiden und Einfügen vereinfacht, wofür sich die meisten von uns von Zeit zu Zeit schuldig machen.
Wenn Sie sich mit Vererbung auskennen, können Sie häufig sparen, wenn Sie denselben Code an verschiedenen Stellen wiederholen, indem Sie übergeordneten Klassen gemeinsame Funktionen zuweisen. Dies ist im Prinzip offensichtlich, wird jedoch in der Praxis häufig übersehen.
Es kann einen Unterschied zwischen dem Schreiben von weniger Code und dem Verwenden von weniger Code in Ihrer Anwendung geben. Manchmal können Sie die Codegenerierung verwenden, um zu vermeiden, dass Sie sich wiederholen müssen, sodass Sie nur wenige Codezeilen schreiben, diese jedoch eine ganze Menge anderen Codes für Sie generieren - Das kann Ihnen viel Hebelwirkung verschaffen. Sehen Sie sich an, was ein Tool wie Rails oder Entity Framework in dieser Hinsicht leistet, um festzustellen, wie nützlich es sein kann. Machen Sie sich die Notwendigkeit klar und denken Sie zweimal, dreimal und dann viermal darüber nach, wie Sie Ihre eigene Codegenerierung implementieren - das kann Sie in die Hölle von YAGNI führen.
Verstehen Sie Ihre Sprache, Ihre API und Ihre Tools. Dies scheint wieder offensichtlich zu sein, aber im Laufe der Jahre habe ich so viel Code geschrieben, dass ich später feststellte, dass es sich um Wiedergabefunktionen handelt, die ich gerade von der API geerbt oder mithilfe einer Sprachfunktion vereinfacht haben könnte Die Dokumentation für die API, mit der ich arbeite, erspart mir später viele Stunden beim Codieren oder Debuggen. In ähnlicher Weise haben die meisten Plattformen, mit denen Sie arbeiten, eine Körnung - lernen Sie, so zu arbeiten, wie Sie es erwarten, und Ihr Leben wird viel einfacher. Verbringen Sie einige Zeit damit, die Richtung des geringsten Widerstands für die Plattform zu finden, mit der Sie arbeiten, und Sie werden die Dinge viel besser erledigen.
Wenn Sie sich fragen, ob es einen besseren Weg gibt, etwas zu tun, gibt es wahrscheinlich einen und es lohnt sich immer herauszufinden, wie man es besser macht.
quelle
Eine gute Möglichkeit, weniger Code zu schreiben, besteht darin, das Rad nicht neu zu erfinden und vorhandene Softwarekomponenten zu verwenden, sofern verfügbar.
Eine häufige Antwort erhalte ich, wenn ich frage, warum die Leute ihren eigenen ORM oder ihre eigene Protokollierungsengine oder ihre eigenen UI-Komponenten oder ihr eigenes All haben:
Ich glaube, dass diese Aussage in den meisten Fällen richtig ist, aber die negativen Auswirkungen auf den ROI sind in den meisten Fällen sehr hoch. Sie Mama macht die besten Gerichte richtig? Aber du kannst deine Mutter nicht bitten, jeden Tag nach Hause zu kommen und sie vorzubereiten.
Aus diesem Grund denke ich, dass Entwickler sich für die finanziellen Auswirkungen ihrer Entscheidungen interessieren sollten. Einige von ihnen sind:
Ich denke gerne, dass diese Komponentenanbieter Ihr erweitertes Team sind, das für einen winzigen Teil dessen arbeitet, was Sie bezahlt hätten, um es selbst aufzubauen, zu warten und zu verbessern.
Es ist besser für das gesamte Unternehmen, den ROI zu maximieren, als an der Maximierung unserer Ego-Zufriedenheit zu arbeiten;) Je mehr Geld Ihr Unternehmen erhält, desto wahrscheinlicher werden sich Ihre Arbeitsbedingungen und Ihr Gehalt erhöhen.
quelle
Meiner Meinung nach kann weniger Code auf verschiedene Arten geschrieben werden:
Du wirst es nicht brauchen . Codiere noch nichts, was du noch nicht brauchst. Code nur die Anforderungen angeben. Auf diese Weise reduzieren wir den Code, der zum Schreiben benötigt wird.
Wiederholen Sie sich nicht . Ich glaube, dass die Verwendung von CMS, Framework oder der Third Party Library eine Möglichkeit ist, das DRY-Prinzip anzuwenden.
Abstraktion . Und nicht zuletzt kann die Abstraktionsprogrammierung den Code sehr reduzieren. Durch das Abstrahieren des Codes wird die Chance, den Code wiederzuverwenden, erhöht, da die Duplizität verringert wird.
quelle
Über das Verständnis einer Programmiersprache hinaus hat es meiner Meinung nach viel damit zu tun, ein Problem zu verstehen und eine gute Lösung zu finden. Es gibt viele Lösungen für die meisten Probleme, nicht alle sind optimal. Sie können von Stadt A nach Stadt B über verschiedene Straßen fahren - eine dauert zwei Stunden, die andere doppelt. Es ist die gleiche Idee in der Programmierung. Sie können eine Sprache sehr gut beherrschen, aber Sie können eine Lösung finden, die beispielsweise zwei Seiten Code umfasst, während jemand anderes eine Lösung findet, die in einem Viertel der halben Codegröße implementiert werden kann. Ich habe das im Laufe der Jahre viel gesehen.
Stellen Sie sicher, dass Sie das Problem gut verstehen. Analysieren Sie es, finden Sie eine oder mehrere Lösungen, wägen Sie die Vor- und Nachteile ab (natürlich variieren die "Lösungen mit einem 's'" von Problem zu Problem erheblich - im Allgemeinen hier). Dann gibt es die Umsetzung der gewählten Lösung, die Hier kommt Ihr Verständnis der Sprache (und des Rahmens, falls dies zutrifft) ins Spiel.
quelle
Man kann sagen, dass die gesamte Kunst des Programmierens auf genau dies hinausläuft.
Sie können Sprachen lernen, bei denen Klarheit und Prägnanz traditionell im Vordergrund stehen (z. B. Haskell, Scheme, Python), oder sogar Paradigmen wie Faktor und andere konkatenative Sprachen. Letztendlich sollte jedoch alles, was Sie lernen möchten , dazu beitragen, dass Sie kürzer schreiben , weniger redundanter Code.
quelle
Wenn Sie nicht zugeben, ein Problem zu haben, werden Sie, wie bei allen anderen Problemen, keine Lösung suchen. Erfahrung wird zu einem Faktor, wenn Sie gelernt haben, wie weniger Code aussieht. Wenn Sie Ihren Code erneut aufrufen, ist es eine gute Zeit, um festzustellen, ob Sie Code wiederverwenden oder weniger Code umgestalten können. Microsoft konnte die Druckgeschwindigkeit mit Windows 2000 verbessern, indem es NICHT zweimal gespoolt wurde (Zitat eines Microsoft-Mitarbeiters in einer der kostenlosen Demos).
quelle
Wiederholen Sie nach Belieben. Und willkommen in der Hölle.
quelle
Testgetriebene Entwicklung könnte helfen. Mit dieser Option schreiben Sie nur den Mindestcode, der zum Bestehen dieses Tests erforderlich ist.
quelle