Skip to content

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

License

Notifications You must be signed in to change notification settings

rmanguinho/advanced-node

Folders and files

NameName
Last commit message
Last commit date
Jul 9, 2021
Aug 4, 2021
Aug 24, 2021
Jul 20, 2021
Oct 4, 2021
Oct 4, 2021
Jul 7, 2021
Aug 6, 2021
Aug 11, 2021
Aug 2, 2021
Jul 9, 2021
Jul 29, 2021
Aug 2, 2021
Jul 21, 2021
Jul 8, 2021
Aug 30, 2021
Oct 4, 2021
Sep 8, 2021
Sep 14, 2021
Jul 8, 2021
Jul 29, 2021

Repository files navigation

Build Status Coverage Status js-standard-style GPLv3 License Open Source

Advanced Node

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.

Contribua com esse Projeto <3

Buy Me a Coffee at ko-fi.com


Princípios

  • Single Responsibility
  • Open Closed
  • Liskov Substitution
  • Interface Segregation
  • Dependency Inversion
  • Separation of Concerns
  • Don't Repeat Yourself
  • You Aren't Gonna Need It
  • Keep It Simple
  • Composition Over Inheritance
  • Small Commits

Design Patterns

  • Factory
  • Adapter
  • Composite
  • Decorator
  • Command
  • Dependency Injection
  • Abstract Server
  • Composition Root
  • Builder
  • Template Method
  • Singleton
  • Chain of Responsibility
  • Proxy

Code Smells (Anti-Patterns)

  • Blank Lines
  • Comments
  • Data Clumps
  • Divergent Change
  • Duplicate Code
  • Inappropriate Intimacy
  • Feature Envy
  • Large Class
  • Long Method
  • Long Parameter List
  • Middle Man
  • Primitive Obsession
  • Refused Bequest
  • Shotgun Surgery
  • Speculative Generality

Metodologias e Designs

  • TDD
  • Clean Architecture
  • DDD
  • Refactoring
  • GitFlow
  • Modular Design
  • Dependency Diagrams
  • Use Cases
  • Spike (Agile)

Bibliotecas e Ferramentas

  • NPM
  • Typescript
  • Git
  • Jest
  • Ts-Jest
  • Jest-Mock-Extended
  • TypeORM
  • AWS-SDK
  • Multer
  • UUID
  • Axios
  • Postgres
  • JsonWebToken
  • Express
  • Cors
  • Supertest
  • Husky
  • Lint Staged
  • Eslint
  • Standard Javascript Style
  • Rimraf
  • In-Memory Postgres Server
  • Module-Alias
  • Npm Check
  • Travis CI
  • Coverals
  • DotEnv
  • Ts-Node-Dev

Features do Typescript

  • POO Avançado
  • Strict Mode
  • Interface
  • TypeAlias
  • Namespace
  • Utility Types
  • Modularização de Paths
  • Configurações
  • Build

Features de Testes

  • Testes Unitários
  • Testes de Integração
  • Cobertura de Testes
  • Test Doubles
  • Mocks
  • Stubs
  • Spies
  • Fakes

About

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

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages