O objetivo dos padrões de escrita de código é alcançar a padronização no processo de codificação e desenvolver bons hábitos comportamentais para o desenvolvimento futuro de programas.
Escopo de uso das especificações de escrita de código: desenvolvimento de projetos J2EE.
Convenção de nomenclatura de pacotes:
Objetivo: A convenção de nomenclatura dos pacotes deve refletir uma boa divisão dos recursos do projeto
Convenção de nomenclatura para o pacote onde a classe do servlet está localizada: nome da empresa.nome do grupo de desenvolvimento.nome do projeto.web.servlet
Por exemplo: net.linkcn.web.servlet
Convenção de nomenclatura para o pacote onde a classe de tag personalizada está localizada: nome da empresa.nome do grupo de desenvolvimento.nome do projeto.web.tags
Por exemplo: net.linkcn.web.tags
Convenção de nomenclatura para o pacote onde a classe de filtro está localizada: nome da empresa.nome do grupo de desenvolvimento.nome do projeto.web.filter
Por exemplo: net.linkcn.web.filter
Convenção de nomenclatura para o pacote onde a classe Action está localizada: nome da empresa.nome do grupo de desenvolvimento.nome do projeto.web.struts.action
Por exemplo: net.linkcn.web.struts.action
Convenção de nomenclatura para o pacote onde a classe ActionForm está localizada: nome da empresa.nome do grupo de desenvolvimento.nome do projeto.web.struts.form
Por exemplo: net.linkcn.web.struts.form
Convenção de nomenclatura do pacote Javabean: nome do grupo de desenvolvimento.
Por exemplo: net.linkcn.web.service.impl
Convenção de nomenclatura da interface de implementação Javabean: nome da empresa.Nome do grupo de desenvolvimento.Nome do projeto.web.service
Por exemplo: net.linkcn.web.service
Convenção de nomenclatura para o pacote onde a classe DAO está localizada: nome da empresa.nome do grupo de desenvolvimento.nome do projeto.dao.impl
Por exemplo: net.linkcn.dao.impl
A interface implementada pela classe DAO possui uma convenção de nomenclatura no pacote: nome da empresa.nome do grupo de desenvolvimento.nome do projeto.dao
Por exemplo: net.linkcn.dao
Convenção de nomenclatura para o pacote onde a classe POJO e os arquivos hbm estão localizados: nome do grupo de desenvolvimento nome.dao.hbm.
Por exemplo: net.linkcn.dao.hbm
Convenção de nomenclatura para o pacote onde as classes públicas globais e as classes de interface estão localizadas: nome da empresa.Nome do grupo de desenvolvimento.Nome do projeto.global
Por exemplo: net.linkcn.global
Convenção de nomenclatura para o pacote onde a classe de ferramenta global está localizada: nome da empresa.nome do grupo de desenvolvimento.nome do projeto.util
Por exemplo: net.linkcn.util
Convenção de nomenclatura de classe Convenção básica de nomenclatura:
Convenção de nomenclatura de classe e interface: comece com uma letra maiúscula Se houver várias palavras, coloque a primeira letra de cada palavra em maiúscula.
Convenção de nomenclatura da interface: comece com uma letra maiúscula "I", se houver várias palavras, coloque a primeira letra de cada palavra em maiúscula. Por exemplo: IStudentInfo.
Nomenclatura da classe de implementação da interface:
Convenção de nomenclatura: Remova a primeira letra "I" do nome da interface implementada e termine com "Impl". Se houver várias palavras, coloque a primeira letra de cada palavra em maiúscula.
Por exemplo: StudentInfoImpl
Convenção de nomenclatura da estrutura J2EE+SSH
nomenclatura de classe de servlet:
Convenção de nomenclatura: termina com a palavra Servlet. Por exemplo: LoginServlet.
Nomenclatura POJO:
Basta usar as classes geradas automaticamente pelo hibernate
Nomenclatura de classe DAO:
Basta usar as classes geradas automaticamente pelo hibernate
Nomenclatura da classe de ação:
Convenção de nomenclatura: a nomenclatura da ação é baseada no nome POJO, nome POJO Ação
Por exemplo:
O nome de um POJO é Diário e sua ação correspondente é DiaryAction.
Nomenclatura da classe ActionForm:
Convenção de nomenclatura: A nomenclatura de ActionForm é determinada pelo nome POJO e pelo nome POJO Form
Por exemplo:
Um nome POJO é Diário e seu actioForm correspondente é DiaryForm
Nomenclatura da interface lógica de negócios:
Convenção de nomenclatura: a nomenclatura da interface lógica de negócios é determinada pelo nome POJO, e o nome IPOJO é Serviço
Por exemplo:
Um nome POJO é Diário e sua interface lógica de negócios correspondente é IDiaryService.
Nomenclatura de classe de implementação de lógica de negócios:
Convenção de nomenclatura: A nomenclatura da classe de implementação da interface lógica de negócios é baseada no nome POJO.
Um POJO é denominado Diário e a classe de implementação da interface de lógica de negócios correspondente é denominada DiaryServiceImpl.
Nomenclatura de variáveis de classe:
Convenção de nomenclatura: A primeira letra do nome da variável deve ser minúscula. Se o nome da variável consistir em várias palavras, a primeira letra das palavras subsequentes deverá ser maiúscula. Não use "_" para conectar as palavras. o nome da variável deve ser privado. Você pode adicionar métodos setter e getter.
Por exemplo: private int studentAge;
public int getStudentAge()
{
retornar estudanteIdade;
}
public void setStudentAge(int studentAge)
{
this.studentAge=studentAge;
}
Nomenclatura constante:
Convenção de nomenclatura: todas as letras estão em maiúsculas. Se houver várias palavras, as palavras devem ser separadas por "_". E a variável deve ser do tipo public, static, final. Por exemplo: public static final String USER_NAME=”userName”;
Convenção de nomenclatura do método: a primeira letra deve ser minúscula Se o nome da variável consistir em várias palavras, a primeira letra das palavras seguintes deve ser maiúscula. Não use "_" para conectar palavras. Não use substantivos para palavras.
Por exemplo: public int checkLogin(String nome,String pwd){}
Especificações de anotação: As especificações de anotação são o componente mais importante de toda a especificação de desenvolvimento e devem ser rigorosamente implementadas.
Notas de aula:
Função: Anote toda a classe e descreva brevemente a função da classe.
Convenção de escrita: as anotações de classe devem ser escritas antes da sintaxe de declaração da classe. Nos comentários, descreva a função básica da classe, autor, data, versão, nome da empresa e declaração de direitos autorais.
Formatar:
/* *
* Descrição da função da classe: (descreva aproximadamente a função da classe)
* @autor: nome do autor
*
* @version: O número da versão do arquivo de classe começa em 1.0 (determine você mesmo a adição e alteração do número da versão
* Situação), status de modificação (hora da modificação, autor, status da modificação)
*
* @see nome do pacote. Nome da classe de referência (lista as classes pai, introduz as classes, cada classe ocupa uma linha), se houver.
*pode ser omitido
* Dados relevantes como: (para facilitar o entendimento de alguns dados constantes desta classe e o formato de alguns dados
*Ou dados considerados importantes, caso não estejam disponíveis podem ser omitidos)
*/
A sintaxe da declaração de classe é a seguinte:
/**
*
Título:Classe de processamento de dados do módulo administrador
*
Descrição: Adicione dois números
*
Direitos autorais: Direitos autorais (c) 2007
*
Empresa:Huateng Software Company
*
* @autor Tong Jinhu
*
* @versão $Revisão: 1,7 $ $Data: 08/07/2007$
*/
classe pública AdminDAO
Comentários variáveis e constantes:
Função: Descreva resumidamente o significado desta variável.
Padrões de redação: Comentários sobre variáveis devem ser escritos antes da definição da variável, descrevendo brevemente seu significado.
Formatar:
/**
* Descrição da função variável: (descreva aproximadamente a função da variável)
*/
Por exemplo:
/**
*Definir variável de idade
*/
idade interna pública;
Comentários sobre o método:
Função: Uma breve descrição da função do método, anotações sobre o significado de seus parâmetros e valores de retorno.
Convenção de escrita: Os comentários do método devem ser escritos antes da definição do método. A anotação inclui: uma breve descrição da função do método, uma breve descrição dos parâmetros do método, tipo de valor de retorno e significado do valor de retorno.
Formatar:
/**
*Descrição da função do método
* @param args (o tipo do parâmetro pode ser escrito após o parâmetro ou pode ser omitido
* Omitido. Cada parâmetro ocupa uma linha)
* Parâmetros de saída @return (múltiplas situações escritas na mesma linha)
* @see class #reference method (métodos relacionados à chamada deste método são para referência
* Para exames, não é necessário listar todos os métodos por completo. Você deve escolher aqueles que sejam significativos.
*Os métodos ocupam uma linha)
* @exception classe de tratamento de exceções (exceções que podem ser lançadas no método, cada uma
*As exceções ocupam uma linha)
*/
Por exemplo:
/**
* Alterar senha do administrador
* @param adminId número do administrador
* @param oldPassword senha antiga
* @param senha nova senha
* @return boolean se a edição foi bem-sucedida
* @throws UserException
* @throws ServiceException
*/
public booleaneditAdminPassword(int adminId,String oldPassword,
Senha de string) lança UserException,ServiceException;
Nomenclatura de página Jsp:
Convenção de nomenclatura: O nome da página jsp deve começar com uma letra minúscula. Se consistir em várias palavras, as palavras subsequentes deverão começar com uma letra maiúscula. O nome deve refletir o significado da página e preferencialmente estar vinculado ao nome do módulo.
Por exemplo:
login.jsp --Página de login
Register.jsp --Página de registro
message.jsp --Página de mensagem do cliente
Especificações de organização da pasta do projeto J2EE:
Objetivo: Padronizar a forma de organização de recursos das aplicações web dos alunos e formar bons hábitos de organização de arquivos. A organização do documento deverá refletir a divisão em módulos.
De acordo com as características da ferramenta Eclipse, a estrutura de diretórios do projeto é:
fonte
----Armazenamento de arquivos java
WebRoot
|--images --armazena imagens públicas exigidas por programas web
|--css -- armazena as folhas de estilo públicas exigidas por programas web
|--js --Armazena arquivos js públicos exigidos por programas da web
|--commons --armazena arquivos públicos exigidos por programas web
|--Pasta do módulo de função (para armazenar recursos relacionados a um determinado módulo de função)
|--images --armazena imagens relacionadas a este módulo de função
|--css --Armazena os arquivos da folha de estilos relacionados a este módulo
|--js --Armazena arquivos js relacionados a este módulo
|--jsp, página html
|--WEB-INF
|--aulas
|--lib
|--tld arquivo
Especificações de envio do projeto J2EE Quando o projeto for concluído, o projeto deve ser entregue ao usuário como um produto. Boas especificações de organização do projeto permitem que os usuários encontrem facilmente os recursos necessários para o projeto e também são um reflexo do profissionalismo da empresa. Ao submeter um projeto, ele deverá ser submetido no seguinte formato de arquivo.
Pasta principal do projeto:
Função: Armazenar outros arquivos de recursos do projeto.
Convenção de nomenclatura: time_class number_group X.
Por exemplo: 070706_GS2T18_Grupo 4.
A pasta principal do projeto inclui as seguintes pastas e arquivos:
|--src: Salva o arquivo .java.
|--database: Salve o arquivo de script ou arquivo de backup do banco de dados.
|--source: Salve todos os arquivos no diretório WebRoot no projeto Eclipse.
|--depend: Salva outros arquivos jar nos quais você deve confiar para compilar o programa.
|--javadoc: Salva a documentação da API javadoc gerada por todas as classes.
|--war: arquivo para salvar o programa
|--xx.war: O arquivo do projeto foi empacotado e pode ser executado diretamente.
|--project: Salve o código de engenharia original e os arquivos do projeto de desenvolvimento.
|--Manual do produto.doc: Mostra como usar o produto em imagens e texto.
|--build.xml: script ant, usado para gerar arquivos war em execução.
|--Explicação do projeto.ppt: ppt para explicação do projeto (ppt é apenas para uso em projetos de simulação escolar e não para outros fins comerciais)
Nota: Em um projeto completo, o banco de dados deve possuir uma certa quantidade de dados de teste válidos para suportar o funcionamento do programa.