Padrões e Convenções Lucent Minds
Bem-vindo aos padrões de desenvolvimento e documentação da Lucent Minds. Aqui você encontra templates, convenções e boas práticas para garantir consistência e qualidade em todos os projetos.
📋 Templates de Documentação
Template de Projeto
Template completo para documentar novos projetos e POCs. Inclui todas as seções essenciais:
- ✅ Visão geral e contexto de negócio
- ✅ Stack técnico detalhado
- ✅ Arquitetura e decisões de design
- ✅ Setup de desenvolvimento local
- ✅ Estrutura do projeto
- ✅ Deploy e CI/CD
- ✅ ADRs (Architecture Decision Records)
- ✅ Problemas conhecidos e melhorias futuras
🏗️ Padrões de Arquitetura
ADRs (Architecture Decision Records)
Documentamos todas as decisões arquiteturais importantes usando o formato ADR:
### ADR-XXX: [Título da Decisão]
**Data**: AAAA-MM-DD
**Contexto**: Por que precisamos tomar esta decisão?
**Decisão**: O que decidimos fazer?
**Consequências**:
- ✅ Positivo: Benefícios obtidos
- ❌ Negativo: Trade-offs aceitos
**Alternativas Consideradas**:
- Alternativa 1: Por que não escolhemos
- Alternativa 2: Por que não escolhemos
Princípios Arquiteturais
- Backend Logic Preference: Lógica de negócio no backend (Node.js/Express), não no banco de dados
- Type Safety: TypeScript em todos os projetos para maior segurança
- Multi-Tenancy: Isolamento forte com Row-Level Security (RLS) quando aplicável
- API First: Design de APIs REST bem documentadas
- Security by Default: Autenticação, autorização e criptografia como padrão
💻 Convenções de Código
Nomenclatura
TypeScript/JavaScript:
- Variáveis e funções:
camelCase - Classes e componentes:
PascalCase - Constantes:
UPPER_SNAKE_CASE - Arquivos de componentes:
PascalCase.tsx - Arquivos utilitários:
camelCase.ts
Python:
- Variáveis e funções:
snake_case - Classes:
PascalCase - Constantes:
UPPER_SNAKE_CASE
Estrutura de Diretórios
projeto/
├── src/
│ ├── components/ # Componentes reutilizáveis
│ ├── pages/ # Páginas da aplicação
│ ├── hooks/ # Custom React hooks
│ ├── lib/ # Utilitários e helpers
│ ├── types/ # TypeScript type definitions
│ └── services/ # Lógica de negócio
├── server/ # Backend API
│ ├── src/
│ │ ├── routes/ # Endpoints da API
│ │ ├── services/ # Lógica de negócio
│ │ └── middlewares/ # Middlewares Express
├── tests/ # Testes
├── docs/ # Documentação adicional
└── .clinerules # Padrões para IA
📝 Documentação de Código
Comentários
- Evite comentários óbvios: O código deve ser auto-explicativo
- Documente o "porquê", não o "o quê"
- Use JSDoc/TSDoc para funções públicas
/**
* Calcula o score de risco baseado em regras configuráveis
*
* @param profile - Perfil CPF/CNPJ com dados validados
* @param rules - Regras de risco do tenant
* @returns Score total e fatores de risco identificados
*/
export async function calculateRiskScore(
profile: Profile,
rules: RiskRule[]
): Promise<RiskAssessment> {
// implementação
}
🧪 Padrões de Teste
Cobertura
- Meta mínima: 80% de cobertura
- Prioridade: Lógica de negócio crítica
- Pirâmide de testes: Muitos unitários, alguns integração, poucos E2E
Organização
tests/
├── unit/ # Testes unitários (funções isoladas)
├── integration/ # Testes de integração (APIs, DB)
└── e2e/ # Testes end-to-end (fluxos completos)
🔐 Segurança
Checklist de Segurança
- Autenticação: JWT ou OAuth implementado
- Autorização: Verificação de permissões por role
- Validação de Input: Sanitização de todos os inputs do usuário
- Secrets: Variáveis sensíveis em
.env, nunca commitadas - Criptografia: Dados sensíveis criptografados (AES-256-GCM)
- HTTPS: TLS/SSL em produção
- Rate Limiting: Proteção contra abuso de APIs
- SQL Injection: Uso de prepared statements/ORMs
- XSS: Sanitização de HTML e inputs
🚀 CI/CD
Pipeline Padrão
stages:
- install # npm install
- lint # ESLint, Prettier
- test # Jest, Vitest
- build # npm run build
- deploy # Deploy para staging/production
Branches
main- Produção (protegida)dev- Desenvolvimento (branch padrão)feature/*- Features (criar a partir dedev)hotfix/*- Correções urgentes (criar a partir demain)
📚 Recursos Adicionais
Templates Disponíveis
- Template de Projeto - Estrutura completa de documentação
- Overview de Padrões - Visão geral dos padrões
Links Úteis
🤝 Contribuindo
Para sugerir novos padrões ou melhorias:
- Abra uma issue no repositório de documentação
- Descreva o padrão proposto e justificativa
- Aguarde review e discussão com o time
- Após aprovação, atualize esta documentação
Última Atualização: Janeiro 2025 Mantido Por: Equipe Lucent Minds