Tableless - Desenvolvimento inteligente com Padrões Web

23/01/2012
Client-Side

Introdução aos padrões de codificação

É mais importante para o time concordar em um único estilo de código do que encontrar o estilo perfeito.

Por


Como os idiomas reais, cada linguagem de programação tem suas respectivas regras, individualidades, pontuações, pausas e pontos em comum com outras linguagens. Você precisa conhecer essas peculiaridades para falar fluentemente ou no mínimo ser entendido. Nas linguagens de para web ou qualquer outra linguagem de programação, precisamos seguir algumas regras básicas para que o código não vire uma língua estrangeira no meio do projeto.

Definir padrões é normal para que a equipe inteira escreva o código da mesma maneira. Esse assunto é longo e muito importante para todas as equipes de desenvolvimento. Programadores já quiseram me matar várias vezes porque eu uso TABS em vez de ESPAÇOS em arquivos Python/PHP. Programadores gostam de espaços. Eu não. Mas não é o nosso gosto que vai definir quais os padrões de código que devemos seguir.

Quando definimos padrões e boas práticas, garantimos que todos da equipe conseguirão ter o mínimo de entendimento do código daquele projeto que está na empresa a tempos. Se alguém da equipe adoecer ou precisar ir para o Canadá, outro integrante pode assumir o seu lugar sem precisar se preocupar em aprender novas regras, porque elas devem ser as mesmas do projeto anterior.

É importante que os integrantes da equipe sejam sempre fiéis aos acordos firmados no momento em que combinam esses padrões. É importante também que, caso eles encontrem um integrante fora da lei, que eles forcem o meliante a seguir as regras. Já vi gente perdendo o trabalho de uma semana por que estava trabalhando diretamente pelo FTP e o projeto não estava no GIT. O programador simplesmente APAGOU o projeto da pessoa. Nunca mais ela resolveu editar os arquivos fora do controle de versão. Esse tipo de atitude é perigosa mas muito necessárias às vezes. Devemos forçar as regras num ambiente onde todos devem quem, quando e como as linhas de código do projeto foram escritas.

Alguns pontos para se pensar e combinar:

Identação

Como devemos identar o código? Com espaços ou tabs? Se for com espaços quantos?

Espaços em brancos (Whitespaces)

Espaços devem ser incluídos depois de uma operação condicional? Espaços devem ser colocados entre o seletor e as chaves? E no final de cada linha, precisa?

Nomenclatura

Como as classes, ids e variáveis devem ser nomeadas? E as funções? Vamos usar CamelCase?

Comentários

Como faremos com os comentários? Como serão os delimitadores do comentário? O comentário deve ser completo ou precisa ser algo mais resumido?

Arquivos

Como os arquivos, que não fazem parte da estrutura padrão do CMS, Framework e etc deverão ser chamados? E o nome das pastas? Como as páginas serão chamadas?

Chaves e ponto/vírgula

As chaves deverão ser abertas na mesma linha ou devemos quebrar linhas? Vamos sempre usar ponto/vírgula? Vamos usar o padrão K&R ou Allman?

Quando definimos estas pequenas coisas, diminuímos muitos percalços no meio do caminho. Já vi projetos atrasarem meses por que um palerma abriu e salvou arquivos com o charset diferente do que já tinha sido combinado no início.

“It’s more important for people on a team to agree to a single coding style than it is to find the perfect style.” Building Scalable Web Sites: Building, Scaling, and Optimizing the Next Generation of Web Applications
Indico este livro sobre esse e outros assuntos sobre a construção, desenvolvimento e manutenção de websites

Por Diego Eis

Diego Eis criou o Tableless para disseminar os padrões web no Brasil. Como consultor já treinou equipes de empresas como Nokia, Globo.com, Yahoo! e iG. É palestrante e empreendedor.

http://twitter.com/diegoeis/

Veja os outros posts de

  • Luizz

    Bom dia, muito bom, akskakskas 

    palerma abriu e salvou arquivos com o charset 
    diferente ”.

  • Sr Renanzinho

    Você é o cara Diego :D

  • http://profiles.google.com/antoniomochi Antonio Aristides Mochi Junior

    Para o Javascript eu sempre referencio as convenções de códigos propostas pelo Douglas Crockford em [http://javascript.crockford.com/code.html], mesmo não gostando muito de fazer o comando “switch” identado da forma que ele propôs.

  • Ofelquis

    Tem algumas indentações que me deixam ligeiramente triste.

  • SparK Cruz

    variaçãoDeKAndR(camelCase){
        tabDe4 + “com espaços nos operadores somente”;
    }//quase padrão Java

  • Matheus Salmi

    A mesma opinião aqui =)

  • AdinanCenci

    Eu nomeio meus arquivos e pastas separando palavras por underline com exceção de classes ex: MinhaClasse.class.php,
    prefiro usar tab a espaço e camelcase. espaço depois de operação condicional? eu boto so p fica bonito, programação = arte

  • Alan Clesio

    Parabéns pelo texto, Diego Eis!
    Cada dia mais faz-se necessária uma só “linguagem” no ambiente de trabalho para desta forma facilitar e aprimorar o desenvolvimento ágil numa empresa.

  • http://www.facebook.com/people/Agripino-Duarte-da-Silva/100000131121835 Agripino Duarte da Silva

    “programadores gostam de espaço” é uma generalização absurda. é um saco ficar dando espaço pra identar código. sem falar que bagunça todo o código se for abrir em outro editor de texto. quem gosta disso só pode ser masoquista

  • http://www.criativocomum.com.br/ Diego Charles

    No Eclipse há uma opção de configuração onde a função TAB é convertida em um número de espaços que desejar, fornece maior compatibilidade do seu código em diferentes plataformas e IDE, para visualizar código recomendo o Notepad++, possui reconhecimento de linguagem e conversão de charset.

    Para mim o Charset e Falta de comentários são o calcanhar de Aquiles de um código, muito comum no mercado do PHP.

  • http://www.facebook.com/people/Agripino-Duarte-da-Silva/100000131121835 Agripino Duarte da Silva

    eu tinha mto problema de charset quando codava no windows. meu ambiente de trabalho agora é linux e não tenho mais esse problema. o eclipse é um bom editor, mas essa versão recente tem um bug q zoa a indentação quando cola um código

  • Evandro Oliveira

    Beleza, abre lá o 3º nível de HTML no Firefox com padrão de 8 espaços por TAB e você vai ver onde vai parar o fonte. Como já foi comentado, editores inteligentes convertem TAB em espaço. Além do exemplo do FF, há editores onde o TAB padrão é de tamanho 8, enquanto outros o tamanho é 4. Apesar de ser sempre um mesmo caractere, há disformidade de apresentação de código.

  • http://twitter.com/tarciozemel Tárcio Zemel

    Gosto bastante das diretrizes do PHP Style Guide do CodeIgniter.