Mudanças entre as edições de "Manual do Desenvolvedor"

De Grupo Acert
Ir para: navegação, pesquisa
(Regras de Nomeação)
(Organização dos projetos)
 
Linha 26: Linha 26:
 
'''Protected''' - Somente métodos declarados na classe, ou qualquer subclasse, ou qualquer classe existente no mesmo pacote poderão acessar.
 
'''Protected''' - Somente métodos declarados na classe, ou qualquer subclasse, ou qualquer classe existente no mesmo pacote poderão acessar.
  
'''--Default --''' Somente métodos declarados na classe ou qualquer classe que esteja no mesmo pacote. O uso do default se faz pela ausência de qualquer keyword para especificar visibilidade.
+
'''-- Default --''' Somente métodos declarados na classe ou qualquer classe que esteja no mesmo pacote. O uso do default se faz pela ausência de qualquer keyword para especificar visibilidade.
  
 
'''Public''' - Todas as classes podem acessar.
 
'''Public''' - Todas as classes podem acessar.
Linha 98: Linha 98:
 
O Java não tem limite para o nome de classes, métodos ou variáveis. Seguem algumas regras a serem adotadas para compor os nomes:
 
O Java não tem limite para o nome de classes, métodos ou variáveis. Seguem algumas regras a serem adotadas para compor os nomes:
  
* '''Constantes:''' use sempre letras maiúsculas separando os nomes por underscore. Por exemplo: MAX_VALUE. O nome da constante deve ser claro e sua definição deve pertencer a uma classe cujo objetivo tenha afinidade com a função da constante. Também é utilizada a regra para utilização dos tipos enumerados. <br> Nota: Constantes são variáveis para serem definidas como final e static. Em geral as constantes devem ser utilizadas para representar literais.
+
* '''Constantes:''' use sempre letras maiúsculas separando os nomes por underscore. Por exemplo: MAX_VALUE. O nome da constante deve ser claro e sua definição deve pertencer a uma classe cujo objetivo tenha afinidade com a função da constante. Também é utilizada a regra para utilização dos tipos enumerados. <p> Nota: Constantes são variáveis para serem definidas como final e static. Em geral as constantes devem ser utilizadas para representar literais.</p>
  
* '''Variáveis privadas e parâmetros:''' utilize letras minúsculas para o primeiro nome. Os nomes devem estar em português e fazer sentido para a função da variável. Eles serão compostos de tantos nomes quanto forem necessários emendados entre si (sem espaços) e sem utilizar o underscore (_) respeitando um máximo de não mais de 30 caracteres. Não use nomes abreviados. <br> Nota: O nome da variável deve ser totalmente legível.
+
* '''Variáveis privadas e parâmetros:''' utilize letras minúsculas para o primeiro nome. Os nomes devem estar em português e fazer sentido para a função da variável. Eles serão compostos de tantos nomes quanto forem necessários emendados entre si (sem espaços) e sem utilizar o underscore (_) respeitando um máximo de não mais de 30 caracteres. Não use nomes abreviados. <p> Nota: O nome da variável deve ser totalmente legível.</p>
  
 
* '''Métodos:''' use letra minúscula no primeiro nome. Os nomes devem estar em português e fazer sentido para o objetivo do método. Eles serão compostos de tantos nomes quanto forem necessários emendados entre si (sem espaços) e sem utilizar o underscore (_). Não use nomes abreviados. A utilização do português como padrão se excetua na utilização de prefixos já comumente utilizados em programas e que tem um contexto já bem definido como por exemplo:
 
* '''Métodos:''' use letra minúscula no primeiro nome. Os nomes devem estar em português e fazer sentido para o objetivo do método. Eles serão compostos de tantos nomes quanto forem necessários emendados entre si (sem espaços) e sem utilizar o underscore (_). Não use nomes abreviados. A utilização do português como padrão se excetua na utilização de prefixos já comumente utilizados em programas e que tem um contexto já bem definido como por exemplo:
  
 
+
<blockquote>
{| border=1 cellpadding=5px
+
{| border=1 cellspacing=0 cellpadding=5
 
|-
 
|-
 
! Prefixo
 
! Prefixo
Linha 122: Linha 122:
 
| Métodos que fazem teste e retornam um valor booleano
 
| Métodos que fazem teste e retornam um valor booleano
 
|}
 
|}
 
+
</blockquote>
  
 
* '''Classes e interface:''' use letra maiúscula na primeira letra do nome. Use nomes descritivos. Para interfaces, o nome deve possuir o prefixo I (letra i maíucula)
 
* '''Classes e interface:''' use letra maiúscula na primeira letra do nome. Use nomes descritivos. Para interfaces, o nome deve possuir o prefixo I (letra i maíucula)
  
 
+
<blockquote>
{| border=1 cellpadding=5px
+
{| border=1 cellspacing=0 cellpadding=5
 
! Sufixo
 
! Sufixo
 
! Função
 
! Função
Linha 149: Linha 149:
 
| Para classes cuja função seja de Busines Delegate action Para as classes que tem o papel de actions da camada de apresentação
 
| Para classes cuja função seja de Busines Delegate action Para as classes que tem o papel de actions da camada de apresentação
 
|}
 
|}
 
+
</blockquote>
  
 
* '''Packages:''' use letras minúsculas em todos os nomes.
 
* '''Packages:''' use letras minúsculas em todos os nomes.
Linha 155: Linha 155:
 
* '''Outros objetos:''' os nomes devem estar sempre com todos os caracteres minúsculos.
 
* '''Outros objetos:''' os nomes devem estar sempre com todos os caracteres minúsculos.
  
 
+
<blockquote>
{| border=1 cellpadding=5px
+
{| border=1 cellspacing=0 cellpadding=5
 
! Extensão
 
! Extensão
 
! Função
 
! Função
Linha 175: Linha 175:
 
| Arquivos no formato XML
 
| Arquivos no formato XML
 
|}
 
|}
 +
</blockquote>
  
 
== Expressões e Sentenças ==
 
== Expressões e Sentenças ==
Linha 284: Linha 285:
  
 
Como boa prática manter sempre uma sentença (statement) por linha em um programa.
 
Como boa prática manter sempre uma sentença (statement) por linha em um programa.
 +
 +
== Organização dos projetos ==
 +
 +
'''Nome de projeto:''' o nome do projeto deve estar em minúsculo e composto pela funcionalidade e módulo.
 +
 +
Exemplo:
 +
 +
* logs-core
 +
* logs-view
 +
* hibernate-core
 +
 +
'''Nome de pacotes:''' o nome do pacote deve se composto pela funcionalidade, módulo e recursos.
 +
 +
Exemplo:
 +
 +
* logs.core
 +
* logs.core.model
 +
* logs.core.view
 +
* logs.core.control
 +
* logs.core.util
 +
* logs.core.properties
 +
 +
'''Estrutura de pacotes para testes unitários e funcionais:''' devem estar no diretório ''src-test''
 +
 +
Exemplo:
 +
 +
* logs.core.test
 +
* logs.core.test.model
 +
* logs.core.test.view
 +
* logs.core.test.control
 +
* logs.core.test.util
 +
* logs.core.test.properties
 +
 +
 +
'''Estrutura de diretórios:''' estrutura de diretórios de um projeto web.
 +
 +
: '''<funcionalidade-modulo>'''
 +
:: '''build'''
 +
::: '''producao''' - diretório contendo as configurações do ambiente de produção
 +
:::: '''empresa_x''' - configurações específicas da empresa x
 +
:::: '''empresa_y''' - configurações específicas da empresa y
 +
::: '''homologacao''' - diretório contendo as configurações do ambiente de homologação
 +
:::: '''empresa_x''' - configurações específicas da empresa x
 +
:::: '''empresa_y''' - configurações específicas da empresa y
 +
::: '''teste''' - diretório contendo as configurações do ambiente de testes
 +
:::: '''empresa_x''' - configurações específicas da empresa x
 +
:::: '''empresa_y''' - configurações específicas da empresa y
 +
:: '''src''' - diretório contendo os arquivos fontes do projetos
 +
:: '''src-test''' - contendo os testes unitários e funcionais
 +
:: '''WebContent'''
 +
::: '''resources''' - diretório contendo imagens, scripts e folha de estilos
 +
::: '''WEB-INF'''
 +
:::: '''relatorios''' - arquivos .jasper
 +
:::: '''paginas''' - arquivos .jsp/.xhtml/.html/.ftl
 +
::: '''META-INF'''
 +
::: arquivos .swf

Edição atual tal como às 09h55min de 29 de setembro de 2011