Files
millions/docs/21_ENGINEERING_GUIDELINES.md
2026-04-21 10:53:35 +01:00

2.3 KiB

Engineering Guidelines

Objetivo

Garantir consistência técnica no desenvolvimento com agentes de IA e reduzir deriva arquitetural entre sessões.

Regras gerais

  • Usar TypeScript em todo o projeto
  • Preferir server-side validation para mutações críticas
  • Manter regras de negócio fora dos componentes visuais
  • Manter o domínio explícito e nomeado
  • Evitar abstrações prematuras

Backend dentro do Next.js

Na V1, o backend deve viver dentro do projeto Next.js.

Usar:

  • Route Handlers quando for necessário expor endpoints
  • Server Actions quando fizer sentido para mutações simples ligadas à UI
  • camada server/services para regras de negócio
  • camada server/repositories para acesso aos dados

Prisma

  • Modelar entidades do domínio com nomes claros
  • Usar migrations versionadas
  • Evitar queries complexas diretamente em componentes
  • Centralizar acesso à base de dados em repositórios ou queries server-side

Validação

  • Usar Zod para validar inputs e payloads
  • Reutilizar schemas entre UI e servidor quando fizer sentido
  • Nunca confiar apenas na validação do cliente

UI

  • Usar Tailwind CSS
  • Usar shadcn/ui como base de componentes
  • Criar componentes reutilizáveis para estados, tabelas, filtros e formulários
  • Priorizar rapidez operacional sobre efeitos visuais

Estado e dados

  • Preferir dados carregados no servidor
  • Evitar estado global desnecessário na V1
  • Só introduzir state management adicional se surgir necessidade clara

Segurança

  • Usar Supabase Auth para autenticação base
  • Proteger rotas privadas
  • Gerir segredos por .env
  • Não expor chaves sensíveis no cliente

Storage

  • Usar Supabase Storage apenas quando a funcionalidade de imagens/anexos estiver confirmada
  • Definir políticas mínimas de acesso antes de ativar uploads reais

Qualidade de código

  • Cada feature deve ser desenvolvida com documentação mínima
  • Atualizar 16_DECISIONS_LOG.md quando houver decisões relevantes
  • Atualizar 17_PROGRESS.md no fim de marcos importantes
  • Atualizar 18_AGENT_HANDOFF.md no fim de cada sessão relevante

O que evitar

  • microserviços
  • backend separado na V1
  • GraphQL
  • lógica de negócio espalhada por componentes
  • modelos demasiado genéricos
  • dependências pesadas sem necessidade clara