Muitos padrões de projeto servem para realizar determinados tipos de implementações.
Design Patterns é uma descrição ou modelo (template) de como resolver um problema que pode ser usado em muitas situações diferentes.
Padrões são melhores práticas para que o programador possa usar para resolver problemas comuns quando criar um projeto.
Historicamente, o arquiteto Christopher Alexander estabelece características que um padrão deve ter e os dividiu em 5 partes.
Os patterns de Alexander procuravam prover uma fonte de ideias para a comunidade afim de serem usadas em projetos, mostrando assim o quanto padronizado, confortável e flexível os ambientes possam ser construídos.
Em 1987, a partir dos conceitos criados por Alexander, dois programadores chamados Kent Beck e Ward Cunningham propuseram os primeiros padrões de projeto para a área da ciência da computação.
Porém, o movimento só ganhou popularidade em 1995 quando foi publicado o livro Design Patterns: Elements of Reusable Object-Oriented Software. Os autores desse livro, Erich Gamma, Richard Helm, Ralph Johnson e John Vlissides, são conhecidos como a "Gangue dos Quatro" (Gang of Four) ou simplesmente "GoF".
Alguns outros nomes muito conhecidos também, são:
- Bertrand Meyer: criador do CQS (Command Query Separation);
- Greg Young: criador do CQRS (Command Query Responsibility Segregation);
- Eric Evans: criador do DDD;
- Martin Fawler: criador de vários patterns e livros;
- Robert Cecil Martin ou Uncle Bob: criador do Clean Architecture e vários livros.
npm init
jest --init
tsc --init
yarn add -D @types/node @types/jest ts-jest jest typescript
yarn add -D @typescript-eslint/eslint-plugin @typescript-eslint/parser eslint eslint-config-airbnb \
eslint-config-airbnb-typescript eslint-config-prettier eslint-import-resolver-typescript \
eslint-plugin-import eslint-plugin-import-helpers eslint-plugin-jest eslint-plugin-prettier \
prettier