Refatoração do ERP na Prática #33. O Primeiro Teste de Unidade do ERP | TDD, Build in Public

Teste de unidade, entidade de domínio, TDD, Clean Architecture, Repository e TypeScript: criamos a primeira entidade Bank e iniciamos a troca de DAO por Repository no ERP. Damos o primeiro passo real para sair dos use cases com regras espalhadas e começar a construir um domínio. Criamos o primeiro teste de unidade do projeto, a primeira entidade Bank, discutimos DTO vs entidade, ID gerado pelo banco, construtor privado, static factory method, create, restore e o começo de um domínio ainda anêmico. Depois disso, iniciamos a transição de BankDao para BankRepository, explicando a diferença entre DAO e Repository: o DAO trabalha mais próximo da tabela e dos DTOs; o Repository deve persistir objetos de domínio. Também deixamos testes falhando de propósito para seguir o fluxo do TDD e preparar o próximo episódio, onde a refatoração começa a passar novamente. --------------------------------------------------------------------------------------------------------- Hub do Canal: https://refatorador.com Comunidade (apenas avisos, sem SPAM): https://refatorador.com/whatsapp Projeto no GitHub: https://github.com/drummerpva/erp Capítulos 00:00 Commit dos testes legados 01:24 Husky, testes e build antes do push 02:20 Primeira entidade do domínio 03:26 Criando a pasta de testes de unidade 04:29 Primeiro teste: criar um Bank 07:12 Implementando a classe Bank 08:16 O problema do ID na entidade 12:17 Static Factory Method: create 15:43 Restore para entidade já existente 17:18 Entidade criada, mas ainda anêmica 19:19 Refatoração começando com teste falhando 20:30 Domínio rico precisa de Repository 23:05 Criando a interface BankRepository 24:13 Find vs Get no Repository 25:31 DAO vs Repository na prática 26:47 DTO não serve mais para salvar domínio 27:33 Testes dão coragem para refatorar 28:36 Repository, Query Objects e CQRS SEO Teste de unidade, entidade de domínio, Clean Architecture, TDD, Repository Pattern #programação #refatoração #devbrasil #tdd

Refatoração do ERP na Prática #34. Fazendo os Testes Passarem com Repository | TDD, Build in Public
▶︎

Refatoração do ERP na Prática #34. Fazendo os Testes Passarem com Repository | TDD, Build in Public

IA Vai Acabar com Programadores? Refatorador Responde #01
▶︎

IA Vai Acabar com Programadores? Refatorador Responde #01

Refatoração do ERP na Prática #39. Entidade que se Autovalida | TDD, Build in Public
▶︎

Refatoração do ERP na Prática #39. Entidade que se Autovalida | TDD, Build in Public

MINICURSO PRÁTICO DE GIT | Do Zero ao Git Push (1/2)
▶︎

MINICURSO PRÁTICO DE GIT | Do Zero ao Git Push (1/2)

Refatoração do ERP na Prática #31. Padronizando Tabelas para Não Quebrar no Docker | TDD
▶︎

Refatoração do ERP na Prática #31. Padronizando Tabelas para Não Quebrar no Docker | TDD

Let's build GPT: from scratch, in code, spelled out.
▶︎

Let's build GPT: from scratch, in code, spelled out.

Zig 2026: No-AI Policy, $670K Foundation, Left GitHub & Why Zig Isn’t 1.0 - Andrew Kelley Explains
▶︎

Zig 2026: No-AI Policy, $670K Foundation, Left GitHub & Why Zig Isn’t 1.0 - Andrew Kelley Explains

Refatoração do ERP na Prática #27. Debugando Um Erro Real na API com Testes | TDD, Build in Public
▶︎

Refatoração do ERP na Prática #27. Debugando Um Erro Real na API com Testes | TDD, Build in Public

Refatoração do ERP na Prática #29. A Migration Quebrou o Banco de Dados | TDD, Build in Public
▶︎

Refatoração do ERP na Prática #29. A Migration Quebrou o Banco de Dados | TDD, Build in Public

Turing Award Winner: Disagreeing with Google, Postgres, Future Problems | Mike Stonebraker
▶︎

Turing Award Winner: Disagreeing with Google, Postgres, Future Problems | Mike Stonebraker

Master Full-Stack Docker & CI/CD – Build a Production-Ready Pipeline
▶︎

Master Full-Stack Docker & CI/CD – Build a Production-Ready Pipeline

Refatoração do ERP na Prática #32. Da Bagunça à Clean Architecture: Onde Estamos? | Build in Public
▶︎

Refatoração do ERP na Prática #32. Da Bagunça à Clean Architecture: Onde Estamos? | Build in Public

Refatoração do ERP na Prática #30. Resolvendo o Bug da Migration no MacOS | TDD, Build in Public
▶︎

Refatoração do ERP na Prática #30. Resolvendo o Bug da Migration no MacOS | TDD, Build in Public

Refatoração do ERP na Prática #28. Teste Não Pode Depender da Sorte | TDD, Build in Public
▶︎

Refatoração do ERP na Prática #28. Teste Não Pode Depender da Sorte | TDD, Build in Public

Creator of C++: Bell Labs, Negative Overhead Abstraction, Mistakes | Bjarne Stroustrup
▶︎

Creator of C++: Bell Labs, Negative Overhead Abstraction, Mistakes | Bjarne Stroustrup

Refatoração do ERP na Prática #36. GetBankByID com Repository | TDD, Build in Public
▶︎

Refatoração do ERP na Prática #36. GetBankByID com Repository | TDD, Build in Public

ASP.NET Core Full Course For Beginners (.NET 10)
▶︎

ASP.NET Core Full Course For Beginners (.NET 10)

Complete Terraform Course - From BEGINNER to PRO! (Learn Infrastructure as Code)
▶︎

Complete Terraform Course - From BEGINNER to PRO! (Learn Infrastructure as Code)

Claude's 7 features that will put you ahead of 99% of people.
▶︎

Claude's 7 features that will put you ahead of 99% of people.

AI Agents Full Course 2026: Master Agentic AI (2 Hours)
▶︎

AI Agents Full Course 2026: Master Agentic AI (2 Hours)