Ich kenne Kamelfallregeln, bin aber mit dieser Regel verwirrt. Für was steht das? Ich bin ein PHP-Entwickler. "Wir" verwenden erste Buchstaben von Variablen als Typangabe, wie 'b' für Boolesche Werte, 'i' für Ganzzahlen und so weiter.
Ist 'm' eine Java-Sache? Steht es für Handy? gemischt?
android
coding-style
pambuk
quelle
quelle
Antworten:
Diese Notation stammt aus den AOSP-Richtlinien (Android Open Source Project) für den Codestil für Mitwirkende :
Beachten Sie, dass im verknüpften Styleguide Code für das Android Open Source-Projekt bereitgestellt wird.
Es ist kein Styleguide für den Code einzelner Android-Apps.
quelle
computedValues
..."Viele Codierungsrichtlinien verwenden m für 'Mitglieder' einer Klasse. Wenn Sie also programmieren, können Sie den Unterschied zwischen lokalen und Mitgliedsvariablen erkennen.
quelle
m
Präfix.Was ist ein mPräfix?
msteht für Mitgliedsvariable oder Datenelement. Verwenden Sie das mPräfix für nicht öffentliche und nicht statische Felder.
Wann verwenden?
Wann nicht verwenden?
Was ich mache?
Ich persönlich benutze es nicht. Dies macht den Code komplizierter und die Lesbarkeit chaotisch. Wenn Sie Notepad noch zum Codieren verwenden, habe ich keine Wörter, aber moderne IDEs können Element- und lokale Variablen oder etwas anderes hervorheben und färben.
Fazit
Verwenden? "Ja" oder "Nein" ist Ihre persönliche Wahl.
quelle
public static int
, sondern verwendens
stattm
:public static int sFirstNumber;
siehe stackoverflow.com/a/49453184/7767664Wenn es sich um Mitgliedsvariablen in Klassen handelt, bedeutet 'm' 'Mitglied'. Viele Java-Programmierer tun dies, obwohl dies bei modernen IDEs nicht erforderlich ist, da Sie Hervorhebungen, Mauszeiger über QuickInfos usw. haben.
quelle
Laut Clean Code-Buch handelt es sich nicht um einen sauberen Code.
quelle
Wenn Sie Probleme haben wie
Vergessen Sie nicht, als nächstes zu tun ( Einstellungen / Editor / Codestil / Java / Codegenerierung ):
Update: In Kotlin wird so etwas nicht verwendet (daher ist es besser, dorthin zu wechseln und keine Präfixe mehr zu verwenden).
quelle
Ich finde es sehr individuell, welche Codekonventionen verwendet werden. Ich bevorzuge es, meine Variablen mit den folgenden Präfixen zu benennen:
Aber ich denke, dass jeder Programmierer seinen eigenen Stil hat.
quelle
Um zu beweisen, dass Sie diese Konvention für die Benennung von Variablen in Ihrem Code definitiv nicht behandeln sollten, übergebe ich einen Screenshot von einem übergeordneten Android Studio .
Finden Sie heraus, dass Variablen innerhalb eines Objekts speziell sortiert sind, um m-Variablen niedriger als Ihre nativen Variablen zu platzieren . Indem Sie sie in Ihrem Code mit dem Präfix "m" benennen, verstecken Sie sie in einem Haufen vor sich selbst .
quelle
Der einzige Vorteil dieses Codestils besteht darin, dass ich während einer automatischen Vervollständigung eines Verweises auf eine Variable weiß, dass ich "m" eingeben kann, um nur die Mitgliedsvariablen anzuzeigen.
quelle
Wie bereits erwähnt, ist es für verschiedene Variablen gestaltet. Es ist aber auch sehr nützlich für die Codegenerierung. Wenn Sie "Alt + Einfügen" drücken, erhalten Sie Fenster für die meisten Eigenschaften der Codegenerierung. Wenn Sie eine "get" -Methode für Ihre Variable generieren möchten, erhalten Sie.
Aber wenn Sie "m, s" deklarieren, erhalten Sie:
Es wird automatisch generiert und "m" oder "s" aus Ihrem Konstruktor gelöscht, get, set Methodenname. Danach werden "get" 'und "set" für das Feld ohne "m" generiert. Andoroid Fle-> Setting-> Code Style-> Java-> Code Genenretion. Und wie auf einem Bild machen. Vielleicht hilft es. Entschuldigung für meine eng. Android konfigurieren
quelle
Es scheint eine persönliche Präferenz einiger früher Android / Google-Ingenieure gewesen zu sein, Mitgliedsvariablen mit 'm' zu starten, und deshalb haben sie es empfohlen.
Jetzt wird diese Regel Entwicklern in Unternehmen, die keine AOSP-Beiträge leisten, in den Rachen gezwungen, einfach weil diese Seite als Android-Code-Stil-Regeln gilt. Diese Regel hat wenig oder gar keinen Nutzen. Google sollte in Betracht ziehen, es zu entfernen. Andernfalls geben Sie für Android Apps an, welche der Codestilregeln optional sind.
Bitte fügen Sie dieser Petition Ihren Unterstützungskommentar hinzu, um die Regel https://code.google.com/p/android/issues/detail?id=226814 zu entfernen
quelle
Aus Gründen der Lesbarkeit sollte die Konvention
m
für Mitgliedsvariablen unds
für statische Felder nicht mehr verwendet werden, wenn Sie eine moderne IDE wie Android Studio verwenden. Android Studio kann zwischen diesen unterscheiden, ohnem
oder hinzuzufügens
.quelle
Es kann auch angegeben werden, dass es für "mein" steht, wie in der Klasse / Instanz gesagt wird "Diese Variable gehört mir und niemand anderes kann darauf zugreifen." Anders als statisch, das zwar nur für die Klasse verfügbar ist, aber von allen Instanzen dieser Klasse gemeinsam genutzt wird. Wenn Sie beispielsweise Kreise zeichnen, müssen Sie wissen, wie groß der Radius jedes Kreises ist
Gleichzeitig möchten Sie, dass ein Zähler alle Kreise innerhalb der Kreisklasse verfolgt, die Sie haben könnten
und dann haben Sie nur statische Elemente, um die Anzahl der Kreise, die Sie derzeit haben, zu erhöhen und zu verringern.
quelle
Das Folgende sind die Namenskonventionen:
Beispiel:
quelle