Padrões de desenvolvimento JavaScript que utilizo

Publicado: 13/11/2013 em Programação
Tags:

1. Introdução
Utilizar padrões ajuda a escrever códigos melhores, utilizando as melhores práticas. Melhora a comunicação entre os desenvolvedores e equipes.

Tem-se em JavaScript:

  • uma linguagem orientada a objetos;
  • uma linguagem funcional;
  • a implementação do conceito de herança (normalmente fazendo uso de protótipos);
  • funções:
    • são objetos de primeira classe. Tratadas como qualquer outro objeto da linguagem, podendo inclusive terem propriedades e métodos próprios;
    • definem um escopo;
    • existem funções construtoras;
    • toda função tem uma propriedade “prototype”;
  • arrays são objetos;
  • inexistência de “classes”. JavaScript lida apenas com objetos.

2. Aspectos importantes a observar em JavaScript

Norma JavaScript
O núcleo (core) da linguagem de programação JavaScript é baseado na norma ECMAScript (ES, de forma abreviada). A versão 3 da norma foi aceita oficialmente em 1999. A versão 5 foi aprovada em dezembro de 2009. A inclusão mais importante na versão 5 foi o modo estrito. Para ativar este modo, basta uma vez por escopo fazer:

function init() {
         'use strict';
         // o resto da função...
}

A função
Em toda função que é criada, esta recebe automaticamente uma propriedade “prototype”. A propriedade “prototype” aponta para um novo objeto em branco, que por sua vez possui uma propriedade “constructor”. O “constructor” aponta para a função criada.

3. Padrões que utilizo no desenvolvimento de código JavaScript
3.1- Sobre variáveis:
a) Utilizar a menor quantidade de variáveis globais possíveis;
b) Sempre declarar variáveis usando “var”;
c) Usar uma única declaração “var” no topo de cada função para declarar as variáveis criadas.

3.2- Convenções de nomeações:
a) Ter como base o padrão camel case, adotando:

construtores (invocadas por new) camel case iniciando por maiúsculas, palavras sem separação. Preferencialmente nomeados como um “substantivo”;
funções/métodos camel case iniciando por minúsculas, palavras sem separação. Preferencialmente, a palavra é um “verbo”;
variáveis completamente em caixa baixa, palavras separadas por underscores;
constantes completamente em caixa alta, palavras separadas por underscores;
parâmetros recebidos por uma função/método começam com p_;
variáveis ou métodos privados ou “protegidos” (protected) começam com _ (underline);

3.3- Sobre indentação de blocos de código:
a) Usar sempre indentação do código;
b) Estilo de indentação 1TBS (The One True Brace Style);
c) Toda indentação deve ser feita utilizando tabulação, ao invés de espaços.
d) Usar sempre “{“, mesmo quando não obrigatório;
e) Usar “{” a cada if, else, while, function, etc., mesmo que estes só tenham uma linha de instrução;
f) A “{” deve ficar na mesma linha da instrução anterior (início do comando);
g) Todos os fins de instrução devem terminar com ; (ponto e vírgula).

3.4- Outros aspectos sobre estilos:
a) Aspas simples ‘ (ou seja, apóstrofo) para strings com código JS; e aspas duplas ” para o código HTML;
b) Usar espaços em branco:

Situação Exemplo
após “;” que separa as partes de um loop for (var j = 0; j < 50; i += 1) {...}
na iniciação de múltiplas variáveis em um loop for (var j = 0, max = 50; j < max; j += 1) {...}
após as vírgulas que delimitam itens de array var a = [1, 2, 3];
após vírgulas em propriedades de objeto e após os sinais de “:” que dividam nomes de propriedades e seus valores var o = {a: 1, b: 2};
após argumentos de funções function myFunc(a, b, c)
antes das chaves em declarações de função function myFunc() {}
após Function em expressões de função anônima var myFunc = Function () {}
para separar todos os operadores e seus operandos colocar um espaço antes e depois de + , – , * , = , < , > , <= , >= , ===  e assim por diante.

3.5- Preferir:
a) i += 1; (em vez de i = i + 1 ou i++)
b) loops “for normais” com arrays e loops “for-in” com outros objetos;
c) prealocar propriedade “length” usada em loops
d) usar o método hasOwnProperty() quando for iterar propriedades de um objeto;

Links
1- Funções em JavaScript
2- Padrões de desenvolvimento do Javascript

Anúncios

Deixe um comentário, pois isto é muito motivante para continuarmos este trabalho

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s