$ npm i typescript @types/node ts-node-dev -D
$ npx typescript --init
$ npm install @prisma/client
$ npx prisma generate
$ npx prisma init --datasource-provider sqlite
$ npx prisma migrate dev
$ npx prisma studio
$ npm i jest -D
$ npm i -D @swc/cli @swc/core
$ npx jest --init
Obs: Os testes trazem mais segurança para o desenvolvimento, evitando erros em produção.
- Single Responsibility Principle
- Cada classe/função deve ter apenas uma única responsabilidade.
- Obs: Prestar atenção ao explicar a funcionalidade, se ela faz algo "e" outra coisa.
- Open/Close Principle
- As classes devem ser abertas para extensão e fechadas para modificação.
- Obs: Não deveria modificar a classe de origem, apenas extender-la.
- Liskov Substituition Principle
- Devemos substituir uma classe pai por uma herança dela e tudo continuar funcionando.
- Interface Segregation Principle
- Segregar as interfaces sempre que possível.
- Dependency Inversion Principle
- Ao invés da classe buscar as dependências que ela precisa, o contexto externo mostra quais ela precisa usar.
- Obs: Facilita o processo de testes