commit 2f8aa00595ab40292019ca739041296c84703899
parent 7b2c566cad36a00bbbcf0beb05731020787b08e0
Author: Florian Dold <florian.dold@gmail.com>
Date: Wed, 6 Jan 2016 15:10:47 +0100
style guide
Diffstat:
1 file changed, 11 insertions(+), 2 deletions(-)
diff --git a/style.txt b/style.txt
@@ -17,8 +17,8 @@ Basics:
JavaScript version:
-Stick with ES6 features. Do not rely on any vendor-specific extensions (such
-as Firefox often offers). ES6 features not yet supported by major browsers are
+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.
@@ -33,6 +33,15 @@ 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.