MANUAL DE NORMAS PARA DESENVOLVIMENTO DE CÓDIGO DA FÁBRICA VIRTUAL DE SOFTWARE DA FIPP Curso Superior de Tecnologia em Sistemas para Internet 2/2012 1. Nomes e localização dos arquivos do projeto: O template do projeto está organizado conforme a estrutura abaixo. Camada de Dados: Fornece recursos para execução de instruções SQL. É um projeto do tipo ClassLibrary contendo classes que implementam facilidades para execução de instruções SQL para um determinado tipo de SGBD. Camada de Negócios: Implementações de classes contemplando toda a regra de negócio do sistema. É um projeto do tipo ClassLibrary contendo as classes de negócios/entidades com seus respectivos atributos, propriedades e métodos. Métodos que fazem acesso a camada de dados devem estar presentes nestas classes passando para camada de dados somente instruções SQL prontas para execução. Alguns desses métodos podem retornar objetos de seu próprio tipo, como também uma lista de objetos e em alguns casos um objeto DataTable. Site: Implementações das interfaces do usuário (páginas). É um projeto do tipo WebApplication contendo as páginas (aspx) e sua respectivas classes de interface (aspx.cs). As classes de interface devem estabelecer comunicação diretamente com as classes da Camada de Negócio, recuperando objetos e dados através dos métodos oferecidos. c. Interface: aspx.cs c. negócio:.cs c. dados
2. Nome de classes: Todos caracteres iniciais que formam o nome da classe ficam maiúsculo. NomeDaMinhaClasse Pessoa RecursoInterno 3. Nome de atributos: Inicia o nome do atributo com o caractere _ e o caractere inicial da primeira palavra é minúsculo. Todos os outros caracteres inicias ficam em maiúsculo. _id _nome _datanascimento 4. Nome de métodos e propriedades: Todos os caracteres iniciais das palavras que formam o nome do método e/ou propriedade ficam maiúsculos. O nome dos métodos devem obrigatoriamente iniciar por verbos no infinitivo. Métodos Recuperar() Fazer() SalvarPessoa() Propriedades Id Nome DataNascimento 5. Nome dos parâmetros dos métodos, declaração de variáveis e objetos: O primeiro caractere da primeira palavra é minúsculo. Os outros caracteres iniciais ficam em maiúsculo. Metodo (string id, string numerotelefone, DateTime datanascimento, bool ativo) string nomedavariavel; 6. Indentação Quebra de linha: Quando uma expressão/linha de código não couber em uma única linha, a quebra pode ser feita após alguma vírgula, ou após um operador.o alinhamento da nova linha deve acontecer com o início da expressão do mesmo nível sobre a linha anterior. Exemplos: var = a * b / (c - g + f) + 4 * z; MetodoComNomeMuitoLongo(expressao1, expressao2, expressao3, expressao4, expressao5);
7. Espaços em branco: Sempre utilizar caracteres de tabulação (tecla TAB) e nunca espaços em branco. 8. Comentários: Quando for necessário utilizar os comentários do bloco o seguinte estilo deve ser usado: Instrução 1; Instrução 2; /* Linha 1 * Linha 2 * Linha 3 */ Instrução 3; Instrução 4; E sempre utilize quebra de linha entre o comentário e a linha de código. O comentário de linha única (//) deve ser utilizado para também comentar seções de código. O comentário deve ser recuado para o nível do código que vai ser explicado, e o comprimento não deve exceder o comprimento do código. //Comentário Instrução 1; No.Net Framework, a Microsoft introduziu um sistema de geração de documentação com base em comentários XML (///). Estes comentários são formalmente de linha única. /// <summary> /// Esta classe /// </summary> public class MinhaClasse 9. Declarações 9.1. Variáveis: Uma declaração de variável por linha é recomendada uma vez que incentiva comentários. string nome; //Nome da pessoa int idade; //Idade da pessoa A inicialização de variáveis é uma boa prática a considerar.
string nome = ; //Nome da pessoa int idade = 0; //Idade da pessoa 9.2. Classes e interfaces: Regras para formatação de classes e interfaces em C#. Não há espaço entre um nome do método e o parêntese "(" iniciar a sua lista de parâmetros; A chave de abertura "" aparece na linha seguinte, após a instrução de declaração; A chave de fechamento "" inicia uma linha por si só recuado para coincidir com a abertura correspondente da chave de abertura. class MeuExemplo : MinhaClasse, IMinhaInterface int _varint; public MeuExemplo(int varint) this._varint = varint; void Inc() this._varint++; void MetodoVazio() 9.3. Retorno: A instrução return não deve usar parênteses. return n * (n + 1) / 2; 9.4. If, if-else, if else-if else: Declarações if, if-else, if else-if else devem ficar assim: if (condicao) FacaAlgo(); if (condicao) FacaAlgo(); else FacaOutraCoisa(); if (condicao) FacaAlgo();
else if (condicao) FacaOutraCoisa(); else FacaOutraCoisaNovamente(); 9.5. For / Foreach: A instrução for deve ter seguinte forma: for (int i = 0; i < 5; ++i) 9.6. While/do-while: A instrução while deve ser escrita como segue: while (condition) Uma instrução do-while deve ter a seguinte forma: do while 9.7. Switch: A instrução switch deve ter de forma a seguir: switch (condicao) case A: break; case B: break; default: break; 9.8. Try-catch try catch (Exception)
ou try catch (Exception e) finally 10. Usabilidade e Navegabilidade Janela estilo popup: Uso de janela estilo popup em páginas de pesquisa, páginas de ajuda, áreas de detalhes, etc. Dica: fancybox ou ASP.NET AJAX ModalControlPopup. AJAX: O uso da tecnologia AJAX para minimizar o efeito do submit. JQuery: Para construção de efeitos na interface do usuário. Validação da entrada de dados: Padronização nas mensagens de validações em campos de formulários de entrada de dados. Toda validação deve ocorrer no cliente e no servidor. 11. Diagramas da UML Todos os diagramas da UML devem ser construídos utilizando a ferramenta ASTAH Community.