Padrões de Codificação no Desenvolvimento de Sistemas

Como os idiomas reais, cada linguagem de programação tem suas respectivas regras, pontuações, pausas e pontos, sendo necessário conhecer esses padrões para manter o código organizado e com fácil entendimento. Nas linguagens de programação precisamos seguir alguns padrões básicos para que o código não vire uma bagunça no meio de um desenvolvimento.

Exemplos de padronização em Java

Java é umas das linguagens mais utilizadas hoje no mundo do desenvolvimento e os programadores costumam utilizar alguns padrões definidos pela comunidade que serão descritos abaixo.

Convenção de Nomes

Mantenha o tamanho dos nomes grande o bastante para transmitir o que eles representam. Exemplo: primeiroNome, sobrenome, ordemServico.

Nomes de Classes e Interfaces

Os nomes de classe devem ser substantivos e, em caso de nomes compostos, utilize nomes com a primeira letra de cada palavra interna maiúscula. Use palavras inteiras evitando acrônimos e abreviaturas. Exemplo: Cliente ou ContaCliente.

Nomes de Métodos

Os nomes dos métodos devem ser verbos, em casos compostos com o primeiro nome minúsculo, e com a primeira letra de cada palavra interna em maiúsculo. Exemplo: calcularPagamento().

Nomes de Variáveis

Os nomes de variáveis devem estar com uma primeira letra minúscula e, em caso de nomes compostos, com a primeira letra de cada palavra interna em maiúsculo. Exemplo: contraPeso, primeiroNome.

Nomes de Constantes

Os nomes de constantes para tipos de dados ordinais devem ter todas as letras em maiúsculo, separadas por underline. Exemplo:

1

2

public static final int MAX_POLICY_AMOUNT; ou

public static final char PROCESS_INFO_COMMAND;

Comentários

Adicione comentários para facilitar a compreensão do código. Mantenha o comentário simples e separe-os de tal forma o código fique limpo e legível. Escreva também os comentários onde alguma explanação é necessária. Não escreva comentários para as coisas óbvias.

Use Linhas em Branco

Forneça linhas em branco entre as seções do código para melhorar a legibilidade. Use uma linha em branco nas seguintes circunstâncias:

  • Para separar as definições de classes das definições de métodos;
  • Para separar as variáveis locais de um método;
  • Para separar blocos de código;
  • Para separar comentários das seções lógicas do código.

Espaços em Branco e Tabulação

Use o espaço em branco para melhorar a legibilidade do código nas seguintes circunstâncias: Entre uma palavra-chave e um parêntese. Exemplo:

1

2

while (condicao) {

}

Após vírgulas na lista entre parênteses. Exemplo:

1 operacao(param1, param2, param3);

Entre um operador binário e seu operando. Exemplos:

1

2

x += y + z;

a = (a + b) / (c * d);

Variáveis Locais

Declare uma variável local por linha do código e adicione um comentário que identifique a variável. Exemplo:

1 int contador = 0; // contador para número de referências

Atributos

Para declarar atributos utilize os seguintes padrões:

  • Finalidade: Documente a finalidade do atributo;
  • Visibilidade: Mantenha a visibilidade tão baixo quanto possível;
  • Iniciação: Certifique-se de que todos os atributos estão inicializados antes que sejam alcançados. Inicialize todos os atributos no momento da criação do objeto. A inicialização posterior pode ser usada para os campos que não são acessados regularmente.

Métodos

Para declarar métodos de membro utilize os seguintes padrões:

  • Nomenclatura: use get/set como um prefixo do nome do campo para todos os métodos de ascensão, a menos que forem do tipo booleano. Use o prefixo “is” para nomes de métodos que referenciem campos booleanos. Utilize também a primeira palavra do nome do método de membro como um verbo forte, ativo. Exemplo: getPotenciaMotor(), setPotenciaMotor(), isAutomatico(), reduzirMarcha().
  • Visibilidade: Mantenha a visibilidade de funções de membro tão restritiva quanto possível para minimizar o acoplamento entre as classes;
    Documentação: Inclua um cabeçalho para especificar as seguintes informações da função de membro:

    • O propósito da função;
    • Seu valor de retorno;
    • Os parâmetros;
    • As mudanças nas versões do código.

Declarações ou Comandos

Cada linha deve conter no máximo um comando.

Chaves ou Blocos

Siga um esquema consistente para a abertura e fechamento de chaves. Alinhe a abertura e fechamento das chaves verticalmente. Isto facilitará a identificação do começo e término dos blocos. Exemplo:

1

2

3

4

5

6

7

8

9

class Cliente

{

    public void operacaoParaCliente()

    {

        if(condicao)

        {

        }

    }

}

Utilização de Chaves

Sempre utilize chaves para delimitar blocos de comandos, mesmo que estes tenham apenas uma instrução:

1

2

3

4

5

6

if(determinadaCondicao) // EVITE ISSO!

    realizaOperacao();

 

if(determinadaCondicao){ // OK

    realizaOperacao();

}

 

Quando utilizamos padrões e boas práticas, garantimos que todos da equipe conseguirão ter o mínimo de entendimento do código que está sendo desenvolvido. Em linguagens como o Java já temos padrões indicados e definidos pela comunidade de forma documentada para que os desenvolvedores adotem um padrão universal de codificação, facilitando assim o entendimento de qualquer código desenvolvido na linguagem. Visto isso é indicado adotar sempre o padrão de codificação da linguagem utilizada.

 

Autor: Ricardo José Boff

 

Referências

Padrões de Codificação, por Tadeu Pereira, acesso em: <http://www.devmedia.com.br/padroes-de-codificacao/16529>

Introdução a Padrões de Codificação, por Diego Eis, acesso em: <https://tableless.com.br/introducao-a-padroes-de-codificacao/>

Dicas de Boas Práticas de Codificação, por Luiz Gustavo S. de Souza, acesso em: <https://luizgustavoss.wordpress.com/2010/09/09/dicas-de-boas-praticas-de-codificacao/>

Convenções de Código Java, por Carlos Eduardo, acesso em: <http://www.devmedia.com.br/convencoes-de-codigo-java/23871>

Componentização de Software uma Boa Prática

Os desenvolvedores são cada vez mais cobrados por performance de desenvolvimento, flexibilidade e fazer com seus sistemas fiquem cada vez mais integrados. Utilizando uma metodologia de componentização de software você pode ganhar essa performance e flexibilidade. Em alguns casos projetos de seis meses passaram a demorar dois, três meses de desenvolvimento. Continue lendo “Componentização de Software uma Boa Prática”

Os Diagramas Comportamentais da UML


Diagramas comportamentais são aqueles onde existe alguma alteração de comportamento das classes. Os principais diagramas comportamentais da UML são: Diagrama de Caso de Uso, Diagrama de Seqüência e Diagrama de Atividade. Este artigo tem o objetivo de descrever as principais características destes diagramas.

A UML permite que os desenvolvedores visualizem os produtos de seus trabalhos em diagramas padronizados propiciando uma notação gráfica facilmente entendível com a um explicação significativa. Continue lendo “Os Diagramas Comportamentais da UML”

Frameworks para desenvolvimento móvel multiplataforma

Com a concorrência acirrada e cada vez menos tempo para desenvolver novos produtos, os frameworks tem a finalidade de minimizar o tempo de desenvolvimento e maximizar os recursos já existentes, ou seja, os desenvolvedores ao invés de criar tudo do zero utilizam recursos prontos que irão facilitar o seu desenvolvimento e tendo como principal vantagem de serem multiplataformas. Continue lendo “Frameworks para desenvolvimento móvel multiplataforma”

Norma NBR ISO/IEC 12207

A norma internacional ISO/IEC 12207 tem como objetivo principal estabelecer uma estrutura comum para os processos de ciclo de vida e de desenvolvimento de softwares visando ajudar as organizações a compreenderem todos os componentes presentes na aquisição e fornecimento de software e, assim, conseguirem firmar contratos e executarem projetos de forma mais eficaz.

A norma ISO/IEC 12207 estabelece uma arquitetura de alto nível do ciclo de vida de software que é construída a partir de um conjunto de processos e seus inter-relacionamentos. Continue lendo “Norma NBR ISO/IEC 12207”

MPS.BR, passos para implantação do  Nível G

Este texto tem por objetivo descrever os passos para implantação do MPS.br nível G.
Com a enorme dependência das empresas com os diversos softwares utilizados, o grau de exigência que o mercado busca de suas prestadoras de serviço é cada vez maior. O MPS.br foi uma metodologia desenvolvida por brasileiros, baseada e compatível com o CMMI, que visa dar uma previsibilidade de qualidade, referente aos processos que as empresas de desenvolvimento de software definem, e devem seguir na execução de diferentes projetos. O MPS.br é divido em 7 níveis de maturidade, sendo o menos maduro o G, ao mais maduro A. Continue lendo “MPS.BR, passos para implantação do  Nível G”

Big Data! O que é?


Trabalhar com Big Data é retirar informações importantes para conseguir melhores resultados, a partir de uma gigantesca quantidade de dados de forma rápida e confiável.

Qualquer pessoa incrementa todos os dias centenas e centenas de informações novas em diversas redes sociais, documentos eletrônicos,blogs, lojas online, entre tantos outros. E o que as empresas fazem com estes milhares de dados? Praticamente nada. Porém com a Big Data isto mudou completamente, se quiseres aumentar a satisfação dos seu clientes e/ou fazê-los comprarem mais, são exatamente estas informações que devem ser analisadas. Continue lendo “Big Data! O que é?”

Boas práticas de segurança no desenvolvimento de jogos

A história dos jogos, é contada por homens e mulheres insaciáveis por inovação e criatividade, mas também por indivíduos que utilizaram destas hábeis pessoas para alavancar oportunidades capitalistas. O fato não é negativo mas sim um sinônimo de castigo.

Não é fácil desenvolver, criar e inovar, com a bendita pressão capitalista como alicerce do negócio. Tudo isso fez e faz parte da rotina de todos que direto ou indiretamente participam. Continue lendo “Boas práticas de segurança no desenvolvimento de jogos”

TDD em Java, como funciona!

O presente artigo pretende mostrar ao leitor o caminho das pedras para iniciar com o TDD em Java. Mas antes é preciso saber o que é Desenvolvimento Guiado por Testes? E como ele pode nos ajudar?

Gerenciar a complexidade por meio de testes em pequenas unidades do sistema é a receita desta metodologia para alcançar códigos enxutos, funcionais e livre de bugs, os três pilares do TDD apresentados na figura ao lado nos proporcionam uma visão holística, observamos um ciclo de desenvolvimento simples, verifica-se a falha, correge-se a falha e em seguida otimiza-se o código.

Agora que já compreendemos como funciona a técnica vamos descobrir como podemos trabalha-la com Java. Antes de mais nada precisamos dispor de um IDE com suporte ao JUnit sugiro o Eclipse um dos mais populares para o desenvolvimento em Java, mas o que é mesmo esse tal de JUnit? Continue lendo “TDD em Java, como funciona!”