<code/> AI+Eng

Checklist Clean Architecture

Passo a Passo Profissional para você projetar sistemas escaláveis, claros e fáceis de evoluir.
Rápido. Visual. Sem refatoração.
1

Liste os Fluxos Principais/Funcionalidades

  • Escreva, rapidamente, as principais funcionalidades do sistema (não se preocupe com telas ou detalhes).
  • Exemplos:
    • Usuário cadastra operação financeira
    • Sistema executa grid na Binance
    • Sistema simula estratégia com histórico
    • Usuário consulta extrato/saldo
    • Robô executa ordem real
2

Identifique os Substantivos e Atores

  • Para cada fluxo, destaque substantivos (potenciais entidades do domínio).
  • Marque também os atores envolvidos (usuário, robô, admin, exchange, etc).
  • Exemplo de substantivos:
    Usuário, Conta, Operação, Ordem, Grid, Estratégia, Mercado, Preço, Histórico, Robô, Exchange, Saldo...
3

Separe os Domínios Principais

  • Divida em blocos de assunto próprio (domínios), sem misturar conceitos diferentes.
  • Exemplos de domínios:
    • user
    • account
    • operation
    • order
    • market_data
    • strategy
    • simulation
    • wallet
  • Cuidado: "operation" ≠ "order" ≠ "market_data"
4

Modele as Entidades principais

  • Modele apenas as principais entidades, listando nome, campos e sentido no negócio.
  • Não pense em implementação agora!
  • Use nomes claros e autoexplicativos.
class User:
    id: str
    name: str
    email: str

class Operation:
    id: str
    user_id: str
    strategy: str
    capital: float
    status: str
    created_at: datetime

class Order:
    id: str
    operation_id: str
    symbol: str
    side: str  # buy/sell
    qty: float
    price: float
    executed_at: datetime

class PriceEntry:
    id: str
    symbol: str
    timestamp: datetime
    open: float
    close: float
    high: float
    low: float
    volume: float
        
5

Defina os Casos de Uso ("use cases")

  • Liste as ações importantes do sistema. Cada ação principal vira um caso de uso.
  • Exemplos:
    • SimulateGridStrategyCommand
    • CreateOrderCommand
    • GetAccountBalanceQuery
    • RunTradingBotCommand
6

Pense nos Limites de Integração

  • Marque tudo que depende de API externa, banco de dados, microserviços, etc.
  • Exemplos: Binance API, serviços de broker, storage, etc.
7

Crie a Estrutura de Pastas

  • Monte as pastas para cada domínio principal, já pensando em crescimento.
src/ domain/ user/ entities/ repositories/ strategies/ operation/ entities/ repositories/ strategies/ market_data/ entities/ repositories/ ... application/ user/ commands/ queries/ dtos/ operation/ commands/ queries/ dtos/ market_data/ commands/ queries/ dtos/ infrastructure/ user/ operation/ market_data/ ... shared/ logging/ utils/ ... api/ routers/ schemas/ ...
Dicas de Ouro:
Liste funcionalidades principais
🔎 Extraia substantivos e atores
🗂️ Separe domínios de negócio
📦 Modele entidades (nome + campos)
🧠 Liste casos de uso
🌐 Pense nas integrações externas
📁 Monte estrutura já pensando em crescimento