Regras globais:
- Classes → PascalCase
- Métodos e funções → camelCase
- Variáveis Globais → MAIUSCULO_SLUG_CASE
- Siglas devem ser escritas em maiúsculo, respeitando o padrão de classes, métodos e constantes
- Use nomes descritivos e claros. Não use abreviações e termos genéricos.
Busque sempre escrever de uma forma clara, diferenciando o que são Entidades, Value Objects, DTOs, Mappers e Adapters.
1. Entidades
Nomes singulares, claros e significativos.
Exemplos corretos:
class User {}
class Product {}
class Order {}
Exemplos incorretos:
class Usr {}
class Obj {}
class DataModel {}
2. Objetos de Valor (Value Objects)
Nomes devem refletir claramente o conceito que encapsulam.
Exemplos corretos:
class Email {}
class Address {}
class Money {}
Exemplos incorretos:
class EmailValue {}
class DataObj {}
3. DTOs (Data Transfer Objects)
Nomes devem indicar:
- Entidade
- Contexto (operação)
- Direção (entrada/saída)
Exemplos corretos:
class CreateUserDTO {}
class UserResponseDTO {}
class UpdateProductDTO {}
Exemplos incorretos:
class UserData {}
class ProductObj {}
4. Mappers
Nome da classe → Nome da Entidade + Mapper.
Exemplos corretos:
class UserMapper {
static toDTO(user: User): UserResponseDTO { ... }
static toEntity(dto: CreateUserDTO): User { ... }
}
Exemplos incorretos:
class DataConverter {}
class Helper {}
class Utils {}
5. Adapters
Nome da classe → Nome do serviço ou tecnologia + Adapter.
- Geralmente implementam um Port (contrato do domínio).
Exemplos corretos:
// Port (contrato)
interface EmailProvider {
sendEmail(to: string, subject: string, body: string): Promise<void>;
}
// Adapter concreto
class ExternalEmailAdapter implements EmailProvider {
constructor(private externalService: ExternalEmailService) {}
async sendEmail(to: string, subject: string, body: string) { ... }
}
Exemplos incorretos:
class EmailService {}
class ThirdPartyConnector {}
class ServiceAdapter {}
✅ Resumo das convenções de nomenclatura
| Tipo | Nome correto | Nome incorreto |
|---|---|---|
| Entidade | User, Product, Order | Usr, Obj, DataModel |
| Value Object | Email, Address, Money | EmailValue, DataObj |
| DTO | CreateUserDTO, UserResponseDTO | UserData, ProductObj |
| Mapper | UserMapper | DataConverter, Utils |
| Adapter | ExternalEmailAdapter | EmailService, ServiceAdapter |
