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, utilizarConvertValues.long2Double
ouConvertValues.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
eservice
. - 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.