• Stars
    star
    415
  • Rank 104,301 (Top 3 %)
  • Language
    TypeScript
  • License
    GNU General Publi...
  • Created over 3 years ago
  • Updated almost 2 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

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

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

Advanced Node

alt text


Link para o curso completo

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