Difference between revisions of "JavaScript coding conventions"

From PKP Wiki
Jump to: navigation, search
(First release.)
 
(Forgot to add a link to the Google style guide)
Line 1: Line 1:
 
= Google Coding Conventions =
 
= Google Coding Conventions =
  
We use Google's JavaScript style guide as a starting point for our own style guide.
+
We use [http://google-styleguide.googlecode.com/svn/trunk/javascriptguide.xml Google's JavaScript style guide] as a starting point for our own style guide.
  
 
Only deviations from the Google style guide will be documented here.
 
Only deviations from the Google style guide will be documented here.

Revision as of 12:13, 10 December 2010

Google Coding Conventions

We use Google's JavaScript style guide as a starting point for our own style guide.

Only deviations from the Google style guide will be documented here.

JsDoc Comments

We JsDoc comments as outlined in the Google style guide with but we name the variable name directly after the @param tag and the type without curly braces.

Generally we encourage inline comments. These help readers of your code to understand the logic without having to understand every line of code. It's also a good practice to write inline comments before you write code so that you first think about the logic and semantics you want to implement and then about the syntax.

Visibility

We do not generally use the @protected and @private markers that Google recommends. We do, however, implement the following nomenclature for class members (properties and methods):

  • We group class members by visibility. First public members, then protected members and finally private members. Sections are divided with a three line // style comment indicating the visibility of the following class members.
  • An underscore at the start of the name marks a class member private. You are not supposed to use such a member outside scope even if the visibility is not enforced by closure.
  • Protected class members are named like public methods but they must not be used outside of the inheritance hierarchy of the current class.