Clean Architecture utilizando .NET Core (C# e F# juntos). O objetivo é demonstrar uma arquitetura simples que pode ser aplicada no dia a dia, mesmo em projetos pequenos.
Size: 644.29 KB
Language: pt
Added: Apr 29, 2019
Slides: 26 pages
Slide Content
Globalcode – Open4education
Clean Architecture com .NET Core
Gabriel Schade Cardoso
Microsoft MVP | Software Engineer | Mestre em Computação Aplicada |
Professor | Escritor
Globalcode – Open4education
Mestre em Computação Aplicada (IA)
Microsoft MVP – Dev. Technologies
Software Engineer
Revisor
Escritor
Gabriel Schade Cardoso
Globalcode – Open4education
Produtividade
Como vai a produtividade da sua equipe?
<Insira aqui um gráfico convincente>
Globalcode – Open4education
Bugs
Efeitos colaterais no software?
Globalcode – Open4education
Tem que entregar!
Commita assim mesmo, depois a gente arruma!
Globalcode – Open4education
Tem que entregar!
Spoiler: provavelmente você não
vai arrumar.
A longo prazo, fazer bagunça
sempre é mais lento que manter
o código limpo.
Globalcode – Open4education
Pensando em arquitetura
A arquitetura dita como os elementos do seu software irão
interagir entre si.
Existem várias arquiteturas diferentes;
Sempre depende do problema que você vai resolver.
Globalcode – Open4education
Arquitetura
Vamos falar de:
Arquitetura hexagonal;
Ports and Adapters;
Arquitetura limpa.
Arquitetura BEM limpa
Globalcode – Open4education
Arquitetura
Independente de:
Framework;
Interface de Usuário;
Banco de dados;
Linguagem
Globalcode – Open4education
Arquitetura Limpa
Globalcode – Open4education
Arquitetura Limpa
Núcleo da aplicação:
Entidades;
Regras de negócio;
Resolve o problema proposto;
Não enxerga nada além dela;
Exceptions?
Globalcode – Open4education
Arquitetura Limpa
Adaptadores:
Adapters;
Controllers;
Faz a cola entre o mundo
externo e o mundo da sua
aplicação;
Projeto Shared?
O mundo externo
O mundo externo são detalhes;
Sua aplicação ser web, usar SQL Server, C# ou F#... Detalhes;
Isso porque na visão da arquitetura limpa, isso não altera em
nada o que sua aplicação faz.
Globalcode – Open4education
DEMO
Uma aplicação que armazena dados sobre usuários;
Mais de um target de linguagem;
Mais de um target de interface;
Mecanismo de armazenamento;
Globalcode – Open4education
DEMO
Globalcode – Open4education
DEMO
Globalcode – Open4education
DEMO
Globalcode – Open4education
DEMO
Globalcode – Open4education
DEMO
Globalcode – Open4education
DEMO
Globalcode – Open4education
DEMO
Globalcode – Open4education
DEMO
Globalcode – Open4education
DEMO
Globalcode – Open4education
O que mais?
Dependency Injection?
ORM? - Fluent Validation > Properties Attributes
DDD?
CQRS + MediatR?