Releases: diegoarmandoo/ecommerce-node-api
📦 Parte 27 | Implementando um Servidor Web Incorporado
🎬 Implementando Um Back-End para Comércio Eletrônico com Node.js® + TypeScript | Parte 27
00:00 - Vinheta
00:10 - Orientações Sobre o Vídeo
01:16 - O Que é Um Servidor Web?
04:58 - O Que é um Servidor Web Incorporado?
06:20 - O Que os Servidores Web Reais Fazem?
08:22 - Implementando um Servidor Web Incorporado com Módulo HTTP do Node.js
15:27 - Instalando o Pacote "dotenv"
16:27 - Definindo Variáveis de Ambiente para Configuração do Servidor Web
17:38 - Implementando o Código de Inicialização da API
23:25 - Instalando o Pacote "nodemon"
24:55 - Configurando o "nodemon" para Inicialização do Servidor da API
27:32 - Configurando o Script de Inicialização da API
29:15 - Testando Manualmente a API a partir do Servidor Web
32:08 - Considerações Finais
📦 Parte 26 | Aplicando Testes de Unidade Automatizados nos Casos de Uso
🎬 Implementando Um Back-End para Comércio Eletrônico com Node.js® + TypeScript | Parte 26
00:00 - Vinheta
00:10 - Orientações Sobre o Vídeo
03:04 - Implementando o Teste Unitário do Caso de Uso "Recuperar Categoria por ID"
19:33 - Implementando o Teste Unitário do Caso de Uso "Inserir Categoria"
28:41 - Considerações Finais
📦 Parte 25 | Implementando os Casos de Uso (Camada de Aplicação)
🎬 Implementando Um Back-End para Comércio Eletrônico com Node.js® + TypeScript | Parte 25
00:00 - Vinheta
00:10 - Orientações Sobre o Vídeo
02:29 - Como Organizar a Lógica de Domínio?
07:43 - O Que é a Camada de Serviço/Aplicação?
18:01 - Identificando Serviços e Operações da Camada de Serviço/Aplicação
20:56 - Criando a Interface que Define Casos de Uso da Camada de Aplicação
26:32 - Implementando Exceções Genéricas de Aplicação
30:16 - Implementando Exceções Específicas de Aplicação do Objeto de Domínio: Categoria
35:08 - Implementando o Caso de Uso "Recuperar Categoria Por ID"
52:54 - Implementando o Caso de Uso "Recuperar Todas as Categorias"
58:23 - Implementando o Caso de Uso "Inserir Categoria"
01:04:36 - Implementando o Caso de Uso "Atualizar Categoria"
01:12:27 - Implementando o Caso de Uso "Deletar Categoria"
01:16:54 - Implementando o Caso de Uso "Recuperar Produto Por ID"
01:23:09 - Considerações Finais
📦 Parte 24 | Aplicando Testes de Unidade Automatizados nos Repositórios
🎬 Implementando Um Back-End para Comércio Eletrônico com Node.js® + TypeScript | Parte 24
00:00 - Vinheta
00:10 - Orientações Sobre o Vídeo
02:23 - O Que São os Dublês de Testes?
12:36 - Refatorando Entidades de Domínio
15:19 - Instalando a Biblioteca "vitest-mock-extends"
18:54 - Criando o Arquivo para os Testes Unitários do Repositório
22:41 - Implementando o Objeto Mock do Prisma Client
27:05 - Configurando o Repositório a Ser Testado
31:33 - Implementando os Objetos Dummy Auxiliares do Teste
35:12 - Implementando o Teste Unitário do Método "Recuperar Categoria por ID"
48:33 - Implementando o Teste Unitário do Método "Recuperar Todas as Categorias"
51:50 - Implementando o Teste Unitário do Método "Existe Categoria"
53:18 - Implementando o Teste Unitário do Método "Inserir Categoria"
57:00 - Implementando o Teste Unitário do Método "Atualizar Categoria"
58:10 - Implementando o Teste Unitário do Método "Deletar Categoria"
01:00:38 - Considerações Finais
📦 Parte 23 | Refatorando Código para Melhorar Legibilidade e Manutenibilidade
🎬 Implementando Um Back-End para Comércio Eletrônico com Node.js® + TypeScript | Parte 23
00:00 - Vinheta
00:10 - Orientações Sobre o Vídeo
02:54 - Substituindo "Valores Mágicos" por Constantes com Nomes Significativos nas Entidades
13:07 - Usando Nomes Significativos em Variáveis e Parâmetros nas Entidades
23:25 - Melhorando Agrupamento das Suítes de Teste de Unidade do Domínio
35:42 - Migrando os Mapeadores Para o Diretório de Infraestrutura
41:05 - Criando Arquivo Para Inicialização Centralizada do Prisma Client
50:48 - Mapeando o Caminho dos Diretório "Main" no tsconfig.json
52:18 - Configurando a Depuração para Funcionar com Caminhos Mapeados
55:15 - Aplicando Inversão de Controle no Repositório
01:11:30 - Considerações Finais
📦 Parte 22 | Implementando o Padrão Repositório (Outras Operações)
🎬 Implementando Um Back-End para Comércio Eletrônico com Node.js® + TypeScript | Parte 22
00:00 - Vinheta
00:10 - Orientações Sobre o Vídeo
02:42 - Configurando Script para Execução de Testes Automatizados no Modo Verboso
06:09 - Implementando e Testando a Operação "Adicionar Categoria ao Produto"
01:08:23 - Implementando e Testando a Operação "Remover Categoria do Produto"
01:24:38 - Implementando e Testando a Operação "Alterar Status do Produto"
01:40:51 - Implementando e Testando a Operação "Recuperar Produto por Categoria"
01:45:15 - Considerações Finais
📦 Parte 21 | Refatorando Objetos de Domínio com Novos Atributos
🎬 Implementando Um Back-End para Comércio Eletrônico com Node.js® + TypeScript | Parte 21
00:00 - Vinheta
00:10 - Orientações Sobre o Vídeo
02:51 - Definindo Interfaces e Tipos para Representar as Datas de Controle
10:13 - Refatorando os Objetos de Domínio da Categoria - Novos Atributos - Datas
28:52 - Refatorando os Objetos de Domínio do Produto - Novos Atributos - Datas
43:27 - Considerações Finais
📦 Parte 20 | Implementando o Padrão Repositório (Continução)
🎬 Implementando Um Back-End para Comércio Eletrônico com Node.js® + TypeScript | Parte 20
00:00 - Vinheta
00:10 - Orientações Sobre o Vídeo
03:20 - O Que É Programação Assíncrona (Asynchronous Programming)?
12:48 - O Que São Promises - JavaScript/TypeScript?
17:32 - Usando Async e Await para Lidar com Promises - JavaScript/TypeScript
21:51 - Definindo a Interface de Um Repositório de Entidade de Domínio
27:57 - Criando um Repositório Concreto para Uma Entidade de Domínio com Prisma ORM
31:02 - Definindo Constante e Tipo para Lidar com Relações N:N do Prisma
38:40 - Implementando Método para Mapear um Modelo Prisma para uma Entidade de Domínio
43:48 - Preparando o Código para os Testes Manuais do Repositório
46:25 - Implementando e Testando o Método "Recuperar por UUID"
52:36 - Implementando e Testando o Método "Inserir"
01:04:29 - Implementando o Método "Recuperar Todos"
01:09:33 - Implementando e Testando o Método "Existe"
01:10:19 - Implementando e Testando o Método "Atualizar"
01:16:53 - Implementando e Testando o Método "Deletar" (Exclusão Lógica)
01:29:41 - Considerações Finais
📦 Parte 19 | Implementando o Padrão Repositório
🎬 Implementando Um Back-End para Comércio Eletrônico com Node.js® + TypeScript | Parte 19
00:00 - Vinheta
00:10 - Orientações Sobre o Vídeo
02:58 - Ajustes no Schema do Prisma ORM
07:42 - Padrão - Repositório (Repository)
11:55 - Definindo a Interface de Um Repositório Genérico
27:17 - Implementando Classe Abstrata Para Um Repositório Prisma ORM
31:46 - Definindo a Interface de Um Repositório de Objeto de Domínio
36:30 - Criando um Repositório Concreto para Um Objeto de Domínio com Prisma ORM
42:41 - Preparando o Código para os Testes Manuais do Repositório
48:04 - Implementando e Testando o Método "Recuperar por UUID"
55:47 - Implementando e Testando o Método "Recuperar Todos"
58:59 - Implementando e Testando o Método "Existe"
01:01:14 - Implementando e Testando o Método "Inserir"
01:03:54 - Implementando e Testando o Método "Atualizar"
01:08:29 - Implementando e Testando o Método "Deletar" (Exclusão Física)
01:13:56 - Definindo Mapeadores Entre o Modelo Prisma e o Domínio
01:18:32 - Considerações Finais
📦 Parte 18 | Aplicando Mapeamento Objeto-Relacional (ORM)
🎬 Implementando Um Back-End para Comércio Eletrônico com Node.js® + TypeScript | Parte 18
00:00 - Vinheta
00:10 - Orientações Sobre o Vídeo
02:52 - O Que É Mapeamento Objeto-Relacional (ORM)?
08:16 - Padrão - Mapeador de Dados (Data Mapper)
14:46 - Padrão - Mapeamento de Metadados (Metadata Mapping)
17:00 - Padrão - Objeto de Consulta (Query Object)
20:01 - Prisma ORM
22:20 - Aplicando Mapeamento Objeto-Relacional com Prisma
01:19:06 - Considerações Finais