Noch heute sehe ich oft Unterstriche in Java-Variablen und -Methoden. Ein Beispiel sind Mitgliedsvariablen (wie "m_count" oder "_count"). Soweit ich mich erinnere, wird die Verwendung von Unterstrichen in diesen Fällen von Sun als schlechter Stil bezeichnet.
Der einzige Ort, an dem sie verwendet werden sollten, sind Konstanten (wie in "public final static int IS_OKAY = 1;"), da Konstanten nur in Großbuchstaben und nicht in Kamelbuchstaben geschrieben werden sollten. Hier sollte der Unterstrich den Code lesbarer machen.
Denken Sie, dass die Verwendung von Unterstrichen in Java ein schlechter Stil ist? Wenn ja (oder nicht), warum?
quelle
ReadableInterface
- absolut redundant. In modernen IDEs müssen Sie weder den Variablentyp noch dessen Bereich angeben - Färbung und schnelles Springen erledigen die ganze Arbeit für Sie. IMO ist dies also ein schlechter Stil, da Sie redundante Zeichen eingeben und die Leute zwingen, ihn zu lesen / zu pflegen.quelle
snake_case
Formular leichter zu lesen ist. Besonders bei kurzen Wörtern (1-2 Buchstaben) würde ich definitiv argumentieren, dass dies der Fall ist. Was "schwer zu tippen" betrifft, ist es auch nicht gerade praktisch, ein Wort mit lotOfMixedCaseWithinIt einzugeben. Ich würde befürworten, dass es darum geht, was Sie gewohnt sind. In Java sage ich jedoch "benutze die gemeinsame Form", wie von JLS / etc. Empfohlen. Verwenden Sie in Ruby / Python / C die Groß- und Kleinschreibung. Und so weiter ...Regeln:
quelle
Ich denke nicht, dass die Verwendung von _ oder m_ zur Angabe von Mitgliedsvariablen in Java oder einer anderen Sprache schlecht ist. Meiner Meinung nach verbessert es die Lesbarkeit Ihres Codes, da Sie ein Snippet anzeigen und schnell alle Mitgliedsvariablen von Einheimischen identifizieren können.
Sie können dies auch erreichen, indem Sie Benutzer dazu zwingen, Instanzvariablen mit "this" voranzustellen, aber ich finde das etwas drakonisch. In vielerlei Hinsicht verstößt es gegen DRY, da es sich um eine Instanzvariable handelt. Warum sollte es zweimal qualifiziert werden?
Mein persönlicher Stil ist es, m_ anstelle von _ zu verwenden. Der Grund dafür ist, dass es auch globale und statische Variablen gibt. Der Vorteil von m _ / _ besteht darin, dass ein Variablenbereich unterschieden wird. Sie können _ also nicht für global oder statisch wiederverwenden, sondern ich wähle g_ bzw. s_.
quelle
"Bad Style" ist sehr subjektiv. Wenn eine bestimmte Konvention für Sie und Ihr Team funktioniert, wird dies meiner Meinung nach einen schlechten / guten Stil qualifizieren.
Um Ihre Frage zu beantworten: Ich benutze einen führenden Unterstrich, um private Variablen zu markieren. Ich finde es klar und kann den Code schnell durchsuchen und herausfinden, was los ist.
(Ich benutze "dies" jedoch fast nie, außer um einen Namenskonflikt zu verhindern.)
quelle
this
, eine Mitgliedsvariable recht großzügig anzugeben, wenn ich denke, dass sie darauf aufmerksam gemacht werden muss. Ich bin jedoch kein Eiferer.Die Verwendung von 'm_' oder '_' vor einer Variablen erleichtert das Erkennen von Elementvariablen in Methoden in einem Objekt.
Als Nebeneffekt bringt die Eingabe von 'm_' oder '_' dazu, dass Intellsense sie zuerst einblendet;)
quelle
if (itsEmail.equals(email))
private int _my_int; public int myInt;? _my_int? )
- So sehr ich den _Style davon mag und denke, dass er lesbar ist, finde ich, dass es wohl mehr Probleme gibt als es wert ist, da es ungewöhnlich ist und wahrscheinlich mit nichts anderem in der von Ihnen verwendeten Codebasis übereinstimmt.
-automatisierte Codegenerierung (z. B. Eclipse generiert Getter, Setter) wird dies wahrscheinlich nicht verstehen, so dass Sie es von Hand reparieren oder mit Eclipse so viel Mist machen müssen, dass es erkannt wird.
Letztendlich gehen Sie gegen die übrigen (Java-) Weltpräferenzen vor und werden wahrscheinlich einige Belästigungen davon haben. Und wie bereits in früheren Postern erwähnt, übertrifft die Konsistenz in der Codebasis alle oben genannten Probleme.
quelle
Es gibt einen Grund, warum die Verwendung von Unterstrichen früher als schlechter Stil angesehen wurde. Wenn ein Laufzeit-Compiler unerschwinglich war und Monitore mit einer erstaunlichen Auflösung von 320 x 240 Pixel ausgestattet waren, war es oft nicht einfach, zwischen
_name
und zu unterscheiden__name
.quelle
Es ist schön, etwas zu haben, um private von öffentlichen Variablen zu unterscheiden, aber ich mag '_' in der allgemeinen Codierung nicht. Wenn ich in neuem Code helfen kann, vermeide ich deren Verwendung.
quelle
Hier ist ein Link zu den Empfehlungen von Sun für Java. Nicht, dass Sie diese verwenden müssen oder dass ihr Bibliothekscode allen folgt, aber es ist ein guter Anfang, wenn Sie von vorne anfangen. Tools wie Eclipse verfügen über integrierte Formatierer und Bereinigungstools, mit denen Sie diese Konventionen (oder andere von Ihnen definierte) einhalten können.
Für mich sind '_' zu schwer zu tippen :)
quelle
Es ist eine Mischung aus Codierungsstilen. Eine Denkrichtung besteht darin, privaten Mitgliedern einen Unterstrich zu geben, um sie zu unterscheiden.
anstatt
Andere verwenden Unterstriche, um eine temporäre lokale Variable anzugeben, die am Ende des Methodenaufrufs den Gültigkeitsbereich verlässt. (Ich finde das ziemlich nutzlos - eine gute Methode sollte nicht so lange dauern, und die Erklärung ist genau dort! Ich weiß, dass sie außerhalb des Geltungsbereichs liegt.) Bearbeiten: Gott bewahre, dass ein Programmierer dieser Schule und ein Programmierer der memberData-Schule zusammenarbeiten ! Es wäre die Hölle.
Manchmal wird generierter Code Variablen mit _ oder __ vorangestellt. Die Idee ist, dass kein Mensch dies jemals tun würde, also ist es sicher.
quelle
Ich denke, jeder Stil, der (ohne Grund) gegen die eigenen Stilrichtlinien einer Sprache verstößt, ist hässlich und daher "schlecht".
Zweifellos wurde der Code, den Sie gesehen haben, von jemandem geschrieben, der früher an einer Sprache gearbeitet hat, in der Unterstriche akzeptabel waren.
Einige Leute können sich einfach nicht an neue Codierungsstile anpassen ...
quelle
Der Grund, warum Leute es tun (meiner Erfahrung nach), ist die Unterscheidung zwischen Mitgliedsvariablen und Funktionsparametern. In Java können Sie eine Klasse wie diese haben:
Wenn Sie die Mitgliedsvariable _var1 oder m_var1 erstellt hätten, hätten Sie keine Mehrdeutigkeit in der Funktion.
Es ist also ein Stil, und ich würde es nicht schlecht nennen.
quelle
Persönlich denke ich, dass eine Sprache keine Regeln für den Codierungsstil festlegen sollte . Es ist eine Frage der Vorlieben, der Verwendung, der Bequemlichkeit und des Konzepts der Lesbarkeit.
Nun wird ein Projekt muss festgelegte Regeln Codierung, für Konsistenz über Angebote. Sie sind möglicherweise nicht mit diesen Regeln einverstanden, sollten sich jedoch daran halten, wenn Sie einen Beitrag leisten möchten (oder in einem Team arbeiten möchten).
Zumindest sind IDEs wie Eclispe agnostisch und ermöglichen das Festlegen von Regeln wie variablen Präfixen oder Suffixen, verschiedenen Arten der Platzierung von Klammern und der Speicherverwaltung usw. Sie können sie also verwenden, um Code gemäß Ihren Richtlinien neu zu formatieren .
Hinweis: Ich gehöre zu denen, die ihre alten Gewohnheiten von C / C ++ fernhalten, Java mit m_-Präfixen für Mitgliedsvariablen (und s_ für statische) codieren, Booleschen mit einem Anfangsbuchstaben b voranstellen, einen Anfangsbuchstaben in Großbuchstaben für Funktionsnamen verwenden und geschweifte Klammern ausrichten. .. Der Horror für Java-Fundamentalisten! ;-)
Funnily, welche die Konventionen ist , wo ich arbeite ... wahrscheinlich , weil die Haupt ursprünglichen Entwickler kommt von MFC Welt! :-D
quelle
Es ist nur Ihr eigener Stil, nichts ein schlechter Stilcode und nichts ein guter Stilcode, nur unterscheiden Sie unseren Code von den anderen.
quelle