Pular para o conteúdo principal

Padrões gerais de projetos

Para mantermos um código limpo e organizado em todos os projetos, seguimos os padrões listados nesta página.

Trello

Utilizamos a plataforma Trello para organizar e atribuir tarefas e acompanhar o progresso do desenvolvimento. Em cada cartão, podemos ter uma lista de tarefas. Para atribuir uma tarefa a alguem, a descrição estará da seguinte maneira:

  • Adicionar funcionalidade - Nome

Ao completar uma tarefa atríbuida a você, marque como completa:

  • Adicionar funcionalidade - Nome

Padrões de código - Geral

  • Variáveis, funções e métodos escritos em inglês com camelCase: Variable name -> variableName

  • Senha do banco de dados local deve ser admin, facilitando o desenvolvimento.

  • Evitar nomes grandes em qualquer caso.

  • Utilizar metodos de Array, String, Object e afins (sempre que possível substituir for, foreach por metodos).

  • Clean Code

    • DRY (Don't Repeat Yourself)
      Não repita código. Se algo é usado de forma igual em mais de um lugar, separe-o e utilize o mesmo para todos.

    • Faça comentários descritivos quando utilizar uma nova tecnologia ou fazer uma funcionalidade complexa de entender que não possa ser simplificada.

    • É ideal que funções sejam pequenas.

Padrões de código - Back-end

  • Utilizar o método fromToken sempre que possível, facilitando a identificação do usuário autênticado.
  • Atentar-se ao tratamento de erros (com try/catch) e sempre tratar quando houver envio de e-mails, evitando que erros menores interrompam o fluxo.
  • Dividir DTOs em subpacotes (DTOs de cada integração em um subpacote).
  • Sempre usar o metodo equals para comparações, a não ser em casos nulos.
  • Em casos de comparações em que pelo menos um dos valores possam ser nulos, utilizar Objects.equals.
  • Utilizar o service de Log para registrar logs e mensagens úteis.
  • Utilizar o tipo LONG para valores em REAIS ao invés de Double/Float, evitando problemas de arredondamento/falta de precisão. Para converter valores entre estes tipos, utilizar ConvertValues.long2Double ou ConvertValues.double2Long.
  • Definir dependências com nomes completos (repository / service).
  • Nomear váriaveis com nomes intuitivos (não utilizar x, obj, opt).
  • Ao declarar services e repositories em classes de mesmo domínio (Ex: Deposits, DepositsService, DepositsRepositores), nomear apenas como repository e service.
  • Para mapear métodos de Resources, utilizar as novas anotações "@GetMapping, @PostMapping, @PutMapping, @DeleteMapping, @PatchMapping". Para as classes, utilizar "@RequestMapping".
  • Evitar deixar imports e dependências não utilizados.
  • Descrições de Enums devem ser escritas em português.

Padrões de código - Front-end

  • Sempre usar comparação exata (===)

  • Escrever nomes de arquivos e pastas com letras minúsculas e separar palavras com hífens: component-name, resource-list-page

  • Ao criar um componente, tentar fazer com que seja o mais reutilizável possível, aplicando o conceito DRY de Clean Code.

  • Seguir a estrutura geral do projeto. Para mais detalhes, veja na categoria de cada projeto a página Estrutura do projeto.