Folha de Estilo - TecProg-2018-2/TecProg-VoxPop-WebApp GitHub Wiki
1. Formatação
2. Variáveis e Funções
3. Comentários
4. Classe
5. Interface
6. Namespace
7. Enum
8. null
vs. undefined
9. Array
10. Parenteses
11. Chaves
12. Operações
1.1. O código deve ser indentado com tabs, utilizando um tab (tamanho 2) para cada nível de indentação ou 2 espaços.
1.2. O espaço entre dois blocos de código deve ser de apenas uma linha em branco (um enter).
1.3. É importante que a indentação dentro das chaves seja correta
1.3.1. Exemplo:
Não recomendado
function algumaFuncao(a, b) {
var c = 1;
return inner;
}
Recomendado
function algumaFuncao(a, b) {
var c = 1,
d = 2,
inner;
if (a > b) {
inner = function() {
return {
r: c - d
};
};
} else {
inner = function () {
return {
r: c + d
};
};
}
return inner;
}
1.4. O construtor deve estar formatado desta forma:
constructor(
private router: Router,
private requester: RequestsService,
private cookieService: CookieService,
private token: TokenService,
private validator: InputValidatorService
) { }
- Use
camelCase
para nome de funçoẽs e variáveis.
Não recomendado
var FooVar;
function BarFunc() { }
Recomendado
var fooVar;
function barFunc() { }
- Use uma única declaração para cada variável quando inicializar a mesma.
Não recomendado
var x = 1; var y = 2
Recomendado
var x = 1, y = 2;
- Os comentários em blocos:
Classes
eMétodos
, devem ser feitos da seguinte forma:
Recomendado
/**
* Comentários
* aqui dentro.
*/
Não recomendado
// Comentários
// aqui dentro.
- Os comentários simples, devem ser feitos da seguinte forma:
Recomendado
/* Comentário aqui dentro. */
Não recomendado
// Comentário aqui dentro.
- Use
PascalCase
para nome de classes.
Não recomendado
class foo { }
Recomendado
class Foo { }
- Use
camelCase
para 'class member' e métodos.
Não recomendado
class Foo {
Bar: number;
Baz() { }
}
Recomendado
class Foo {
bar: number;
baz() { }
}
-
Use
PascalCase
para nomes. -
Não use
I
no começo do nome.
Não recomendado
interface IFoo {
}
Recomendado
interface Foo {
}
- Use
PascalCase
para nomes.
Não recomendado
namespace foo {
}
Recomendado
namespace Foo {
}
- Use
PascalCase
para nomes em enums.
Não recomendado
enum color {
}
Recomendado
enum Color {
}
- Use
PascalCase
para enum member
Não recomendado
enum Color {
red
}
Recomendado
enum Color {
Red
}
- De preferência não use nenhum dos dois.
Não recomendado
let foo = {x:123,y:undefined};
Recomendado
let foo:{x:number,y?:number} = {x:123};
- Use checagem truthy para objetos que possam ser
null
orundefined
Não recomendado
if (error === null)
Recomendado
if (error)
- Use
== undefined
/!= undefined
(e não===
/!==
) para checar estadosnull
/undefined
. Nunca use outros valores para verificar (exemplo:''
,0
,false
) e.g.
Não recomendado
if (error !== null)
Recomendado
if (error != undefined)
- Para arrays faça
foos:Foo[]
em vez defoos:Array<Foo>
.
- Não deixe espaços na parte de dentro do parenteses.
Não recomendado
if ( x < 10 )
Recomendado
if (x < 10)
- Após o uso das estruturas condicionais e metodos, deve se aplicar espaço antes de abrir chaves(ex: {}).
- A primeira chave deve permanecer na mesma linha do operador.
- 'else' deve estar entre chaves, e com espaço separando.
Não recomendado
if(variavel = 0)
{
// código
}
else
{
// código
}
Recomendado
if(variavel = 0) {
// código
} else {
// código
}
- Quando dentro de colchetes, cada bloco deve ser separado com um enter, deixando as chaves em cada linha
Não recomendado
datasets: [{
label: a,
data: b,},
{ label: c,
data d,}
]
Recomendado
datasets: [
{
label: a,
data: b,
},
{
label: c,
data: d,
}
]
- Deve-se colocar espaço entre operadores.
Não recomendado
variavel=(1+2)*3;
Recomendado
variavel = (1 + 2) * 3;