Ich lese oft, dass Entwickler schönen Code schreiben müssen, aber für einen Anfänger bleibt es dunkel, was schöner Code ist und wie erkennt man ihn?
Die sich daraus ergebende Frage lautet: Wie schreibe ich schönen Code und was sind einige praktische Gewohnheiten, um die Qualität Ihres Codes zu verbessern? , was soll ich beachten, um den Code, den ich schreibe, schön zu machen (und was soll ich lernen).
algorithms
source-code
Torr
quelle
quelle
Antworten:
"Schönheit wird durch Augenmaß erkauft".
Trotzdem denke ich, dass die meisten Programmierer der Meinung sind, dass schöner Code ein Gleichgewicht zwischen Klarheit und Transparenz, Eleganz, Effizienz und Ästhetik aufweist.
Klarheit und Transparenz : Klarheit ist, wie einfach ein Leser ableiten kann, was der Code tut. Transparenter Code macht das, was er zu tun scheint. Wenn Code eine Sache zu tun scheint, aber tatsächlich etwas anderes (oder etwas mehr) tut, ist er nicht transparent - er ist irreführend.
Eleganz : Es gibt viele Möglichkeiten, die meisten Algorithmen zu implementieren, aber einige sind umständlich, während andere ordentlich und anmutig sind. Prägnanz fügt oft Eleganz hinzu, aber übermäßige Prägnanz kann die Klarheit verringern.
Effizienz : Vermeidung unnötiger Ressourcennutzung (z. B. CPU-Zeit, Arbeitsspeicher und E / A).
Ästhetik : Augenschonend. Das ist ziemlich subjektiv. Es kommt hauptsächlich auf den Stil an. Ein wichtiger Gesichtspunkt ist ein einheitlicher Stil. Code, der sich ändert, wenn beispielsweise der Stil zur Hälfte eingerückt wird, ist hässlich.
quelle
Lassen Sie sich nicht von Leuten täuschen, die glauben, schöner Code sei der folgende:
Weil es nicht so ist. Code wie dieser ist niedlich , und es ist sicherlich einen Blick wert, aber es ist nicht die Art von Code, mit dem Sie sich abfinden möchten.
Und Sie wissen, dass Sie sich für einen rekursiven statischen Polymorphismus mit Metatemplaten interessieren, der verschiedene Lambdas vererbt - oder was auch immer, über das Sie online gelesen haben? Sie könnten begierig darauf sein, innovative und raffinierte Tricks zu spielen, ohne einen klaren Grund dafür zu haben. Aber auch Code, der die Grenzen einer Sprache überschreitet, ist nicht schön.
Sie sind sexy .
Tonnenweise Spaß, aber fragen Sie sich: Möchte ich wirklich Zeit damit verbringen, die Anatomie dieser Sprache zu erforschen, oder möchte ich mit einer Sprache zusammenarbeiten und etwas Schönes bauen? Schließlich ist eine Programmiersprache nur das Werkzeug zum Erstellen.
Was ist also schöner Code?
Schöner Code = wartbarer Code. DAS IST ES!
DAS IST DIE FORMEL!
Wenn Sie etwas schreiben können, einige Monate später darauf zurückkommen und weitere Fortschritte erzielen, dann ist das schön. Wenn Sie ein Jahr später feststellen, dass Sie Funktionen hinzufügen und vorhandene Funktionen optimieren möchten, und dies relativ einfach tun können, dann ist DAS wunderschön. Wenn andere Leute in Ihre Codebasis eintreten und schnell herausfinden können, was los ist, weil die Dinge organisiert sind, werden sie mehr Haare haben und auch schön sein.
Die eigentliche Frage, die Sie stellen möchten, lautet: "Wie schreibe ich mehr wartbaren Code?". Ich fürchte, das ist eine größere Frage und es ist eine ziemlich kreative Disziplin. Schreiben Sie einfach weiter Code, aber fragen Sie sich diesmal nicht, ob er schöner sein kann. Fragen Sie sich, ob Sie es wartbarer machen können.
quelle
Ich gehe davon aus, dass "Schöner Code" kein objektiver oder besonders nützlicher Begriff ist. Und wir sollten nicht versuchen, es zu definieren.
Typische Wörterbuchdefinitionen des englischen Wortes "beauty" gehen wie folgt vor:
(Quelle http://dictionary.com )
Der rote Faden ist, dass "Schönheit" das ist, was ästhetisch ansprechend ist. Das ist notwendigerweise subjektiv ... wie das Sprichwort "Schönheit liegt im Auge des Betrachters" zeigt.
Wir können das Wort "Schönheit" auf Code anwenden, und die offensichtliche Bedeutung ist, dass der Code "ästhetisch ansprechend" ist.
Aber zu sagen, dass "schöner Code" eine Reihe von Attributen hat (wie von anderen Answers vorgeschlagen), ist ein Widerspruch zur offensichtlichen Bedeutung von ästhetisch ansprechend. In der Ästhetik geht es darum, wie Menschen ... einzelne Menschen ... Dinge wahrnehmen.
Oder anders ausgedrückt, es ist etwas Widerliches , wenn mir jemand sagt, was ich für schön halten sollte, sei es in Menschen, Kunstwerken oder ... Code.
Für mich ist schöner Code ein Code, den ich für schön halte, und das ist er. Es ist subjektiv und individuell und lässt es einfach dabei.
quelle
Hier ist mein Rat.
Lesen Sie die Antworten auf Wie können Sie einem Nicht-Programmierer "schönen Code" erklären? und sehen, auf welche Eigenschaften sie sich konzentrieren sollen. Nehmen Sie dann ein Buch wie Code Complete und lesen Sie es durch, um Ratschläge zum Schreiben von besserem Code zu erhalten.
Irgendwann wird es dich treffen, während du dir deinen älteren Code ansiehst: "Das ist hässlich." Es wird eine direkte ästhetische Reaktion sein. Wenn Sie es sich ansehen, werden Sie feststellen, dass Sie Ihren Code wie einen Programmierer anzeigen und die Hässlichkeit erkennen, weil Sie wissen, wie besser aussehender Code aussehen sollte.
quelle
Nur weil Sie oft über schönen Code lesen, heißt das nicht, dass Leute, die darüber schreiben, dieselbe Definition haben. Ihrer Frage nach zu urteilen, scheint es leider nicht so, als hätten sie sich überhaupt die Mühe gemacht, sie zu definieren.
Für mich ist schöner Code:
Prägnanter Code, der nicht aussagekräftig ist, kann kryptisch sein, und nicht prägnanter aussagekräftiger Code ist in der Regel aufgebläht und mühsam zu lesen, sodass Sie beides benötigen.
Ich würde Wartbarkeit nicht als Teil dessen einschließen, was Code schön macht, weil Schönheit etwas ist, das Sie sehen / lesen, nicht etwas, auf das Sie einwirken. Aber andererseits ist es meine persönliche Ansicht.
quelle
Der Begriff schöner Code ist ein sehr vager und abstrakter Begriff. Es ist einfach herauszufinden, was es darstellt und was es bedeutet, aber es sollte niemals als mehr als ein sekundäres Ziel angesehen werden.
Es erinnert mich sehr an die Metrik der Codeabdeckung. Wenn Sie die Zahl hoch genug bekommen, können Sie sich entspannen und auf etwas anderes gehen. Eine Codebasis mit ca. 80% Deckung ist großartig, nicht kugelsicher, aber genug, um sich zu entspannen und andere Dinge zu tun. Eine Abdeckung von 40% ist ziemlich beängstigend und sollte Sie ermutigen, diese Zahl zu erhöhen.
Es ist nur wichtig, dass die Codeabdeckung nur dann wirklich aussagekräftig ist, wenn die Anzahl niedrig ist. Also lass es nicht zu niedrig sein. Wenn die Abdeckung zu einem bestimmten Punkt ansteigt, gehen Sie zu etwas anderem über.
Ähnlich schöner Code ist großartig. Wenn Sie hübschen Code haben, großartig, gehen Sie zu etwas anderem über. Betonen Sie nicht zu viel darüber. Sie werden diese 100% -Marke niemals erreichen, und wenn Sie dies tun, werden Sie feststellen, dass Sie sich zu sehr darauf konzentriert haben, wie es liest oder wie es aussieht, und nicht genug darauf, was es tut oder wie es es tut . Also zu einer vernünftigen Note kommen und dann aufhören.
Aber wenn Ihr Code unzuverlässig ist, wenn es sich um ein riesiges Wirrwarr von Spaghetti-Code handelt, wenn es Sie physisch schmerzt, die Datei zu öffnen, wenn Sie keine Kommentare oder Unterlagen usw. usw. usw. haben, dann beheben Sie es. Und mach es so schnell wie möglich.
Sie werden feststellen, dass Ihre Codebasis im Laufe der Zeit im Allgemeinen sauberer, im Allgemeinen heller und im Allgemeinen schöner und vor allem nützlicher wird, wenn Sie sich darauf konzentrieren, sie weniger flüchtig zu machen. Das Schreiben von schönem Code ist kein einstufiger Prozess.
Es gibt keine magische Philosophie. Die 1000 kleineren Schritte, die alle zusammen ausgeführt werden, erfüllen einen konkreten Zweck, der nichts damit zu tun hat, wie schön der Code aussieht. Aber wenn Sie sie alle zusammen servieren, bilden sie einen schönen Code als die Summe ihrer Teile. Wie Voltron. Oder Captain Planet.
quelle
Ich stimme den Antworten hier wirklich zu, aber mit einem weniger technischen Ansatz würde ich sagen, dass schöner Code ein Ausdruck der Klarheit der Autoren in Bezug auf das vorliegende Problem ist, was sich in einer gut formulierten und präzisen, aber einfachen Sprache manifestiert.
Für mich ist das Durchschauen von schönem Code so, als würde man ein Kunstwerk betrachten und immer wieder neue Details sehen, die die Absicht des Herstellers zeigen, aber auch, wie die verschiedenen Teile realisiert wurden, wobei jeder eine Antwort auf so viele Fragen gibt, und schließlich: wie sich seine Existenz anfühlt wie ein Naturgesetz, an dem sich alles so ausrichtet, dass es nur mit Worten der Ehrfurcht beschrieben werden kann: großartig, inspirierend, schön.
Aus dieser Perspektive könnten Sie in Ihrer Karriere als Programmierer Entdeckungen von schönem Code machen, den andere weder verstehen, weil ihnen das Wissen fehlt, noch nicht mehr bemerkenswert finden, da sie durch zu viel Schönheit verwöhnt wurden;)
Schöner Code hat alle pragmatischen Qualitäten, wie ansonsten erwähnt, da stimme ich voll und ganz zu.
quelle
Ich habe drei Kriterien:
quelle