diff options
author | Florian Dold <florian.dold@gmail.com> | 2016-03-01 14:25:13 +0100 |
---|---|---|
committer | Florian Dold <florian.dold@gmail.com> | 2016-03-01 14:25:13 +0100 |
commit | 6ee2a1516200cb036271a67e772498ea13f07d9a (patch) | |
tree | 1c07415328069b15e8001be6eac250f1bd68c53e /contrib/style.txt | |
parent | 55e83e3fc9f184b9f0ce3f6975eddb8456d32136 (diff) |
re-add files from old wallet repo to contrib/
Diffstat (limited to 'contrib/style.txt')
-rw-r--r-- | contrib/style.txt | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/contrib/style.txt b/contrib/style.txt new file mode 100644 index 000000000..d6d96cb7d --- /dev/null +++ b/contrib/style.txt @@ -0,0 +1,49 @@ +TypeScript style +================ + +Basics: +- Indent with 2 spaces. +- Keep a maximum line length of 120 characters. +- Prefer "double quotes" for strings. +- Never omit optional semicolons. +- Do not put opening braces or brackets on a new line. +- Call functions without spaces: foo(bar) +- Use 'let' instead of 'var' whenever possible. +- Declare "use strict;". +- Use rocket (=>) syntax for anonymous functions. If an anonymous function is + too long, make it a named function. +- Use the strict equality operator (===). +- Document functions with JSDoc comments (http://usejsdoc.org). + + +JavaScript version: +Stick to ES6 features. Do not rely on any vendor-specific extensions (such as +Firefox often offers). ES6 features not yet supported by major browsers are +okay as long as there is a well-supported and reasonable polyfill (such as +babel) available. + + +Names: +- Use PascalCase for classes/types, camelCase for variables, functions and + properties, UPPER_SNAKE_CASE for constants, kebab-case for event names. +- Only capitalize the first letter of an acronym in identifiers (e.g. HttpResponseCode). + + +APIs: +- Prefer 'Promise' to one-shot continuations whenever possible. +- Prefer handlebars templates to poking around in the DOM. + + +Dependency Injection (DI): +DI is a useful pattern when components need to be replaced by mocks or have +multiple co-existing implementations. But DI also makes code overly generic, +bureaucratic and less readble. Only use DI if there is a definite need for it, +do not use it by default. Inject individual dependencies via class +constructors and avoid service locators. + + +Misc: +- Do not use ES6 template strings for constructing HTML, + use TSX/JSX literals instead. +- For everything not covered here, stick to this style guide: + https://github.com/airbnb/javascript. |