Essa API faz parte do treinamento do professor Rodrigo Manguinho (Mango) na Udemy.
O objetivo do treinamento é mostrar como criar uma API com uma arquitetura bem definida e desacoplada, utilizando TDD (programação orientada a testes) como metodologia de trabalho, Clean Architecture para fazer a distribuição de responsabilidades em camadas, sempre seguindo os princípios do SOLID e, sempre que possível, aplicando Design Patterns para resolver alguns problemas comuns.
- Single Responsibility Principle (SRP)
- Open Closed Principle (OCP)
- Liskov Substitution Principle (LSP)
- Interface Segregation Principle (ISP)
- Dependency Inversion Principle (DIP)
- Don't Repeat Yourself (DRY)
- Composition Over Inheritance
- Small Commits
- Factory
- Adapter
- Composite
- Decorator
- Dependency Injection
- Abstract Server
- Composition Root
- TDD
- Clean Architecture
- DDD
- Conventional Commits
- GitFlow
- Modular Design
- Dependency Diagrams
- Use Cases
- NPM
- Typescript
- Git
- Docker
- Jest
- MongoDb
- Bcrypt
- JsonWebToken
- Validator
- Express
- Supertest
- Husky
- Lint Staged
- Eslint
- Standard Javascript Style
- Sucrase
- Nodemon
- Rimraf
- In-Memory MongoDb Server
- Atalhos no Git
- Log de Erro
- Segurança (Hashing, Encryption e Encoding)
- CORS
- Middlewares
- Testes de Integração
- Testes Unitários
- Cobertura de Testes
- Mocks
- Stubs
- Spies
- Deploy com Typescript
- Deploy no Heroku
- Uso de breakpoints no Typescript
- Uso correto de tags no Git