Especialização em Sistemas com Python & POO com Type Hints • Capítulo 20


🗺️ Mapa Conceitual do Tópico

flowchart TD
    subgraph VIEW["Camada de Apresentação (GUI Desktop)"]
        V1["Formulário de Cadastro"]
        V2["Tabela de Clientes (Treeview)"]
    end

    subgraph SERVICE["Camada de Serviços (Regras de Negócio)"]
        S1["Validador de CPF e E-mail"]
        S2["Auditor de Eventos"]
    end

    subgraph DATA["Camada de Persistência (DAO / SQLite)"]
        D1["ClienteDAO (Queries Parametrizadas)"]
        D2["Banco 'erp_comercial.db'"]
    end

    VIEW --> SERVICE --> DATA --> D2
    SERVICE --> AUDIT["reports/YYYY-MM-DD_HH-MM-SS_auditoria.json"]
    
    style VIEW fill:#e1f5fe,stroke:#03a9f4,stroke-width:2px
    style SERVICE fill:#fff3e0,stroke:#ff9800,stroke-width:2px
    style DATA fill:#ede7f6,stroke:#7e57c2,stroke-width:2px
    style AUDIT fill:#e8f5e9,stroke:#4caf50,stroke-width:2px

🏢 1. Sistema Comercial Desktop Integrado Completo

O Projeto Integrador II consolida a arquitetura completa da especialização:

  1. Camada View (GUI): Interface desktop moderna com formulário e tabela de listagem.
  2. Camada Service: Validações de CPF, regras de negócio e limites de crédito.
  3. Camada DAO: Persistência em banco relacional SQLite3 com queries parametrizadas.
  4. Auditoria Corporativa: Registro histórico de todas as operações em relatórios JSON imutáveis.

💻 Exemplo Prático e Tipado

"""
exemplo_20_projeto_desktop_crud_sqlite.py - Arquitetura Comercial em Camadas
"""

from dataclasses import dataclass
from decimal import Decimal


@dataclass(frozen=True, slots=True)
class ClienteERP:
    id_cliente: int | None
    nome: str
    cpf: str
    limite_credito: Decimal


if __name__ == "__main__":
    c = ClienteERP(id_cliente=1, nome="Juliana Dias", cpf="111.222.333-44", limite_credito=Decimal("5000.00"))
    print(f"Cliente Carregado: #{c.id_cliente} - {c.nome} (Limite: R$ {c.limite_credito:,.2f})")

🔗 Recursos Pedagógicos do Capítulo 20

Recurso Didático Finalidade Link de Acesso
📊 Slides de Aula Apresentação visual interativa com Dark Mode e suporte a teclado Ver Slides
🧠 Quiz Formativo Teste interativo de fixação com feedback imediato por alternativa Fazer Quiz
💻 Exemplos de Código Demonstrações funcionais com Type Hints e saída no console Ver Exemplos
🧩 Exercícios em 4 Níveis Lista progressiva de fixação com gabarito em bloco colapsável Resolver Exercícios

♟️ Capítulo Anterior 📚 Sumário de Tópicos 🏁 Conclusão do Curso