Ich hatte diese Frage bei Stackoverflow gestellt und bevor sie ausgebuht wurde, erhielt ich den hilfreichen Vorschlag von Péter Török, dass dies ein besserer Ort sein könnte, um sie zu posten.
Ich programmiere seit einigen Jahren in Java. Ich habe Designentscheidungen oft mit Kollegen auf der Grundlage dessen diskutiert, was „guten Stil“ ausmacht. In der Tat gibt es eine Reihe von StackOverflow-Fragen / Antworten, die ein Design auf der Grundlage diskutieren, ob etwas „guter Stil“ ist.
Aber was macht "guten Stil" aus? Wie viele Dinge weiß ich es, wenn ich es sehe ... aber ich wollte eine bessere Idee haben als nur mein Gewissen zu sagen, dass sich dieses Design nicht richtig anfühlt.
Woran denken Sie, um guten, gut gestalteten Code zu erstellen?
(Ich erkenne an, dass dies etwas subjektiv ist, da der „gute Stil“ von der jeweiligen Aufgabe abhängt.) (Außerdem sollte ich hinzufügen, dass ich nicht an Teamstilen interessiert bin - z. B. "Wir verwenden Einrückungen mit 2 statt 4 Leerzeichen" ... und ich bin nicht an den Java-Code-Konventionen interessiert.)
Edit: danke für all die guten Antworten / Kommentare bisher. Ich bin besonders an Antworten interessiert, die helfen könnten, die Dinge zu kodifizieren, die das Gewissen (und möglicherweise den Magen) eines Programmierers erschüttern.
quelle
Antworten:
Ein paar kurze Punkte:
quelle
Hinzufügen zu Ryans Liste:
xFactoryFactory
Klasse hast, machst du es falsch :-)Ich werde dort aufhören.
quelle
HammerFactoryFactoryFactory
Klasse? ;-)Obwohl ich die Antworten anderer zu schätzen wusste, fand ich es nur fair, einige der Dinge zu teilen, über die ich nachdenke, wenn ich versuche, guten Code zu schreiben:
Was muss über diese Klasse / Methode / Variable wissen? dh wo soll dieses Wissen leben?
Wie kann sich dieser Code auf den Speicher / die Leistung meiner Anwendung auswirken? (Ich erkenne an, dass "vorzeitige Optimierung die Wurzel allen Übels ist". Ich schlage daher nicht vor, viel Zeit mit der Optimierung zu verbringen, sondern ein Bewusstsein, während ich meinen Code anfänglich schreibe.)
Ist klar (aus dem Code und den Codestrukturen), was dies bewirkt? (Ich versuche, der Maxime zu folgen: "Bemühen Sie sich, es den Menschen nicht zu ermöglichen, zu verstehen, und versuchen Sie, es den Menschen unmöglich zu machen, sie falsch zu verstehen.")
quelle
In den Klassen String und ArrayList finden Sie hervorragende Beispiele für die ordnungsgemäße Java-Programmierung. Aber sie sind sehr prägnant, fast im C-Stil, was für wartbaren Code mit minimalen Java-Dokumenten nicht unbedingt am besten ist. Die übliche Praxis in meinem Shop sind keine Kommentare, daher versuche ich, durch Code zu kommentieren, indem ich ausführliche camelCase-Variablennamen und übermäßige Verwendung von Zeilenumbrüchen verwende, um eine Gedankenzeile von einer anderen abzugrenzen. Ich diskutiere immer noch über die Verwendung von Tabulatoren, um Vars von ihren Werten zu trennen. Registerkarten können die Lesbarkeit verbessern, IMO, aber nur, wenn sie minimal ausgeführt werden und sehr subjektiv sind. Ich finde, es geht wirklich um das Publikum. Hier gibt es keine beste Antwort.
quelle