Ein guter Entwickler ist weise, nicht brillant


Eine der wichtigsten Lektionen, die ich vor 15 Jahren als Entwickler gelernt habe, war dieser einfache Gedanke:


Guter Code ist ausdrucksstark und nicht beeindruckend.

Ich erinnere mich, als ich das hörte, fragte ich: „Was ist der Unterschied?“ Und erhielt eine Antwort.


"Ausdrucksstark" - verständlich, eindeutig und spezifisch. Wenn dies der Fall ist, müssen Sie für das Schreiben von Ausdruckscode mit einer bestimmten Aufgabe arbeiten. Die Investition von Zeit und Energie in ihre Schaffung dient einem bestimmten Zweck, und das Ergebnis entspricht der Erwartung.


Beeindruckend ist ein Code, an den man sich erinnert. Das Schreiben von Code, der für seine komplexen Strukturen und Algorithmen in Erinnerung bleibt, wird, obwohl er Ihr Ego zerkratzt, für jemanden, der ihn in Zukunft unterstützen wird, ein echtes Problem sein. Und wenn sich herausstellt, dass letzterer ein Verrückter ist, der Ihre Adresse kennt, rettet Gott Sie vor seinem Zorn.


Deshalb ist ein guter Entwickler weise und nicht brillant. Ein weiser Entwickler hat nicht nur Intelligenz, sondern auch die Fähigkeit, ständig über die Konsequenzen seiner Handlungen nachzudenken. Er weiß, welchen spezifischen Code er schreibt, warum er es tut und vor allem, wie sich dieser Code in Zukunft verhalten wird. Oder, wenn es einfacher ist, versucht der weise Entwickler, die Krankheit zu heilen, nicht die Symptome.


„Geniale“ Entwickler mit der gleichen Intelligenz denken im Gegenteil nur an die Gegenwart. Sie können aktuelle Probleme schnell und effektiv lösen. Das ist nur der Berg von ihren Hacks und Tricks, die sich ständig ansammeln und sobald der Code abstürzt, den Ruf aller Beteiligten begraben. Deshalb hat Steve McConnell einmal richtig bemerkt:


Programmieren ist kein Job bei der CIA, man muss nicht schlau sein.

Und weise Entwickler machen nichts Kluges. Sie schreiben langweiligen und einfachen Code, der leicht zu verstehen ist. Weder mehr noch weniger.




Hier sind einige weitere Prinzipien weiser Entwickler.



Sie bevorzugen Einfachheit


Martin Fowler hat einmal gesagt:


Jeder Dummkopf kann computerfreundlichen Code schreiben. Ein guter Entwickler schreibt Code, den die Leute verstehen können.

Manchmal haben Entwickler den Wunsch, sich zu behaupten. Zeigen Sie anderen Ihr Talent. Und sie suchen nach abstrusen Lösungen für jedes Problem, auf das sie stoßen, obwohl eine einfache Lösung zur Hand ist. Und dies ist einer der schlimmsten Fehler, die ein Entwickler machen kann.


Ein weiser Entwickler schreibt einfachen Code. Es ist einfach zu warten, zu optimieren und bei Bedarf umzugestalten. Der Code macht nichts Kniffliges, jeder, der darauf stößt, versteht sofort ungefähr, was „unter der Haube“ passiert. Fortgeschrittene und ungewöhnliche Algorithmen erweisen sich während des Nachtsprints für Kaffee und Energie als ausgezeichnet, scheitern jedoch viel später in der Produktion.


Wenn das Ego Sie beim Programmieren langsam in Versuchung führt, fragen Sie sich: „Wenn ich nach 2 Monaten wieder mit diesem Code arbeite, kann ich mich dann daran erinnern, was genau hier passiert?“ Wenn die Antwort ja ist, dann machen Sie es. Denken Sie jedoch an Ihre Kollegen, die eines Tages mit diesem Code arbeiten müssen.


Der Code ist wie ein Witz. Wenn es erklärt werden muss, ist es schlecht.

Sie wissen, wann (nicht) Sie Ihren Code optimieren müssen.


Edsger Dijkstra bemerkte einmal richtig:


Ein guter Entwickler konzentriert sich beim Schreiben von Code eher auf WO als auf WELCH.

Es gibt jedoch viele verschiedene Möglichkeiten, Ihren Code zu optimieren. Jeder von ihnen ist mit einer Änderung des Speicherbedarfs, der Prozessorzeit und eines bestimmten Algorithmus verbunden. Und weise Entwickler wählen diesen Weg pragmatisch.


Aber bevor sie anfangen, etwas zu verbessern, folgen sie der goldenen Regel „keinen Schaden anrichten“.


Zu welchem ​​Zweck werde ich etwas ändern? Vielleicht löst das Programm die Aufgabe schon perfekt? Gibt es angesichts der Art und Weise, in der das Programm gestartet wird, einen Sinn, es schneller zu machen? Alle diese Fragen müssen Sie selbst beantworten, bevor Sie mit der Optimierung beginnen.


Jede Optimierung ist nur im Zusammenhang mit Arbeit und Rendite sinnvoll, wenn das Programm wichtig ist und sehr langsam ist. Es gibt vernünftige Gründe zu der Annahme, dass es unter Wahrung von Zuverlässigkeit, Korrektheit und Klarheit optimiert werden kann. Niemand braucht ein Programm, das fehlerhafte Ergebnisse liefert, egal wie schnell es ist. Gut optimierter Code ist besser als nicht optimiert, aber mit dem falschen Ansatz ist das genaue Gegenteil der Fall.


Denken Sie daran: Leistungsänderungen während der Optimierung müssen gemessen werden. Die Intuition in dieser Angelegenheit ist ein schlechter Helfer.

Sie bevorzugen es, Code zu verwenden, anstatt ihn zu erstellen.


Vic Gundotra traf das Bullauge und sagte einmal:


Sie beginnen mit dem Schreiben von Code. Ich beginne damit, eine Lösung zu finden.

Und weise Entwickler folgen diesem Beispiel. Sie beginnen mit der Suche nach vorgefertigtem Code. Obwohl es einigen scheint, dass sie jetzt alles von Grund auf neu machen werden, endet die Mehrheit mit der banalen Erfindung eines Fahrrads.


Fühlen Sie sich frei, es zu googeln. Die Suche nach Lösungen, ob online oder in Ihrer eigenen Codebasis, ist bereits nützlich, selbst wenn Sie die Ansätze untersuchen, die zuvor bei ähnlichen Problemen funktionierten, sowie deren Vor- und Nachteile. Aus diesem Grund verbringen kluge Entwickler viel Zeit damit, den Code eines anderen zu lesen, bevor sie ihren eigenen schreiben. Das Erstellen von Code von Grund auf ist immer Zeit, Geld und Energie wert. Verschwenden Sie keine Ressourcen, bis es wirklich notwendig wird.


Wenn Sie also ein anderes Problem lösen, versuchen Sie zunächst festzustellen, ob jemand es vor Ihnen gelöst hat. Sie vermeiden Ihre Arbeit nicht, Sie vermeiden unnötige Arbeit.


Sie versuchen besser zu werden.


Aristoteles hat einmal gesagt:


Wenn Sie an etwas arbeiten, von dem Sie bereits wissen, wie man es macht, werden Sie nicht besser.

Weise Entwickler versuchen, sich selbst oder vielmehr ihren Code bei jeder Gelegenheit zu verbessern. Sie sind bescheiden genug, um zu erkennen, dass sie ihren besten Code noch nicht erstellt haben.


Sie sitzen nicht immer wieder mit demselben Ansatz in der Komfortzone. Sie tun ihr Bestes, um sicherzustellen, dass ihre eigenen Gewohnheiten für sie nicht zum Dogma werden. Sie suchen ständig nach Wegen und Möglichkeiten, um es besser zu machen, insbesondere wenn sie dabei etwas Neues lernen können.


Weise Entwickler sind nicht fasziniert von modischer Technologie und coolen Features. Sie sind pragmatisch genug, um zu verstehen, dass es keine Silberkugel gibt und jeder Ansatz seine Vor- und Nachteile hat.


Sie haben keine Angst, um Hilfe zu bitten.


Sokrates ausgesprochen:


Wenn wir uns ständig gegenseitig helfen würden, würde niemand Glück brauchen.

Als Entwickler verstehen wir uns gerne als kluge Leute. Außerdem gibt es unter uns wirklich Genies. Wir neigen aber auch dazu zu glauben, dass wir alles auf der Welt wissen sollten. Und wer freut sich wirklich, vor Kollegen zu sagen: „Ich weiß nicht“? Wer möchte zugeben, dass die neue Technologie für ihn eine Reihe von Hieroglyphen ist?


Stattdessen flüstern Sie sich leise zu: „Ich werde es selbst herausfinden. Ich habe es schon so oft gemacht, das kann ich jetzt. "


Weise Entwickler tun dies nicht. Sie wissen, wann sie für sich selbst denken und wann sie um Hilfe bitten müssen. Sie wissen bereits, dass das Herausziehen einer Bitte um Hilfe nur die Zeit vor Ablauf der Fristen verkürzt, was das gesamte Team verletzen wird. Daher haben sie keine Angst davor, inkompetent zu wirken und bei Bedarf um Hilfe zu bitten.


Eine rechtzeitige Bitte um Hilfe untergräbt nicht das Vertrauen der Kollegen in Ihre Fähigkeiten. Es stärkt das Vertrauen in Sie als Fachmann, der bereit ist, alles Notwendige zu tun, um die Fristen einzuhalten und qualitativ hochwertige Ergebnisse zu erzielen.


Wie Cubra Sait einmal bemerkte:


Positive Veränderungen beginnen mit Fragen.

Source: https://habr.com/ru/post/de472946/


All Articles