Skip to content

curso clean-arch Udemy prof° Jorge Aluizio Alves de Souza. Conceitos de desacoplamento de código e arquitetura limpa utilizando a base do framework NestJS e limites arquiteturais

Paulo-DevTallos/user-api-clean-arch-udemy

Repository files navigation

Nest Logo

A progressive Node.js framework for building efficient and scalable server-side applications.

NPM Version Package License NPM Downloads CircleCI Coverage Discord Backers on Open Collective Sponsors on Open Collective Support us

Description

Nest framework TypeScript starter repository.

Installation

$ npm install

Running the app

# development
$ npm run start

# watch mode
$ npm run start:dev

# production mode
$ npm run start:prod

Test

# unit tests
$ npm run test

# e2e tests
$ npm run test:e2e

# test coverage
$ npm run test:cov

Support

Nest is an MIT-licensed open source project. It can grow thanks to the sponsors and support by the amazing backers. If you'd like to join them, please read more here.

Stay in touch

License

Nest is MIT licensed.

Observações:

Configurar o path para que o jest possa enxergar o '@/' como caminho relativo de pasta Uma vez configurado os paths no tsconfig é possível "importar" essa referência para dentro do arquivo de configuração do jest

## configuração realizada no tsconfig
"compilerOptions: { "baseUrl": "./", "paths": { "@/*": ["./src/*"] } }"

## adcionando configurações no jest
import { pathsToModuleNameMapper } from 'ts-jest';
import { compilerOptions } from './tsconfig.json';
export default {
  moduleNameMapper: pathsToModuleNameMapper(compilerOptions.paths, {
    prefix: '<rootDir>/',
  }),
}
  1. Arquivo de variaveis de ambiente: Utilizando o ConfigModule.forRoot() no Nest por padrão ele considera o arquivo dotenv, por isso para criar ambientes personalizados (customizados) é preciso alterar as configurações do ConfigModule

  2. Boas práticas para caotura de enviroments: Ao iniciar um serviço para fazer que a variavel de ambiente seja capturada corretamente deve-se apontar o ambiente no script inicializador:

"start:dev": NODE_ENV=deevlopment nest start --watch

Para ambiente de testes não há a necessidade de atribuir o ambiente, por padrão ele entenderá que é teste

  1. A ideia é que qualquer informação da entidade só possa ser manipulada pela propria entidade através de seus próprios métodos.

  2. Ao criar um método com propriedade readonly não é possível atribuír valor para ela, para isso é necessário criar setters que realizem essa ação

  3. Validações das Entidades: As regras crusciais da aplicação (Regras de negócios) estão na camada de domímio e precisamos garantir a consistencia dessas informações.

  4. Object.assigin(this, data): Atribui para a instancia os dados que estao sendo recebidas no construtor

About

curso clean-arch Udemy prof° Jorge Aluizio Alves de Souza. Conceitos de desacoplamento de código e arquitetura limpa utilizando a base do framework NestJS e limites arquiteturais

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published