Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/lucasrmagalhaes/aplicandodesignpatterns-csharp
Aplicando Design Patterns na Prática com C#
https://github.com/lucasrmagalhaes/aplicandodesignpatterns-csharp
avanade design-patterns dio
Last synced: about 1 month ago
JSON representation
Aplicando Design Patterns na Prática com C#
- Host: GitHub
- URL: https://github.com/lucasrmagalhaes/aplicandodesignpatterns-csharp
- Owner: lucasrmagalhaes
- License: mit
- Created: 2021-01-11T02:49:08.000Z (almost 4 years ago)
- Default Branch: main
- Last Pushed: 2022-09-27T03:37:02.000Z (about 2 years ago)
- Last Synced: 2023-03-03T22:32:55.495Z (almost 2 years ago)
- Topics: avanade, design-patterns, dio
- Homepage:
- Size: 973 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
Aplicando Design Patterns na Prática com C#
Definição
Design Patterns são soluções reutilizáveis para problemas comumente ocorridos (no contexto do design de software). Estes padrões foram iniciados como melhores práticas que foram aplicadas repetidamente a problemas semelhantes encontrados em diferentes contextos. Eles se tornaram populares depois que foram apresentados, de forma estruturada, no livro "Design Patterns - Elements of Reusable Object-Oriented Software" (Gang of Four) em 1994.
O "Gang of Four" representa apenas uma de muitas coleções.
Gang Of Four
Porque eu devo usar?
-
Produtividade: Estes padrões são modelos de resolução de problemas que já foram utilizados e testados inúmeras vezes; -
Manutenção: Os padrões são baseados em soluções de baixo acoplamento e padronização de soluções; -
Temos Universais: Os projetos são amplamente conhecidos desta forma as discussões técnicas são facilitadas, é mais simples falar o nome de um "design pattern" do que toda vez ter que explicar o seu comportamente.
ATENÇÃO!!!
Antes de começar a apicar padrões de projetos precisamos entender algumas coisas...
Desuso
Alguns padrões surgiram para solucionar limitações de linguagens de programação com menos recursos no que diz respeito à abstração, nestes casos os padrões era como "gambiarras" que proporcionavam à linguagem a possibilidade de fazer implementações que não eram possíveis nativamente.
Linguagens mais recentes trazem alguns destes recursos nativamente, em alguns outros casos os padrões foram substituídos por padrões mais recentes.
O padrão Strategy, por exemplo, pode ser substituído pelo o uso de uma função anônima.
Soluções "Prontas"
Os padrões não são soluções prontas, códigos que podemos pegar prontos e "jogar" dentro do projeto, em alguns casos é necessário ajustar o padrão ao contexto em que o projeto necessita, e isso costuma demandar um conhecimento mais profundo por parte da equipe de desenvolvimento.
A "bala de prata"
É comum ver desenvolvedores que ao conhecer um novo padrão/técnica, tentam encaixar ele em todos os cenários, inclusive em situações onde uma abordagem mais simples seria suficiente para resolver o problema.
Um martelo é ótimo para colocar um prego na parede, mas não funciona tão bem se você tiver um parafuso.
Lembre-se: Não é uma competição para ver quem usa mais padrões.
S.O.L.I.D.
Problemas comuns em aplicações que NÃO usam o S.O.L.I.D.
- Duplicidade de Código;
- Código sem estrutura coesa;
- Dificuldade de manter/evoluir;
- Pequenos ajustes podem quebrar o código, inclusive em outras partes do sistema;
- Dificuldade para executar e criar testes unitários; e
- Dificuldade de reaproveitar código para outras aplicações.
Principais benefícios
- Fácil manutenção;
- Fácil entendimento;
- Organização;
- Aberta a receber novas funcionalidades sem danos colaterais;
- Reaproveitamento de código; e
- Fácil adaptação a mudanças no escopo do projeto.
Exemplos Práticos (WebAPI REST .NET Core)
Estudos Complementares
Cloud Design Patterns: Apresenta os principais desafios do desenvolvimento na nuvem e padrões difundidos no mercado para supera-los.
Referências:
Certifique seu conhecimento:
Qual a vantagem de se utilizar Design patterns ?
Criar soluções padrões universais de fácil entendimento para todo o time.
O que são design patterns?
São soluções típicas para problemas comuns em projeto de software.
Strategy pattern é um design pattern do tipo:
Comportamental.
O que significa o principio S do S.O.L.I.D. ?
Single responsability (Principio da Responsabilidade Única).
Qual dos itens abaixo NÁO é um design pattern?
Reserve.
O que são os princípios do S.O.L.I.D.?
SOLID é um conjunto de princípios e boas práticas para melhorar o design de software e arquitetura.