Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/rmanguinho/advanced-node
API em NodeJs usando Typescript, TDD, Clean Architecture, Design Patterns e SOLID principles
https://github.com/rmanguinho/advanced-node
clean-architecture clean-code design-patterns nodejs solid tdd typescript
Last synced: 7 days ago
JSON representation
API em NodeJs usando Typescript, TDD, Clean Architecture, Design Patterns e SOLID principles
- Host: GitHub
- URL: https://github.com/rmanguinho/advanced-node
- Owner: rmanguinho
- License: gpl-3.0
- Created: 2021-07-07T14:11:03.000Z (over 3 years ago)
- Default Branch: master
- Last Pushed: 2023-01-02T01:34:43.000Z (almost 2 years ago)
- Last Synced: 2023-11-07T22:26:24.138Z (about 1 year ago)
- Topics: clean-architecture, clean-code, design-patterns, nodejs, solid, tdd, typescript
- Language: TypeScript
- Homepage: https://rmanguinho.github.io/
- Size: 3.88 MB
- Stars: 404
- Watchers: 15
- Forks: 139
- Open Issues: 3
-
Metadata Files:
- Readme: readme.md
- License: license
Awesome Lists containing this project
README
[![Build Status](https://travis-ci.com/rmanguinho/advanced-node.svg?branch=master)](https://travis-ci.com/rmanguinho/advanced-node)
[![Coverage Status](https://coveralls.io/repos/github/rmanguinho/advanced-node/badge.svg)](https://coveralls.io/github/rmanguinho/advanced-node)
[![js-standard-style](https://img.shields.io/badge/code%20style-standard-brightgreen.svg)](http://standardjs.com)
[![GPLv3 License](https://img.shields.io/badge/License-GPL%20v3-yellow.svg)](https://opensource.org/licenses/)
[![Open Source](https://badges.frapsoft.com/os/v1/open-source.svg?v=103)](https://opensource.org/)# **Advanced Node**
[![alt text](./public/img/logo-course.jpeg "Link para o treinamento")](https://www.udemy.com/course/nodejs-avancado/?referralCode=AF51096F87A7A9A81C5C)
---
## [**Link para o curso completo**](https://www.udemy.com/course/nodejs-avancado/?referralCode=AF51096F87A7A9A81C5C)
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
> ## 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