... | @@ -9,8 +9,11 @@ Esta página centraliza informações sobre o [repositório Backend do projeto S |
... | @@ -9,8 +9,11 @@ Esta página centraliza informações sobre o [repositório Backend do projeto S |
|
|
|
|
|
- [Organização do repositório](#organização-do-repositório)
|
|
- [Organização do repositório](#organização-do-repositório)
|
|
- [Padrões de código](#padrões-de-código)
|
|
- [Padrões de código](#padrões-de-código)
|
|
- [Nomenclatura](#nomenclatura)
|
|
- [Nomenclatura de classes](#nomenclatura-de-classes)
|
|
- [Tratamento de exceções](#tratamento-de-exceções)
|
|
- [Nomenclatura de variáveis](#nomenclatura-de-variáveis)
|
|
|
|
- [Nomenclatura de métodos](#nomenclatura-de-métodos)
|
|
|
|
- [Tratamento de exceções](#tratamento-de-exceções)
|
|
|
|
- [Documentação do Swagger](#documentação-do-swagger)
|
|
|
|
|
|
## Organização do repositório
|
|
## Organização do repositório
|
|
|
|
|
... | @@ -33,10 +36,59 @@ Diante disso, os pacotes do projeto estão divididos da forma abaixo: |
... | @@ -33,10 +36,59 @@ Diante disso, os pacotes do projeto estão divididos da forma abaixo: |
|
|
|
|
|
## Padrões de código
|
|
## Padrões de código
|
|
|
|
|
|
### Nomenclatura
|
|
### Nomenclatura de classes
|
|
|
|
|
|
|
|
Classes do projeto devem ser nomeadas em inglês e seguir o padrão **PascalCase**, ou seja, devem iniciar com letra maiúscula e cada palavra ou abreviatura no meio da frase também deve iniciar com letra maiúscula. Por exemplo:
|
|
|
|
- UserController :heavy_check_mark:
|
|
|
|
- User_Controller :x:
|
|
|
|
- Usercontroller :x:
|
|
|
|
- userController :x:
|
|
|
|
|
|
|
|
Além disso, com exceção do pacote model, os nomes das classes devem refletir o pacote onde elas estão localizadas, conforme o exemplo abaixo:
|
|
|
|
- :file_folder: config: ExemploConfig
|
|
|
|
- :file_folder: controller: ExemploController
|
|
|
|
- :file_folder: dt.request: ExemploRequest
|
|
|
|
- :file_folder: dt.response: ExemploResponse
|
|
|
|
- :file_folder: exception: ExemploException
|
|
|
|
- :file_folder: repository: ExemploRepository
|
|
|
|
- :file_folder: service: ExemploService
|
|
|
|
- :file_folder: util: ExemploUtil
|
|
|
|
|
|
|
|
### Nomenclatura de variáveis
|
|
|
|
|
|
|
|
Variáveis devem ser nomeadas em inglês e seguir o padrão **camelCase**, ou seja, devem iniciar com letra minúscula e cada palavra ou abreviatura no meio da frase deve iniciar com letra maiúscula. Por exemplo:
|
|
|
|
- isAdmin :heavy_check_mark:
|
|
|
|
- isadmin :x:
|
|
|
|
- is_Admin :x:
|
|
|
|
- IsAdmin :x:
|
|
|
|
|
|
|
|
A exceção são as variáveis constantes (que devem ser estáticas e finais) e enums, que devem seguir o padrão **SCREAMING_SNAKE_CASE**, onde as palavras no meio da frase são separadas por *underscores* (_) e as letras devem ser todas maiúsculas. Por exemplo: API_BASE_URL
|
|
|
|
|
|
|
|
Além disso, para criar um código limpo e fácil de entender e realizar a manutenção depois, sempre nomeie as variáveis de forma que fique claro o seu propósito/o tipo de informação que ela possui. Para isso, seguem algumas dicas:
|
|
|
|
- Evitar abreviações.
|
|
|
|
- Para variáveis booleanas, não nomear apenas com substantivos, para deixar claro que é um booleano. Por exemplo, ao invés de "publish", usem "isPublished".
|
|
|
|
- Criar variáveis fáceis de pronunciar.
|
|
|
|
- Evitar dar nomes muito parecidos para duas variáveis.
|
|
|
|
- Não usar números mágicos. Se existir algum número que precisa ser utilizado no código, criar uma variável para este número para deixar claro o que ele significa.
|
|
|
|
|
|
|
|
### Nomenclatura de métodos
|
|
|
|
|
|
|
|
Variáveis devem ser nomeadas em inglês e seguir o padrão **camelCase**, ou seja, devem iniciar com letra minúscula e cada palavra ou abreviatura no meio da frase deve iniciar com letra maiúscula. Por exemplo:
|
|
|
|
- findUserByName :heavy_check_mark:
|
|
|
|
- finduserbyname :x:
|
|
|
|
- find_User_By_Name :x:
|
|
|
|
- FindUserByName :x:
|
|
|
|
|
|
|
|
Além disso, para facilitar a leitura do código, em uma classe os métodos sempre devem estar organizados na ordem abaixo:
|
|
|
|
1. Métodos `public`
|
|
|
|
2. Métodos `protected`
|
|
|
|
3. Métodos `private`
|
|
|
|
|
|
|
|
|
|
|
|
## Tratamento de exceções
|
|
|
|
|
|
TODO
|
|
TODO
|
|
|
|
|
|
### Tratamento de exceções
|
|
## Documentação do Swagger
|
|
|
|
|
|
TODO |
|
TODO |