These rules apply to pure JS, as well as JSA inside of Polymer. Follow the Google Style Guide as a baseline, except as follows below.
As a baseline, be consistent with standard Polymer style as used by Polymer elements themselves. Some exceptions and clarifications are listed below.
Instead of <iron-ajax>
, prefer using the family of sk.request methods, found in common.js
Rationale: It is easier to debug procedural code over the declarative element. iron-ajax requires looking between template and the JS in the element declaration, which is sometimes a lot of scrolling. It is easier to read when the logic is all in one place. Some legacy code may use iron-ajax, but do not follow that example.
Behaviors should exist one per file, with the file name ending in “-behaviors.html”. If a Behavior is not used by any templating logic, consider implementing the logic in pure JS, using a namespace as appropriate.
Rationale: If methods are not used for templating, pure JS is more portable.
Elements should exist one per file, with the file name being the same as the element. If an Element has a helper element that should not be used alone, it may be included in the same file. Example: details-summary.html
Properties should be named using one word (if possible) or using snake_case. Private properties and methods should be prefixed with an underscore (e.g. _super_private).
Rationale: The names are consistent in Javascript and HTML land. Polymer will automatically convert camelCase into sausage-case otherwise, which leads to hilarity and/or tears.
Python code follows the Google Python Style Guide.