Namenskonventionen: camelCase versus underscore_case? Was denkst du darüber? [geschlossen]

Kommentare

  • " Ehrlich gesagt ist der Code leichter zu lesen " Meinung oder Tatsache?
  • Es wird nur ' but_i_think_mix_ id = „97408c6b94″>

viel schneller als ' IThinkTheyAreBothAboutTheSame '. Ich ' bin mir ziemlich sicher, dass dies wissenschaftlich bewiesen werden kann. 🙂

  • @John Isaacks: Ich ' bin traurig zu berichten (als untergeordneter Befürworter), dass Eine Studie kam zu dem Schluss, dass " Kamelhülle zu einer höheren Genauigkeit bei allen Probanden führt, unabhängig vom Training " .
  • IWonderWhetherReadingEnglishWrittenInOneStyleVersusAnotherMakesMuchDifference. InTheEnd, IFindThatNeitherIsVeryGoodAtBeingEasyToRead. Es_schraubt_schrecklich_mit_Linienlänge_und_ macht_gleich_die_einfachste_Komplikation_kompliziert. Ich frage mich, ob es eine Sprache gibt, die in der Zukunft für zitierte Variablennamen unterstützt wird. " Dies wäre meiner Meinung nach viel sinnvoller als camelCase oder underscore_separators ".
  • Antwort

    Ich stimme zu, dass dies in gewissem Maße von der Sprache abhängt, die Sie verwenden. Code sieht in der Regel ordentlicher aus, wenn Ihre Symbolnamen der gleichen Formatierung folgen Regime als eingebaute Sprache und Bestandsbibliotheken der Sprache.

    Aber wo es eine Wahl gibt, bevorzuge ich Unterstreichungen gegenüber Kamelfällen aus einem einfachen Grund: Ich finde diesen Stil leichter zu lesen. Hier „s ein Beispiel: Was finden Sie besser lesbar? Dies:

    aRatherLongSymbolName 

    oder dies:

    a_rather_long_symbol_name 

    Ich finde die Unterstrichversion viel einfacher lesen. Mein Gehirn kann die Unterstriche viel leichter ignorieren, als es die Grenzen von Klein- und Großbuchstaben im Kamelfall erkennen kann, insbesondere wenn die Grenzen zwischen Glyphen liegen, die anderen Glyphen im umgekehrten Fall ähnlich sehen, oder Ziffern (, O/0, t/I usw.). Diese boolesche Variable speichert beispielsweise einen Wert, der angibt, ob ein Iglu mit der richtigen Baugenehmigung erstellt wurde oder nicht (zweifellos ein allgemeiner Anwendungsfall für uns alle):

    isIllicitIgloo 

    Ich finde diese Version viel einfacher zu lesen:

    is_illicit_igloo 

    Vielleicht sogar schlechter als ein schwer lesbarer Symbolname ist ein leicht zu verstehender Symbolname. Gute Symbolnamen sind selbstdokumentierend, was für mich bedeutet, dass Sie sie lesen und ihre Bedeutung auf einen Blick verstehen sollten. (Ich bin sicher, wir alle lesen zum Ausdrucken Code-Ausdrucke im Bett, aber gelegentlich sind wir auch in Eile.) Bei Kamelsymbolnamen finde ich oft, dass es leicht ist, sie falsch zu lesen und den falschen Eindruck zu bekommen der Semantik eines Symbols.

    Kommentare

    • Ein Problem mit Unterstrichen: Benutzerfreundlichkeit. Bei den meisten (europäischen) Tastaturen muss das Unterstrichzeichen gedrückt gehalten werden Drücken Sie die UMSCHALTTASTE. Sie müssen dies auch für camelCase tun, aber ich kann die UMSCHALTTASTE bequem mit dem kleinen Finger gedrückt halten und einen beliebigen Buchstaben eingeben. Da sich der Unterstrich jedoch direkt neben der UMSCHALTTASTE befindet, müssen Sie beide gleichzeitig drücken ziemlich umständlich und unterbricht den Schreibfluss.
    • Beim ersten fand ich camelCase tatsächlich leichter zu lesen – obwohl letzteres offensichtlich anders ist.
    • Dies hängt in der Tat davon ab, was Sie ' wird verwendet. Ich finde camelCases einfacher zu lesen, und außerdem sind sie ' kürzer als gleichwertige Unterstrichnamen.
    • Ich hasse die Eingabe von Unterstrichen.
    • Der Punkt " Usability " ist hierfür irrelevant. Code wird normalerweise nur einmal von einer Person geschrieben, aber lassen Sie ' in der Reihenfolge von 1-10 mal sagen, was einige Bearbeitungen und mögliche Paarprogrammierungen berücksichtigt. Aber Code wird normalerweise ein Dutzend / Hunderttausende Male von einer oder möglicherweise mehreren Personen gelesen. Daher ist es um mehrere Größenordnungen wichtiger, Code leicht lesbar zu machen, als Code einfach zu schreiben.

    Antwort

    Ich denke, Sie sollten die von Ihrer Plattform verwendete Namenskonvention verwenden. underscore_case sieht im C # -Code seltsam aus, da camelCase in Ruby =)

    Kommentare

    • Konsistenz ist ein Schlüssel. Unabhängig davon, ob Sie mit der örtlichen Konvention einverstanden sind oder nicht, werden Sie Ihre eigene Zeit (und alle anderen ' s) einfacher gestalten, indem Sie konsistent sind. (Es sei denn, die lokale Konvention selbst ist inkonsistent.) Außerdem ist die Lesbarkeit meistens ein falsches Argument: Lesen Sie genügend Code, wenn Sie ' feststellen, dass es kaum Unterschiede gibt, es sei denn, Sie entscheiden, dass er nicht lesbar ist.
    • Stimme voll und ganz zu. Ich denke nur, dass es besser ist, Plattformkonventionen anstelle von benutzerdefinierten zu verwenden, weil sich beispielsweise neue Mitarbeiter im Team damit wohler fühlen.
    • Aber wehe denen von uns, die auf zwei Plattformen mit zwei Konventionen arbeiten , wo einige bevorzugen und andere bevorzugen!
    • Wenn die Plattform zwei Konventionen hat, würde ich ' alle Teammitglieder bitten, für Konventionen zu stimmen, mit denen sie vertraut sind =)

    Antwort

    Ehrlich gesagt spielt es keine Rolle, solange jeder im Team das verwendet Das gleiche Schema. Die Chancen stehen gut, dass das eine oder andere für Sie natürlicher ist, obwohl die Lesbarkeit des Codes auf lange Sicht wirklich wichtig ist und es dann entscheidend ist, dass jeder die gleichen Namensregeln einhält.

    Kommentare

    • Sie haben vollkommen recht, aber ich ' versuche herauszufinden, welche Meinung die Leute über Hexe haben, wäre besser zu verwenden (let ' s sagen für das gesamte Team) und warum … während ich verstehe, dass einige Leute nur an eine Konvention gewöhnt sind oder andere natürlicher mit der anderen umgehen.

    Antwort

    Basierend auf einer Antwort der Antwort von John Isaacks:

    „Ehrlich gesagt ist der Code leichter zu lesen“ Meinung oder Tatsache?

    Ich habe mich für eine Recherche entschieden und dieses Papier gefunden. Was hat die Wissenschaft zu diesem Thema zu sagen?

    1. Kamelhülle hat eine größere Wahrscheinlichkeit der Korrektheit als Unterstriche. (Die Gewinnchancen sind um 51,5% höher.)
    2. Im Durchschnitt dauerte der Fall eines Kamels 0,42 Sekunden länger 13,5% länger.
    3. Training hat keinen statistisch signifikanten Einfluss darauf, wie Stil die Korrektheit beeinflusst.
    4. Diejenigen mit mehr Training waren schneller für Bezeichner im Kamelfallstil.
    5. Training in einem Stil, wirkt sich negativ auf die Suchzeit für andere Stile.

    In meinem Blog-Beitrag zu dem Thema, das ich überprüfe wissenschaftliche Arbeit, und machen Sie die folgende Schlussfolgerung.

    Nur die Langsamkeit des Kamelfalls ( 2) ist für die Programmierung wirklich relevant, da die anderen Punkte aufgrund moderner IDEs und der Mehrheit der CamelCase-Benutzer in der Studie als irrelevant abgetan werden. Die Diskussion (zusammen mit einer Umfrage) finden Sie im Blog-Beitrag.

    Ich bin gespannt, wie dieser Artikel Ihre Meinung ändern könnte. 🙂

    Kommentare

    • Natürlich lehnen Sie alle anderen Punkte ab, weil Sie Unterstriche bevorzugen, und die anderen Punkte ' helfen Ihrem Fall nicht …
    • @Charles: Ja und nein, IMHO mache ich gute Argumente, warum sie abweisbar sind, und einige von ihnen werden im Papier selbst sogar als problematisch diskutiert. A Follow-up-Papier untersucht einige der Probleme dieses Papiers , und die Ergebnisse sind Pro-Unterstriche.

    Antwort

    Kopieren Sie die intelligentesten Typen

    Bei Programmiersprachen: Kopieren Sie den Stil des Entwicklers der Sprache.

    Zum Beispiel codiere ich C genau wie in K & R.

    Dann wenn jemand versucht, eine langweilige Codierung zu starten Ich kann ihnen sagen, dass sie „Dennis Ritche darüber sprechen und mich wissen lassen, was er sagt“.

    Kommentare

    • Das Original ist nicht immer das Beste. Es gibt viele schlechte Praktiken im K & R-Evangeliumsbuch über C. Bevor dies einen Flammenkrieg auslöst … lesen Sie einige der MISRA-Empfehlungen.
    • Nicht ' nicht vergessen, K & R wurde geschrieben, wenn keine GUI-IDEs vorhanden waren. Die meiste Arbeit wurde an 80×25-Zeichen-Terminals ausgeführt, sodass der Platz auf dem Bildschirm knapp war. Durch if (...) { wurde eine Zeile gespeichert! Heutzutage gibt es ' mehr Bildschirmfläche – würde K & R anders sein, wenn es heute mit hochauflösenden GUI-IDEs und mehreren Monitoren geschrieben würde Setups?
    • Ja, aber wenn jemand sagt, dass er C wie K & R codiert, bekommt er Requisiten dafür, dass er altmodisch ist.
    • @quickly_now , sprechen Sie das mit Dennis Ritchie an und lassen Sie mich wissen, was er sagt!
    • Ich übernehme viele Formatierungen von MS: _internalToClassOnly, accessByGetter, PublicVariable.

    Antwort

    Im Allgemeinen bevorzuge ich camelCase. Dies liegt jedoch daran, dass ich den größten Teil meiner Karriere in Sprachen und Umgebungen gearbeitet habe, in denen die Styleguides normalerweise camelCase empfehlen (Java, ECMAScript, C ++). Als PHP-Person haben Sie wahrscheinlich die entgegengesetzte Präferenz / p>

    Das heißt, wenn Sie über drei oder vier Wörter hinausgehen oder Initialismen wie XMLForExample verwenden, ist es nicht mehr so lesbar.

    Deshalb gibt uns emacs den Brillenmodus.

    Kommentare

    Antwort

    camelCase

    Dies ist einer der wenigen Orte, an denen ich immer“ Typfähigkeit „gegenüber Lesbarkeit wählen werde. CamelCase ist einfach einfacher zu tippen, und wenn ich besser mit den Fingern umgehen kann, gewinnt ich einen leichten Lesbarkeitsgewinn.

    vorausgesetzt natürlich, dass das Projekt nicht auf einer vorhandenen Codebasis mit einem anderen Standard aufbaut.

    Kommentare

    • Ich stimme ' nicht zu, Sie schreiben Code nur einmal, müssen ihn danach aber mehrmals lesen

    Antwort

    Es ist eine interessante Frage, über die ich schon oft nachgedacht habe. Aber ich denke, es gibt keine eindeutige Antwort.

    Nach den „kulturellen“ Konventionen ist dies eine gute Wahl. „Kulturell“ bedeutet in diesem Fall Konventionen, die im Team / Unternehmen eingerichtet wurden, und sie tragen grundsätzlich auch die Sprach- / Plattformkonventionen. Es hilft anderen, Ihren Code leicht zu lesen / zu verwenden, und erfordert keinen zusätzlichen Aufwand und keine zusätzliche Zeit, um sich mit dem Verständnis Ihres Codes vertraut zu machen.

    Manchmal ist es interessant, akzeptierte Notationen zu brechen. Eines meiner kleinen Projekte (unter Python) Ich habe underscored_names für Dienstprogrammfunktionen / „geschützte“ Methoden und methodNames für Methoden im Java-Stil

    verwendet. Mein Team war glücklich damit 🙂

    Antwort

    Hängt von der Programmiersprache ab.

    Ich erwäge, den Fall in zu verwenden das gleiche Boot, ob die ungarische Notation verwendet werden soll oder nicht:

    • Python: underscore_case, keine ungarische Notation
    • C ++: camelCase, ungarische Notation

    Kommentare

    • @Kevin Cantu: Eigentlich ist der Name Javascript in PascalCase und nicht in camelCase …
    • @Guffa: Berühren Sie é!
    • @Kevin Cantu: unter JavaScript: XMLHttpRequest < – Ich hasse diesen Namen wi th eine Leidenschaft.
    • hypotheticalReasonsToNukeRedmond.push (XMLHttpRequest)
    • @Lionel: Tatsächlich wird die ungarische Notation in C ++ fast nie verwendet, da C ++ Ihre Typen bereits überprüft. ' ist mehr ein historisches Artefakt als alles andere.

    Antwort

    Beide!

    Ich entwickle viel in CakePHP und verwende entweder CamelCase oder $underscored_vars auf folgende Weise (auch außerhalb von CakePHP-Projekten):

    1. Dateinamen /lowercased_underscored.php Typisch, aber erwähnenswert.
    2. Klassen class CamelCase extends ParentObject. Beachten Sie, dass bei Verwendung von CamelCase das Anfangszeichen nicht in Kleinbuchstaben geschrieben ist. Ich finde camelCase, um wirklich seltsam auszusehen.
    3. Variablen $are_variables_underscored === TRUE;
    4. Variablen, die Instanzen – $CamelCase = new CamelCase();
    5. Array-Schlüssel $collection["underscored_keys"];
    6. Konstanten – denke ich Jeder kann zustimmen, dass Konstanten ALL_CAPS_AND_UNDERSCORED sein sollten.
    7. Methoden $CamelCase->foo_method_underscored();
    8. statische Methoden CamelCase::just_like_regular_methods();

    Kommentare

    • müssen mit Ihnen übereinstimmen, da das erste Zeichen niedriger sein muss Fall macht mich verrückt! Ich hasse camelCase aus Leidenschaft.
    • In Java, wo Namen normalerweise camelCased sind, beginnen die Klassennamen tatsächlich mit einem Großbuchstaben. Dies dient zur Unterscheidung von Methodennamen.

    Antwort

    Ich persönlich bevorzuge underscore_case, weil ich es besser lesbar finde, aber mit den anderen Antwortenden übereinstimme, die darauf hinweisen, dass die Konsistenz mit der vorhandenen Codebasis viel wichtiger ist.

    Ich habe jedoch ein Gegenbeispiel für diejenigen, die sagen: “ Befolgen Sie die Konvention Ihrer Sprache und ihrer Bibliotheken „.

    In der Vergangenheit haben wir C-Code unter Windows mit underscore_case geschrieben und Win32-Funktionen:

    if (one_of_our_conditions_is_true()) { call_one_of_our_functions(); CallSystemFunction(); } 

    Die visuelle Unterscheidung zwischen unseren Funktionsnamen und den Funktionsnamen von Microsoft war eher eine Hilfe als ein Hindernis Es wurde deutlich gezeigt, wann der Code in das „Systemland“ verschoben wurde.

    Außerdem konnte ich die Syntaxhervorhebungsregeln meines Editors ändern, um sie in verschiedenen Farben anzuzeigen, was beim Versuch weitere visuelle Hinweise gab Verstehe unbekannte Codeabschnitte (oder sogar meine eigenen).

    Antwort

    Ich mag Dylans ganz normale Striche wirklich, da sie einfach zu tippen und einfach sind -zu lesen.

    Wie

    result-code := write-buffer(file-stream, some-string) 

    Aber ich denke, da diese Sprache ziemlich dunkel ist, ist dies eine Art Off-Topic. .. 🙁

    Kommentare

    • Ich bin es auch leid, die Umschalttaste zu drücken, um Unterstriche einzugeben.
    • Dies ist normalerweise nicht möglich für Variablennamen, da " – " normalerweise Minus bedeutet.

    Antwort

    Mir wurde an der Universität beigebracht, camelCase zu verwenden. Ich habe in den letzten Jahren einige unterschiedliche Konventionen verwendet, bevorzuge jedoch camelCase gegenüber allem anderen. Ich denke, ich erinnere mich, dass ich irgendwo gelesen habe, dass camelCase tatsächlich am einfachsten zu lesen und zu verstehen ist.

    Kommentare

    • Nun, ' ist nicht einfacher, weil Sie irgendwo lesen. ' ist einfacher, weil es war Der erste, mit dem Sie gearbeitet haben und der hauptsächlich darauf zurückzuführen ist, dass Sie eher daran gewöhnt sind, zum Beispiel, dass ich ' mit underscore_case besser zurechtkomme.
    • wie in i ' habe gelesen, dass eine Studie durchgeführt wurde, und fand sie besser.

    Antwort

    Wie die meisten Leute erwähnt haben – Verwenden Sie den vorhandenen Standard. Wenn es sich um ein neues Projekt handelt, verwenden Sie den Standard für die Sprache und die Frameworks, die Sie verwenden werden.

    Und lassen Sie sich nicht verwirren. Hier geht es nicht um Lesbarkeit (was subjektiv ist), sondern darum, konsequent und professionell zu sein. Jeder, der in einer Codebasis mit zahlreichen „Standards“ gearbeitet hat, wird verstehen.

    Antwort

    Ich verwende manchmal eine Mischung: module_FunctionName. Alle (nicht statischen) Funktionen in meinen Modulen beginnen mit einer Modulabkürzung.

    Zum Beispiel eine Funktion zum Senden des Inhalts eines Puffers auf dem I2C-Bus:

    i2c_BufferSend() 

    Die Alternative i2c_buffer_send zeigt keine ausreichend große Trennung zwischen Präfix und Funktionsname. i2cBufferSend mischt in Präfix zu viel (es gibt eine ganze Reihe von I2C-Funktionen in diesem Modul).

    i2c_Buffer_send könnte jedoch eine Alternative gewesen sein.

    Meine Antwort war, dass Sie sich an das anpassen, was für Ihr Projekt am besten geeignet ist (Ihre Sprache, Ihre SW-Architektur, …), und ich wollte darauf hinweisen, dass das Mischen dieser Stile nützlich sein könnte.

    myGeneralOpinionIsThatNamesAreMuchHarderToReadInCamelCase. Ich respektiere die Tatsache, dass einige andere denken könnten, aber ich verstehe nicht wirklich, warumandere.

  • Solange die Konvention gut definiert ist (Präfix + Unterstrich + PascalCase) …
  • Ich verwende gerne Unterstriche, um Teile eines Namens zu trennen, die semantisch disjunkt sind Zwecke, insbesondere wenn die Gemeinsamkeit in beiden Hälften von Bedeutung sein kann. Zum Beispiel die Routinen Motor1_Start(), Motor2_Start(), Motor1_Stop() und Motor2_Stop() haben eine Beziehung, die ohne die Unterstriche möglicherweise weniger klar ist.
  • Antwort

    Persönlich Ich bevorzuge camelCase, aber in einigen Schriftarten sind Unterstriche meiner Meinung nach leichter zu lesen.

    Wenn Sie Präfixe zur Unterscheidung von Variablensätzen verwenden müssen, sollten Sie eine Sprache verwenden, mit der Sie Namespaces erstellen können oder Objekte oder etwas, das diese Informationen enthält.

    myName = 7 bobsName = 8 // :( me.name = 7 bob.name = 8 // :D 

    Wenn Sie Typen unterscheiden müssen, können Sie auch eine Sprache verwenden, die dies zulässt.

    var intThingy = 7; // :( int thingy = 7; // :) 

    Wenn Sie das gerade haben und den Namen nicht nur als Metadaten verwenden, haben Sie nicht genug lange Namen dafür Es ist sehr wichtig, ob Sie diesen zusätzlichen Tastendruck bevorzugen oder nicht.

    Kommentare

    • Einer der Gründe für die Verwendung von camelCase oder underscore_case ist, dass ich ' t nicht müssen die Objektdefinition finden, um zu erkennen, was es ist.

    Antwort

    Zuerst stimme ich dafmetal zu . Es ist äußerst wichtig, dass Sie keine unterschiedlichen Programmierstile mischen. Dies in ein und derselben Datei zu tun, ist meiner Meinung nach das Schlimmste, was Sie tun können. Über verschiedene Dateien hinweg ist es ablenkend, aber nicht fatal.

    Als Nächstes müssen Sie Regeln benennen, die für die Sprache, in der Sie schreiben, beliebt sind. Mein C ++ – Code für instnace wird offensichtlich anders aussehen als etwas für Python (PEP8 ist hier eine nette Anleitung)

    Sie können auch verschiedene Namenskonventionen verwenden, um auf verschiedene Dinge zu verweisen, so wie Sie wahrscheinlich UPPER_CASE für Konstanten verwenden (dies gilt nur für bestimmte Sprachen natürlich) können Sie this_style für lokale Variablennamen verwenden, während Sie camelCase für Instanz- / Mitgliedsvariablen verwenden. Dies ist möglicherweise nicht erforderlich, wenn Sie beispielsweise self oder this haben.

    Update

    Nehmen wir einen Fall, in dem Sie die Plattform Foo haben, die keine Namenskonventionen empfiehlt, und es ist die Wahl des Teamleiters, eine auszuwählen. Sie sind dieser Teamleiter, warum sollten Sie sich für camelCase entscheiden oder warum underscore_case.

    Es gibt wirklich keine Vorteile für einander. Diese Angelegenheit ist sehr subjektiv und wird, sobald sie vereinbart ist, keinen Unterschied mehr machen. Es gibt immer diese religiösen Kriege um diese kleinen Dinge. Aber wenn Sie sich erst einmal daran gewöhnt haben, scheinen die Diskussionen völlig überflüssig zu sein.

    Um Alex Martelli zu einer sehr ähnlichen Angelegenheit zu zitieren:

    Sicher, ich werde es müde, in Ruby das dumme „Ende“ am Ende jedes Blocks zu tippen (anstatt nur uneindeutig zu sein) – aber dann vermeide ich es, das ebenso dumme „:“ zu tippen Python benötigt am Start jedes Blocks, so dass „fast eine Wäsche ist :-). Andere Syntaxunterschiede wie“ @foo „gegenüber“ self.foo „oder die höhere Bedeutung von case in Ruby gegen Python sind für mich wirklich genauso irrelevant.

    Andere stützen ihre Wahl der Programmiersprachen zweifellos auf solche Probleme, und sie generieren die heißesten Debatten – aber für mich ist das nur eine Beispiel eines der Parkinson-Gesetze in Aktion ( Der Betrag der Debatte über ein Thema ist umgekehrt proportional zur tatsächlichen Bedeutung des Themas ).

    Quelle

    Wenn Sie der Teamleiter sind, nehmen Sie einfach eine. Da einer keine Vorteile gegenüber dem anderen hat, können Sie einfach Würfel werfen oder auswählen, was Ihnen besser gefällt.

    Antwort

    Ich habe vor einigen Jahren gelesen, dass Programmierer, die kein Englisch als Muttersprache sprechen, den Unterstrich leichter verstehen, aber ich kann die Referenz nicht finden und habe keine Ahnung, ob sie wahr ist.

    Antwort

    Für Programmiersprachen, die ich verwendet habe, wie Java, Python, C ++, habe ich ein klares Format angenommen:

    • ClassNamesArePascalCase
    • methodNamesAreCamalCase
    • variable_names_are_underscore
    • CONSTANT_VARIABLES_ARE_CAPITAL_VARIABLES

    Dies ermöglicht mir dies Erkennen Sie sofort, womit ich es zu tun habe. Ich habe festgestellt, dass dies nützlich ist, um es für mich selbst zu pflegen, und es sollte für andere, die den Code lesen, leicht zu befolgen sein. Ich denke, wie andere erwähnt haben, ist Konsistenz am wichtigsten. Deshalb finde ich mein Format Ich könnte mir interface_Names_Are_Like_This und Abstract_Classes_Are_Like_This als mögliche Erweiterungen vorstellen, aber es scheint komplizierter zu sein, zu folgen, und es scheint nicht so nützlich zu sein, eine Unterscheidung zu treffen.

    Ich fand es auch nützlich, streng zu sein und Dinge in PascalCase zu benennen, wie beispielsweise einen HTML-Parser wie HtmlParser anstelle von HTMLParser oder HTMLparser. Weil ich glaube, dass es einfacher ist, sich an die strenge Regel zu erinnern und die Wortgrenzen klarer zu halten (leider sind Rechtschreibfehler wie HTML oder SQL erforderlich). Ähnlich wie bei camelCase, htmlParserMethod anstelle von HTMLParserMethod oder HTMLparserMethod.

    UPDATE :

    Ich habe seitdem Verwendung gefunden, um diese Regeln um private Variablen zu erweitern.- _private_variable_names_are_prefixed_with_an_underscore – _PRIVATE_CONSTANT_VARIABLES_ARE_PREFIXED_WITH_AN_UNDERSCORE

    In Java bedeutet dies, dass sich private Felder per Definition in einem anderen Namespace befinden als lokale Variablen, was bedeutet, dass Sie die

    “ gesehen, aber diese Formate verwenden auch camelCase für die Variablennamen. Dadurch kann ich auch zwischen Feldern unterscheiden, auf die nur intern zugegriffen werden soll von der Klasse (und macht es super klar, wenn es außerhalb der Klasse geschieht object._field_x fällt auf).

    Antwort

    Wenn es nach mir ginge, würde ich nichts erzwingen oder andeuten die Verwendung eines bestimmten Stils, da wir als Programmierer in der Lage sein würden, ein Symbol IfItIsInCamelCase oder in_underscore_space oder sogar in_SomeOtherStyle zu lesen und zu verstehen, was es bedeutet. Ein wenig Zeit damit zu verbringen, das Symbol zu analysieren, ist im großen Schema kein großer Aufwand

    Nun, das Hauptargument für eine Konvention ist wohl, dass Sie im Voraus wissen, wie das Format eines Funktions- / Variablennamens lautet, und es nicht nachschlagen müssen – ist es LoadXMLFile, loadXMLFile , LoadXmlFi le, load_xml_file? Jetzt würde ich diesem Argument entgegenwirken, indem ich sage: „Holen Sie sich eine IDE, die die automatische Vervollständigung im Intellisense-Stil unterstützt!“ (allerdings nicht immer möglich).

    Am Ende spielt es jedoch keine Rolle, welchen Stil Sie verwenden, da es dem Compiler / Interpreter egal ist. Wichtig ist, dass der Name nützlich ist:

    NumberOfPrisonersReleasedByAccident manufacturer_name distance_EarthToMoon 

    Drei verschiedene Stile, aber Sie wissen genau, was jeder tut.

    Kommentare

    • Ich bin anderer Meinung, das Erscheinungsbild der Quelle ist wichtig. Siehe " Die pragmatische Programmierertheorie " '. Unterschiedliche Namenskonventionen verschlechtern das Erscheinungsbild. pragprog.com/the-pragmatic-programmer/extracts/software-entropy
    • @Gauthier: Obwohl ich der ' zerbrochenes Fenster ' Idee, ich glaube nicht, dass die Großschreibung von Symbolen eine ' zerbrochenes Fenster '. Zufällig angelegter Code ist es sicherlich, und mein aktuelles Projekt hat sicherlich eine Menge von dem, was ich versuche aufzuräumen, wann immer ich kann.
    • Ich stimme zu. Ich kann alle drei gleich gut lesen. ' spielt keine Rolle. Ich verwende nur das, was die Datei verwendet, dann, was auch immer die Sprache vorschlägt (Python) und was auch immer ich denke, das Projekt wird am besten bedient. (Ich habe früher in gwbasic programmiert, und es waren alles Großbuchstaben – die guten alten Zeiten!)

    Antwort

    Mag albern erscheinen, aber ich mag keine Unterstriche, weil der Unterstrich dünn ist und sich in mehrzeiligem Text verbirgt und ich ihn vermisse. Auch in einigen (vielen) Texteditoren und / oder Entwicklungsumgebungen, wenn Sie auf doppelklicken Ein Token-Name zum Hervorheben, um es zu kopieren oder per Drag & Drop zu verschieben. Das System hebt nicht das gesamte Token hervor, sondern nur einen Teil des Tokens zwischen benachbarten Unterstrichen. Das macht mich verrückt.

    Antwort

    Ich bevorzuge camelCase aus dem dummen Grund, dass ich den größten Teil meiner Entwicklung in Eclipse (für Java, PHP und JavaScript) mache und wenn ich Strg + oder Strg + durch Wörter stoppt es tatsächlich an den Grenzen von camelCase.

    Dh: myIntVariable würde von Eclipse als 3 Wörter behandelt, wenn Ct rl + ←   →

    Ich weiß, dass es eine seltsame Eigenart ist, aber ich bevorzuge es, die mittleren Wörter in einem camelCase-Namen bearbeiten zu können.

    Schreibe einen Kommentar

    Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.