Skip to content
Gabriel Dewes edited this page Nov 10, 2016 · 18 revisions

#Padrão de Nomenclaturas

##Nomes de arquivos

  • utiliza notação UpperCamelCase

  • nome do arquivo deve ser igual ao nome do Model, Controller e conter letra maíuscula no começo.

  • nome de models e controllers sempre deve conter o nome da classe de domínio seguido do prefixo da classe. Ex. UsersModel, UsersController (plural)

  • Evitar acentos, mesmo que o contexto permita como em nomes de arquivos.

  • Evitar espaços, mesmo que o contexto permita

  • Evite abreviar a não ser em casos já conhecidos. ex. CPF, UF.

  • Preposições devem normalmente ser omitidas.

  • Comentar código quando necessário!

##Hierarquia de Arquivos e Rotas

  • Diretório deve se chamar o nome do contexto e as rotas devem acompanhar o prefixo, Ex: Users
  • Views
    • Users
      • usersList
      • usersDialog
  • JS
    • Users
      • users-controller.js
      • users-dialog.js
  • Rotas
    • Users
    • Users/$id
    • Users/Create
    • Users/Acao

##Base de Dados

  • Utiliza nomenclatura snake_case (underscore)
  • Nome do banco 'nomedb' ou 'nome_composto_db'
  • Fields id_entity, name_entity
  • Fields que possam se repetir em outras tabelas, especificar o contexto. Ex: name_entity, name_street, name_city;

##Variáveis

  • Nome da variável deve dizer claramente o que a variável é e faz
  • Variáveis do tipo boolean devem receber nomes que impliquem verdadeiro ou falso acabou, ok, feito, sucesso
  • Não utilizar nomes temporários ou nomes que não guardam significado temp1, temp2, var1, var2, xx4.

##Classes e objetos

  • Nome de objeto, singular. Listas, plural. Ex: Objeto obj, List objs.
  • Nome de classes, letra inicial maiúscula e nomenclatura CamelCase.

##Funções

  • Nome do método não deve conter o nome da classe na qual ele se aplica
  • Receber parâmetro da rota pelo método do controller ex: function buscaCep($param) {}

##JS

  • Reutilizar o máximo de funções possíveis
  • Criar arquivos externos
  • Não usar PHP no JS
  • Dividir arquivos por módulos do sistema

##CSS

  • Não alterar códigos do Framework
  • Utilizar CSS sempre em arquivos externos

##Documentação de Classes e Funções

  • Comentar códigos. Formato: data, autor e comentario
  • Obs.: Comentar quando necessário, operações muito comuns não são necessários comentários,
  • somente change-logs, ex: Alterado em 12-10-2016, por quem, porquê.
  • Estilo de comentário para headers de arquivos:
  • /**
    • @author Linus Torvalds
    • @since 01-01-1970
  • */
  • Estilo de comentário para funções/métodos:
  • /**
    • @author Bill Gates (se for diferente dos autores da classe)
    • @description Valida um cpf, seu formato e autenticidade
    • @see Alguma referência à APIs, classes, etc.. (optional)
    • @param {number} cpf O cpf que será validado
    • @return {boolean} Se o cpf é válido ou não
  • */
  • function validaCpf($cpf) {}

##Model para Crud GetBy(Param param) { } //retorna um objeto através de um field específico

GetAll() { } //Retorna uma lista com todos os objetos

GetAllBy(Param param){ } //Retorna uma lista com todos os objetos filtrados por especificação

Create(Object object) { } //Insert de um objeto no db

Update(Object object) { } //atualiza um objeto no db

Delete(Param param) { } //Deleta um objeto no banco

##Controller index() { } //Carrega View index

new() { } //Carrega View de Form

create() { } //Faz a operação de create

edit() { } //Carrega View de editar

update() { } //Faz a operação de update

delete() { } //Faz a operação de delete

##Views

  • Passar dados para view através de array associativo, onde $data['object'] = Object, na view será acessível através da chave $object.
Clone this wiki locally