O Curso Full Cycle é uma formação completa para fazer com que pessoas desenvolvedoras sejam capazes de trabalhar em projetos expressivos sendo capazes de desenvolver aplicações de grande porte utilizando de boas práticas de desenvolvimento.
https://github.com/alcir-junior-caju/study-full-cycle-3-0
Para quem quiser visualizar o projeto na IDE clique no teclado a tecla ponto
, esse recurso do GitHub é bem bacana
- AplicaçÕes 'Tradicionais';
- 'Tudo em um';
- Unidade de deployment;
- Aplicações da década passada;
- Ultrapassada;
- Não escalam;
- Impedem o crescimento do negócio;
- Alto acoplamento;
- Grande parte dos argumentos são Falsos!;
- Novos projetos onde o modelo de negócio não está claro;
- Instabilidade no core do nogécio;
- Evitar complexidade no processo de deploy;
- Evitar complexidade na operação;
- Single process;
- Monolitos distribuídos;
- Black box;
- Alto acoplamento;
- Modular;
- Modular com bancos de dados segregados;
- User;
- Dados pessoais;
- Endereços;
- Cartões de crédito;
- Tickets de suporte;
- Compras;
- Carrinho abandonado;
- Devoluções;
- Financiamento;
- Indicações;
- Reclamações;
- Email mkt;
- Campanhas;
- Favoritos;
- Lista de casamento;
- Histórico de login;
- Lista de preferência de emails;
- Avaliação de produtos;
- CRM;
- Propostas;
- Lances / Leilões;
- Cartão de pontos;
- Não existe contexto;
- Entidades que se relacionam;
- Não há divisão, Tudo faz parte de tudo. Tudo grudado em tudo;
- Efeitos colaterais indesejados;
- Precisamos evitar isso!;
- Módulos quebrados em 'Bounded contexts';
- Conversam através de contratos e facades;
- Entidades podem ser 'duplicadas' tendo apenas os atributos necessários;
- Equipes especializadas por módulos;
- Alta coesão: O que muda junto, permanece junto;
- Começar a pensar em contextos;
- Catálogo - User;
- Carrinho - User;
- Checkout - User;
- Pagamentos - Cliente;
- Suporte ao Cliente - Cliente;
- Marketing - Lead;
- Programa de pontos - Beneficiário;
- Lista de casamento - Convidado;
- Cada contexto vira um módulo;
- Mesma característica do modular mas com bases de dados segregadas;
- Um único deploy;
- Única operação;
- Observabilidade simplificada;
- Sistemas se comunicando internamente;
- Única linguagem, Menos governança;
- Ponto de atençao ao shared kernel;