Heim >Web-Frontend >js-Tutorial >Dojo Javascript-Programmierungsstandards Standardisieren Sie Ihr eigenes JavaScript-Schreiben_Grundkenntnisse
Vorwort
Die Vorteile guter JavaScript-Schreibgewohnheiten liegen auf der Hand. Heute empfiehlt Bingo jedem die Javascript-Programmierspezifikation. Es wird empfohlen, dass jeder anhand dieser Spezifikation lernen kann. Vielen Dank an i.feelinglucky für die Übersetzung.
Vorwort
Jeder Verstoß gegen diesen Leitfaden ist zulässig, wenn er die Lesbarkeit verbessert.
Der gesamte Code sollte für andere leicht lesbar sein.
Schnelle Lesereferenz
Kern-API Bitte verwenden Sie den folgenden Stil:
结构 | 规则 | 注释 |
模块 | 小写 | 不要使用多重语义(Never multiple words) |
类 | 骆驼 | |
公有方法 | 混合 | 其他的外部调用也可以使用 lower_case(),这样的风格 |
公有变量 | 混合 | |
常量 | 骆驼 或 大写 |
Regeln
Kommentare
结构 | 规则 |
私有方法 | 混合,例子:_mixedCase |
私有变量 | 混合,例子:_mixedCase |
方法(method)参数 | 混合,例子:_mixedCase, mixedCase |
本地(local)变量 | 混合,例子:_mixedCase, mixedCase |
Private Variablen | Gemischt, Beispiel: _mixedCase |
Methodenparameter | Gemischt, Beispiel: _mixedCase, MixedCase |
Lokale (lokale) Variablen | Gemischt, Beispiel: _mixedCase, MixedCase
|
Namenskonvention
1. Variablennamen müssen aus Kleinbuchstaben bestehen.
2. Bei der Klassenbenennung werden Kamel-Benennungsregeln verwendet, zum Beispiel:
Konto, EventHandler
3. Konstanten müssen vor dem Objekt (der Klasse) oder der Aufzählungsvariablen deklariert werden. Aufzählungsvariablen müssen mit praktischer Bedeutung benannt werden und ihre Mitglieder müssen Kamel-Benennungsregeln verwenden oder Großbuchstaben verwenden:
4. Abgekürzte Wörter können keine Großbuchstaben als Variablennamen verwenden:
getInnerHtml(), getXml(), XmlDocument
5. Der Methodenbefehl muss ein Verb oder eine Verbphrase sein:
obj.getSomeValue()
6. Öffentliche Klassen müssen mit gemischten Namen (mixedCase) benannt werden.
7. CSS-Variablen müssen mit denselben öffentlichen Klassenvariablen benannt werden, denen sie entsprechen.
8. Variablenattributmitglieder privater Klassen müssen mit einem gemischten Namen (mixedCase) benannt werden und ein Unterstrich (_) vorangestellt werden. Zum Beispiel:
9. Wenn die Variable auf privat eingestellt ist, muss ihr ein Unterstrich vorangestellt werden.
this._somePrivateVariable = Statement;
10. Universelle Variablen müssen Typnamen verwenden, die mit ihren Namen übereinstimmen:
setTopic(topic) // Die Variable topic ist eine Variable vom Typ Topic
11. Alle Variablennamen müssen englische Namen verwenden.
12. Wenn die Variable einen größeren Gültigkeitsbereich hat (großer Gültigkeitsbereich), muss eine globale Variable verwendet werden. In diesem Fall kann sie als Mitglied einer Klasse entworfen werden. Wenn der Gültigkeitsbereich hingegen klein ist oder die Variable privat ist, verwenden Sie eine prägnante Wortbenennung.
13. Wenn eine Variable einen eigenen impliziten Rückgabewert hat, vermeiden Sie die Verwendung ähnlicher Methoden:
getHandler(); // Vermeiden Sie die Verwendung von getEventHandler()
14. Öffentliche Variablen müssen ihre eigenen Attribute klar ausdrücken, um mehrdeutige Wortbedeutungen zu vermeiden, zum Beispiel:
MouseEventHandler
, nicht MseEvtHdlr.
Bitte beachten Sie diese Regel noch einmal, die Vorteile liegen auf der Hand. Es kann die durch den Ausdruck definierte Bedeutung klar ausdrücken. Zum Beispiel:
dojo.events.mouse.Handler // statt dojo.events.mouse.MouseEventHandler
15. Eine Klasse/Konstruktor kann durch Erweitern des Namens ihrer Basisklasse benannt werden, sodass der Name ihrer Basisklasse korrekt und schnell gefunden werden kann:
EventHandler
UIEventHandler
MouseEventHandler
Eine Basisklasse kann ihren Namen unter der Voraussetzung verkürzen, dass ihre Eigenschaften klar beschrieben werden:
MouseEventHandler im Gegensatz zu MouseUIEventHandler.
Spezielle Namenskonvention
Der Begriff „get/set“ sollte nicht mit einem Feld verknüpft werden, es sei denn, es ist als private Variable definiert.
Variablennamen, denen „is“ vorangestellt ist, sollten boolesche Werte sein und können gleichermaßen „has“, „can“ oder „should“ sein.
Der Begriff „berechnen“ als Variablenname sollte sich auf eine berechnete Variable beziehen.
Der Begriff „finden“ als Variablenname bezieht sich auf die Variable, nach der die Suche abgeschlossen wurde.
Der Begriff „initialisieren“ oder „init“ als Variablenname sollte sich auf eine Klasse oder einen anderen Variablentyp beziehen, der instanziiert (initialisiert) wurde.
UI-Steuervariablen (User Interface) sollten den Steuertyp nach dem Namen haben, zum Beispiel: leftComboBox, TopScrollPane.
Zur Benennung von Sammlungen MÜSSEN Pluralformen verwendet werden.
Variablennamen, die mit „num“ oder „count“ beginnen, sind herkömmlicherweise Zahlen (Objekte).
Es wird empfohlen, für wiederholte Variablen Variablen mit Namen wie „i“, „j“, „k“ (usw.) zu verwenden.
Ergänzende Begriffe müssen ergänzende Wörter verwenden, wie zum Beispiel: abrufen/setzen, hinzufügen/entfernen, erstellen/zerstören, starten/stoppen, einfügen/löschen, beginnen/enden usw.
Verwenden Sie Abkürzungen für Namen, die abgekürzt werden können.
Vermeiden Sie mehrdeutige boolesche Variablennamen, zum Beispiel:
isNotError, isNotFound ist illegal
Es wird empfohlen, für Fehlerklassen nach dem Variablennamen „Exception“ oder „Error“ hinzuzufügen.
Wenn die Methode eine Klasse zurückgibt, sollte der Name angeben, was sie zurückgibt; wenn es sich um eine Prozedur handelt, sollte er angeben, was sie tut.
Datei
Bitte verwenden Sie 4 Leerzeichen-Tabstopps zum Einrücken.
Wenn Ihr Editor Datei-Tags unterstützt, fügen Sie bitte die folgende Zeile hinzu, um die Lesbarkeit unseres Codes zu erleichtern:
// vim:ts=4:noet:tw=0:
Übersetzungshinweis: Ausländer verwenden den VIM-Editor häufiger. Sie können diesem Artikel folgen.
Code-Faltung muss vollständig und logisch aussehen:
var o = someObject.get(
Ausdruck1,
Ausdruck2,
Ausdruck3
);
Hinweis: Die Einrückung von Ausdrücken und Variablendeklarationen sollte konsistent sein.
Hinweis: Funktionsparameter sollten explizit eingerückt werden und die Einrückungsregeln sollten mit denen anderer Blöcke konsistent sein.
Variable
Layout
Blockieren
Ein normaler Codeausschnitt sollte so aussehen:
IF-Anweisung sollte so aussehen:
Eine FOR-Anweisung sollte so aussehen:
WHILE-Anweisung sollte so aussehen:
DO … WHILE-Anweisung sollte wie folgt aussehen:
SWITCH-Anweisung sollte so aussehen:
Die TRY … CATCH-Anweisung sollte wie folgt aussehen:
Einzeilige IF – ELSE-, WHILE- oder FOR-Anweisungen müssen ebenfalls Klammern enthalten, können aber wie folgt geschrieben werden:
if (Bedingung){ Anweisung; }
while (Bedingung){ Anweisung; }
for (Initialisierung; Bedingung; Aktualisierung){ Anweisung;
Es wird empfohlen, den
Notizen
Dokumentation
Im Folgenden finden Sie einige grundlegende Funktions- oder Objektbeschreibungsmethoden:Zusammenfassung: Beschreiben Sie kurz den Zweck dieser Funktion oder dieses Objekts
Beschreibung: Eine kurze Beschreibung dieser Funktion oder Klasse
Rückgabe: Beschreibt, was diese Funktion zurückgibt (ohne den Rückgabetyp)
Grundlegende Funktionsinformationen
Keine Rückgabewertbeschreibung
Funktionserklärung
In manchen Fällen sind Funktionsaufrufe und Deklarationen unsichtbar. In diesem Fall haben wir keine Möglichkeit, Anweisungen usw. (für den Aufruf des Programms) in die Funktion einzufügen. Wenn diese Situation auftritt, können Sie eine Klasse verwenden, um die Funktion zu kapseln.
Hinweis: Diese Methode kann nur verwendet werden, wenn die Funktion keine initialisierten Parameter hat. Wenn nicht, werden sie ignoriert.
Variable
Da die Deklaration von Instanzvariablen, Prototypvariablen und externen Variablen konsistent ist, gibt es viele Möglichkeiten, Variablen zu deklarieren und zu ändern. Die spezifische Definition und Positionierung sollte den Namen, den Typ, den Umfang und andere Informationen der Variablen angeben, an der sie zum ersten Mal erscheint.
Variablenanmerkungen in Objekten
sollte auf die gleiche Weise wie Objektwerte und Methoden gekennzeichnet werden, beispielsweise wenn sie deklariert werden:
Rückgabewert
Da eine Funktion mehrere verschiedene (Typ-)Werte gleichzeitig zurückgeben kann, sollte nach jedem Rückgabewert ein Kommentar zum Rückgabetyp hinzugefügt werden. Innerhalb der Zeile können Kommentare abgegeben werden. Wenn alle Rückgabewerte vom gleichen Typ sind, geben Sie den Rückgabetyp an. Wenn mehrere unterschiedliche Rückgabewerte vorhanden sind, markieren Sie den Rückgabetyp als „gemischt“.
Pseudocode (à discuter)
Parfois, vous devez ajouter une description de processus fonctionnel pour cette fonction ou cette classe dans une fonction ou une classe. Si vous prévoyez de faire cela, vous pouvez utiliser /*======== (= le caractère apparaît de préférence 5 fois ou plus), ce qui a l'avantage de ne pas avoir à ajouter ces éléments au code (Annotation : auteur original Cela signifie probablement un système de gestion de code).
Il semble qu'il y aura un très long commentaire dans /*====== et =====*/. Vous pouvez envisager de le supprimer une fois l'ajustement de la fonction terminé.
fonction(/*module.pseudo.kwArgs*/ kwArgs){
dojo.debug(kwArgs.url);
dojo.debug(kwArgs.mimeType);
>
Lien original : http://dojotoolkit.org/developer/StyleGuide
Traduit par : i.feelinglucky{at}gmail.com de http://www.gracecode.com