Skip to content

API em NodeJs usando Typescript, TDD, Clean Architecture, Design Patterns e SOLID principles

Notifications You must be signed in to change notification settings

carlosrodj/clean-ts-api

 
 

Repository files navigation

Build Status Coverage Status

Clean Node API

alt text


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.

APIs previstas para esse treinamento

  1. Cadastro
  2. Login
  3. Criar enquete
  4. Listar enquetes
  5. Responder enquete
  6. Resultado da enquete

Princípios aplicados

  • 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

Design Patterns aplicados

  • Factory
  • Adapter
  • Composite
  • Decorator
  • Proxy
  • Dependency Injection
  • Abstract Server
  • Composition Root

Metodologias/designs utilizados

  • TDD
  • Clean Architecture
  • DDD
  • Conventional Commits
  • GitFlow
  • Modular Design
  • Dependency Diagrams
  • Use Cases
  • Continuous Integration
  • Continuous Delivery
  • Continuous Deployment

Bibliotecas e ferramentas utilizadas

  • NPM
  • Typescript
  • Git
  • Docker
  • Jest
  • MongoDb
  • Travis CI
  • Coveralls
  • Bcrypt
  • JsonWebToken
  • Validator
  • Express
  • Supertest
  • Husky
  • Lint Staged
  • Eslint
  • Standard Javascript Style
  • Sucrase
  • Nodemon
  • Rimraf
  • In-Memory MongoDb Server
  • MockDate

Features abordadas

  • 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

About

API em NodeJs usando Typescript, TDD, Clean Architecture, Design Patterns e SOLID principles

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • TypeScript 99.3%
  • JavaScript 0.7%