2016-10-23 9 views
2

Ich denke, dass offizielle code style guidelines von Google sehr hilfreich sind, aber sie nicht die Namenskonventionen für Ansichtselemente abdecken.Namenskonvention für Android-Widgets

Sagen wir, wir einfache Aktivität, die ein ImageView, ein TextView und Button enthält. Code würde wie folgt aussehen:

class SimpleActivity extends Activity { 

    private ImageView mImageView; 
    private TextView mTextView; 
    private Button mButton; 
} 

Natürlich werden wir nicht solche Namen für Widgets geben, weil sie nicht beschreibend sind. Wir sollten die Funktionen dieser Widgets kennen. Stellen wir uns vor, dass ImageView ein Benutzerprofil darstellt, TextView den Benutzernamen darstellt und Button die Schaltfläche "Weiter" darstellt.

ich mögliche Namenskonventionen in drei Kategorien unterteilen würde:

1.

class SimpleActivity extends Activity { 

    private ImageView mUserProfileImageView; 
    private TextView mUsernameTextView; 
    private Button mContinueButton; 
} 

Ein großer Vorteil von ersten Konventionen ist, dass während Mitglieder in Code verwenden, wissen wir, dass diese Textview ist und wir kann zum Beispiel "setText()" -Methode verwenden. Leider ist der Name sehr lang, weil fauler Programmierer ein guter Programmierer ist, das ist sein Nachteil.

2.

class SimpleActivity extends Activity { 

    private ImageView mUserProfileImage; 
    private TextView mUsernameText; 
    private Button mContinueButton; 
} 

Hier haben wir Konvention gemischt, wissen wir noch, welche Art von ist Widgets ist es, während irgendwo im Code verwenden, aber vielleicht, wenn wir kompliziertere Funktionen von Widgets haben diese Namen wäre immer noch zu lang?

3.

class SimpleActivity extends Activity { 

    private ImageView mUserProfile; 
    private TextView mUsername; 
    private Button mContinue; 
} 

Die faulste Kategorie.

Frage

Welche Namenskonventionen Sie im Code verwenden und was ist Ihre Erfahrung? Vielleicht gibt es bessere Konventionen, die ich nicht erwähnt habe? Welche Art von Konvention verwendet Google?

+0

Ich verwende eine "Namenskonvention", die ich von meinen VB und VB.NET Zeiten migriert habe. Ich verwende das Präfix 'txt' für TextViews,' img' für ImageViews, 'btn' für Buttons, ... Und ich benutze' FRG_', 'ACT_',' CLS_' für die Namen der Aktivitäten, Fragmente und Klassen (seit sie muss mit Großbuchstaben beginnen). Normalerweise verwende ich Variablen nicht als Präfix. Aber ich könnte 'bln',' str', 'int', ... verwenden.falls ich es wollte. –

Antwort

4

Zunächst wird das Präfix 'm' im AOSP-Quellcode verwendet. Es ist nicht als Konvetion in Android-Apps gedacht, daher empfehle ich Ihnen, es zu entfernen (Sie können ein bisschen mehr lesen here).

Ihre dritte Option ist die erste zu beseitigen; zum Beispiel mContinue kann leicht eine boolesche Variable sein, die darstellt, ob man etwas weiter macht, also ist es definitiv nicht sehr lesbar.

Zwischen der ersten Option und der zweiten, würde ich immer noch für die erste gehen, da es deutlich lesbarer ist, und als allgemeine Regel in OOP, Lesbarkeit ist wichtiger als kurze Namen. Wenn Sie außerdem die Methoden für die Anpassung und Datenbindung der Ansichten auf andere Klassen verschieben, verfügen Sie im Aktivitätscode über eine Mindestanzahl an Referenzen.

+0

Ich weiß, dass das Präfix "m" von den Vorlieben des Entwicklers abhängt, das verwende ich. Ich denke deine Erklärung ist ziemlich überzeugend. – ThirdMartian