O objetivo é criar APIs 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)
- Separation of Concerns (SOC)
- Don't Repeat Yourself (DRY)
- You Aren't Gonna Need It (YAGNI)
- Keep It Simple, Silly (KISS)
- Composition Over Inheritance
- Small Commits
- Factory
- Adapter
- Composite
- Decorator
- Proxy
- Dependency Injection
- Abstract Server
- Composition Root
- Builder
- Singleton
- TDD
- Clean Architecture
- DDD
- Conventional Commits
- Modular Design
- Dependency Diagrams
- Use Cases
- Continuous Integration
- Continuous Delivery
- Continuous Deployment
- Type Hints
- Git
- Docker
- Firebase
- Faker
- Pre-Commit
- MyPy
- Flake8
- Coverage
- Pytest
- Bcrypt
- Validator
- FastAPI
- Documentação com FastAPI
- API Rest com FastAPI
- Log de Erro
- Segurança (Hashing, Encryption e Encoding)
- CORS
- Middlewares
- Nível de Acesso nas Rotas (Admin, User e Anônimo)
- Servir Arquivos Estáticos
- Alias
- Log Personalizado
- Branch
- Reset
- Amend
- Tag
- Merge
- Testes Unitários
- Cobertura de Testes
- Test Doubles
- Mocks
- Stubs
- Spies
- Fakes
- Add