Padrão para Códigos Java

Documentos relacionados
Tipos Primitivos, estruturas de iteração e decisão.

PROGRAMAÇÃO ESTRUTURADA E ORIENTADA A OBJETOS

Padronização do Código

Tipos, Literais, Operadores

Tipos, Literais, Operadores

Idiomas de Programação

Estruturas da linguagem C. 1. Identificadores, tipos primitivos, variáveis e constantes, operadores e expressões.

Uma Questão de Estilo Elementos de Estilo Java

Programação Estruturada

Linguagem Java - Introdução

Universidade de Mogi das Cruzes Implementação Orientada a Objetos - Profª. Danielle Martin. Guia da Sintaxe do Java

Lição 4 Fundamentos da programação

Programação de Computadores I Introdução ao C PROFESSORA CINTIA CAETANO

Análise de Programação

Diagramas Sintáticos

Sintaxe da linguagem Java

Introdução à Linguagem C

Linguagens de Programação

Ambientação com a Sintaxe de Java: parte 1

Palavras Reservadas da Linguagem Java

Programação com Acesso a BD. Programação com OO Acesso em Java

PHP Coding Standards v0.6 beta

CIÊNCIA DA COMPUTAÇÃO - LINGUAGEM DE PROGRAMAÇÃO II REVISÃO POO

Noçõ linguagem Java. Profs. Marcel Hugo e Jomi Fred Hübner. Departamento de Sistemas e Computação Universidade Regional de Blumenau - FURB

LINGUAGEM C: VARIÁVEIS E EXPRESSÕES

Variáveis primitivas e Controle de fluxo

Instituto Federal de Educação, Ciência e Tecnologia do Rio Grande do Norte Lista de Exercícios para a Terceira Unidade

Linguagem C Princípios Básicos (parte 1)

Notas de Aula 01: Introdução à linguagem de programação Java e ao ambiente de desenvolvimento NetBeans

Fundamentos da programação Parte - 1

Linguagens de Programação I

JAVA. Professor: Bruno Toledo

3. Linguagem de Programação C

Linguagem C: Introdução

Legibilidade do código fonte

Instituto Superior de Engenharia de Lisboa

Revisão Linguagem C Parte 1

#include <stdio.h> Void main() { printf( Cheguei!\n"); } INTRODUÇÃO A LINGUAGEM C

Linguagem de Programação III

Anhanguera Educacional S.A. Centro Universitário Ibero-Americano

Módulo 9 VARIÁVEIS, TIPOS DE DADOS, OPERADORES, ESTRUTURAS DE CONTROLO P S I C P T G P S I

Linguagem de Programação C

A Linguagem C. A forma de um programa em C

Programação Orientada a Objetos II Java Segunda aula. Prof. Rogério Albuquerque de Almeida

PROGRAMAÇÃO I E N T R A DA E S A Í DA D E DA D O S

Algoritmos I Aula 13 Linguagem de Programação Java

Introdução à Linguagem de Programação Java 1 INTRODUÇÃO À LINGUAGEM DE PROGRAMAÇÃO JAVA

Programação de Computadores II TCC Turma A-1

Computação Eletrônica. Tipos de dados, constantes, variáveis, operadores e expressões. Prof: Luciano Barbosa

Introdução à Programação em C

Introdução a JAVA. Variáveis, tipos, expressões, comandos e blocos

Sumário. 1. Introdução 4

Linguagens de Programação PROGRAMAÇÃO DE COMPUTADORES. Linguagem C. Linguagem C Estrutura Básica. Constante (literais) Linguagem C Primeiro Programa

Programação de Computadores II TCC Profs.: Anselmo Montenegro (1) & Marcos Lage (2) (1) (2)

Instituto Politécnico de Setúbal. Escola Superior de Tecnologia. Departamento de Sistemas e Informática. Guia para codificação em JAVA

Linguagem de Programação I. Aula 06 Linguagem C: Tipos de Dados

Java Standard Edition (JSE)

Revisão da Linguagem C Prof. Evandro L. L. Rodrigues

CONVENÇÃO DE CÓDIGO JAVA

Programação Estruturada e Orientada a Objetos

K&R: Capitulo 2 IAED, 2012/2013

Sintaxe Básica de Java Parte 2

Regras de Estilo para Programação em Java TM

abstract continue for new switch assert default goto package synchronized boolean do if private this break double implements protected throw

1) Operadores de auto incremento ++ e auto decremento --

Fabiano Moreira.

Algoritmos e Estruturas de Dados I IEC012. Linguagem C - Guia de bolso - Prof. César Melo

Engenharia Elétrica AAM. Professor: Marco Shawn Meireles Machado

Introdução à Programação Aula 04. Prof. Max Santana Rolemberg Farias Colegiado de Engenharia de Computação

Unidade 2: Linguagem Java Para Programadores C Variáveis, Operadores, Estruturas Prof. Daniel Caetano

Material III-Bimestre Introdução e conceitos fundamentais da Linguagem C#

Introdução a classes e objetos. Prof. Marcelo Roberto Zorzan Prof a. Rachel Reis

Referências. Linguagem C. Tipos de variáveis em XC8. Tipos de variáveis. Tipos de variáveis em XC 8 Exemplo. Radicais numéricos em C

Linguagem C para Microcontroladores

Algoritmos e Programação

Introdução a JAVA. Variaveis, tipos, expressões, comandos e blocos

Bacharelado em Ciência e Tecnologia Processamento da Informação. Equivalência Portugol Java. Linguagem Java

Métodos Computacionais. Operadores, Expressões Aritméticas e Entrada/Saída de Dados

Módulo 03. Identificadores, Palavras Reservadas, e Tipos

Manual de Padrões para Desenvolvimento Java

Universidade Estadual de Mato Grosso do Sul Ciência da Computação Algoritmos e Estruturas de Dados I (AED-I) Prof. Nilton

Orientação a Objetos e a Linguagem Java

Introdução ao Java. Marco A L Barbosa malbarbo.pro.br. Departamento de Informática Universidade Estadual de Maringá

PROGRAMAÇÃO I A LINGUAGEM DE PROGRAMAÇÃO JAVA I

MsC. João Maria MsC. Liviane Melo

Programação Orientada a Objetos

Compiladores - JFlex. Fabio Mascarenhas

Conceitos básicos. Computação eletrônica: Gurvan Huiban

Algoritmos e Técnicas de

Compiladores - JFlex. Fabio Mascarenhas Monday, April 15, 13

Compiladores - Análise Léxica

INTRODUÇÃO AO JAVA PARA PROGRAMADORES C

Linguagem de Programação. Thiago Leite Francisco Barretto

A linguagem C (visão histórica)

PHP: <?php echo("hello World");?> Printa Hello World na página do navegador, mais fácil do que no Java.

Transcrição:

Padrão para Códigos Java Rafael G. M. Souza 1 rafael.gorski@gmail.com Abstract. A source code standard helps development team to have a common code style to improve maintenance and refactoring of the code. This document presents a group of rules, notations and references for java coding. Additionally a checklist is available. Resumo. Um padrão de código ajuda a equipe de desenvolvimento a ter um estilo comum que facilita a manutenção e refatoração de código. O seguinte documento apresenta um conjunto de regras, notações e referencias para codificação em Java. Adicionalmente um checklist é disponibilizado. 1. Introdução Este documento tem como objetivo apresentar padrões de código Java. De acordo com a Universidade Central de Washington [CWU 2014] cerca de 80% do custo do ciclo de vida de um software é gasto com manutenção. É muito raro que um código seja mantido pelo seu autor portanto os padrões de código ajudam na clareza de um software, isto causando que o código seja entendido mais rápido. 2. Contextualização O presente documento é uma compilação de diversas fontes e tende a ser dinâmico sofrendo modificações e melhorias ao longo do tempo. 3. Convenção de Nomes As seguintes regras gerais aplicam para escolha de nomes: Utilize descrição completa, não utilize abreviações. Por exemplo: primeironome, cnpjfilial. Evite nomes longos. Sugestão que seja menor que 15 posições. Evite nomes similares como por exemplo: produto, produtos. Auto-documentação, o código deve ser entendido por outros utilize nomes significativos como impostoicms, impostocofins no lugar de imposto1, importo2. 4. Formatação 4.1 Indentação Todas as indentações devem ser com quatro espaços, utilizando espaços e não tabs. Alinhamento vertical de chaves na mesma coluna que foram criadas. Todos os if, else, while devem usar chaves mesmo sendo de uma linha. É opcional a largura de linha de 80 ou 100 colunas.

Código em Java com indentação void foo() while (bar > 0) bar--; Código em Java sem indentação void foo() while (bar > 0) bar--; if (oatmeal == tasty) else if (oatmeal == tasty) else switch (suckfactor) case 1: default: switch (suckfactor) case 1: default: Figura 1. Exemplo de código indentado e não indentado. 4.2 Continuação de quebra de linha com mais 4 espaços.

Quando a linha de código tiver uma quebra é necessário começar o código na linha seguinte com acréscimo de 4 colunas a frente do alinhamento da linha superior. 4.2 Notação CamelCase Todos objetos devem implementar a notação CamelCase [Wikipedia 2014, CamelCase], a tabela 1 apresenta exemplos por tipo de identificadores. Identificador Regra Classes, Interfaces, Enum Anotações Métodos Variáveis e Tabela 1. Convensão CamelCase Sentenças convertidas para nomes devem ser substantivos, com a primeira letra maiúscula. Evite Siglas, abreviações e mnemônicos. Métodos devem ser verbos. Com a primeira letra em minúscula. Devem iniciar com minúsculas. Não devem começar com (_, $, %, &). Variáveis temporárias dentro de estruturas como for, while devem ser i, j, k, m, n. Exemplo class Produto; class EnriquecimentoFatura; executar(); getnewclient(); int i; char cq; float containerwidth; Constantes Devem ser todas as letras maiúsculas. int TIMEOUT = 60; int MAX_VALUE = 5; 4.2 Espaços em branco Todos os nomes de métodos devem seguir com o parênteses a esquerda. nomedometodo (i, j); // incorreto nomedometodo(i, j); // correto Todos os nomes de arrays devem seguir colchetes a esquerda. args [0]; // incorreto args[0]; // correto Operadores binários devem ter espaços de separação em ambos os lados. a=b+c; // incorreto a = b+c; // incorreto a=b + c; // incorreto a = b + c; // correto

w = 2*x + 3*y; // incorreto w = 2 * x + 3 * y; // correto w = (2 * x) + (3 * y); // correto Operadores de Incremento e Decremento imediatamente precedentes a variável. contador ++; // incorreto contador++; // correto i --; // incorreto i--; // correto Virgulas e Ponto-Virgulas sempre seguidos de espaços em branco. for (int i = 0;i < 10;i++) // incorreto for (int i = 0; i < 10; i++) // correto getcountrycode(type,country); // incorreto getcountrycode(type, country); // correto Todos os casts devem ser sem espaço. (MinhaClasse) v.get(3); // incorreto (MinhaClasse )v.get(3); // incorreto (MinhaClasse)v.get(3); // correto 5. Arquivo fonte 5.1 Codificação de Caracteres em UTF-8 Todos os arquivos fonte devem estar codificados com o padrão UTF-8. 5.2 Estrutura Um código fonte consiste em: 1. Licença; 2. Declaração do pacote; 3. Declaração das importações; 4. Uma única declaração de classe 6. Comentários Cada pacote, classe, interface, método e objeto deve ter uma explicação do seu propósito. 6.1 Javadoc Todo o código deve seguir diretivas de javadoc da Oracle [Oracle 2014 Javadoc].

6.2 API Caso o código for uma API então deve seguir diretivas de Requisitos para escrever uma especificação de API Java da Oracle [Oracle 2014 API]. 6. Checklist O seguinte checklist deve ser executado a cada nova classe gerada ou solução entregue. 1. Geral [ ] Cada arquivo fonte java contém uma única classe ou interface dentro? [ ] Cada arquivo fonte java contém a seguinte ordem: pacote, imports, declaração da classe? [ ] A primeira linha, apos comentário, de cada arquivo fonte java contém declaração de package? 2. Estilo do Código [ ] São utilizados quatro espaços em branco como identação? [ ] Existem linhas maiores que 100 colunas? [ ] Quando linhas quebram, as mesmas estão alinhadas com quatro colunas adicionais? [ ] Cada linha contém uma única sentença? [ ] Uma linha em branco para as seguintes ocorrências: Entre métodos. Entre uma variável local e um métodos. Entre blocos de lógica dentro do código. [ ] Espaços em branco para as seguintes ocorrências: Separar palavras chaves e parênteses. Após virgulas em listas de argumentos. Todos os operadores lógicos. Na expressão for. Em Casts. [ ] Nunca usar break ou continue em lógicas? [ ] Uma declaração de variável por linha? 3. Comentários [ ] Cada arquivo fonte java contém javadoc descrevendo a implementação?

4. Convenção de Nomes [ ] Classes e Interfaces, nomes sendo substantivos. Não utilizar mnemônicos ou abreviações. Notação CamelCase com a primeira letra maiúscula? [ ] Métodos, nomes sendo verbos. Notação CamelCase com a primeira letra minúscula? [ ] Variáveis, significado claro. Notação CamelCase com a primeira letra minúscula? [ ] Constantes, nomes em letras maiúsculas? Bibliografia [JavaRanch 2014] Java Programing Style Guide, <http://www.javaranch.com/stylelong.jsp>, Acesso em 28 Outubro 2014. [Wikipedia 2014, Indentação] Indentação, <http://pt.wikipedia.org/wiki/indentação>, Acesso em 28 Outubro 2014. [Google 2014] Google Java Style. <http://googlestyleguide.googlecode.com/svn/trunk/javaguide.html>, Acesso em 29 Outubro 2014. [Wikipedia 2014, CamelCase] Camel Case, <http://pt.wikipedia.org/wiki/camelcase>, Acesso em 8 Novembro 2014. [CWU 2014] Java programming Style Guide, Central Washington University, <http://www.cwu.edu/~gellenbe/javastyle/index.html>, Acesso em 8 Novembro 2014. [Oracle 2014, Javadoc] How to Write Doc Comments for the Javadoc Tool, Oracle, <http://www.oracle.com/technetwork/java/javase/documentation/index-137868.html >, Acesso em 10 Novembro 2014. [Oracle 2014, API], Requirements for Writing Java API Specifications, Oracle < http://www.oracle.com/technetwork/java/javase/documentation/index-142372.html >, Acesso em 10 Novembro 2014. [Oracle 2014, Code conventions],, Oracle, < http://www.oracle.com/technetwork/java/javase/documentation/codeconventions- 141855.html >, Acesso em 04 Novembro 2014. [Dalbery 2014] Java coding standrads cheklist. < http://users.csc.calpoly.edu/~jdalbey/swe/codestdcheck.html >, Acesso em 10 Novembro 2014.