The type of file is put at the end, it's fancySelectView
not viewFancySelect
and it's environmentController
not controllerEnvironment
.
File names are camel cased, no dashes or underscores.
var
is only used to define one var, no multiline statements.
GOOD
var foo;
var bar;
var baz;
BAD
var foo,
bar,
baz;
Leading commas are avoided, we use trailing commas. Also make sure we don't have a dangling comma on the last item.
GOOD
var foo = [
'foo',
'bar',
'baz'
]
BAD
var foo = [
'foo'
, 'bar'
, 'baz'
]
Leading .
on chains are expected:
GOOD
promisify($scope.dir, 'destroy')()
.catch(function () {
console.log('foo');
})
.finally(function(){
console.log('foo');
});
BAD
promisify($scope.dir, 'destroy')().catch(function () {
console.log('foo');
}).finally(function(){
console.log('foo');
});
Functions are not var'd they are always named.
GOOD
function myFunction () {
return 'MyResponse'
}
BAD
var myFunction = function () {
return 'MyResponse'
}
We always put a space between our function definition and the (
and there is also a space before every {
GOOD
function myFunction () {
}
BAD
function myFunction(){
}
BAD
function myFunction() {
}
BAD
function myFunction (){
}
We always use braces around if's and else's. Also spacing is like that of functions.
Else's are formatted like so } else {
GOOD
if (isTruthy) {
console.log('It\'s super truthy!')
} else {
}
BAD
if (isTruthy)
console.log('It\'s super truthy')
Attributes are alphabetical
GOOD
div(
bar = "foo"
foo = "bar"
)
BAD
div(
foo = "bar"
bar = "foo"
)
There are no commas after attributes
GOOD
div(
bar = "bar"
foo = "foo"
baz = "baz"
)
BAD
div(
bar = "bar",
foo = "foo",
baz = "baz"
)
PSA - new naming standards for views and directives… instead of viewFancySelect
it’s fancySelectView
we are trying to slowly migrate all our views to have view at the end rather than the beginning.
And for modals its newContainerModalView
instead of viewNewContainerModal