Refatoração do ERP na Prática #13. O CRUD Passou, Mas o Código Ficou Feio | Build in Public, TDD
Nesta parte, fechamos o primeiro CRUD do novo ERP refatorado: implementamos GET por ID, DELETE e PUT, sempre usando os testes como guia para manter o contrato da API funcionando. O código passa nos testes, mas começa a mostrar seus problemas: controller com muita responsabilidade, conexão com banco repetida, detalhes do MySQL espalhados pela aplicação e conflito entre o modelo do banco (bancoID) e o contrato da API (id). Esse é exatamente o ponto da série: primeiro fazer funcionar, depois enxergar onde o acoplamento nasce e preparar o caminho para arquitetura hexagonal, ports and adapters e Clean Architecture. --------------------------------------------------------------------------------------------------------- Hub do Canal: https://refatorador.com Comunidade (apenas avisos, sem SPAM): https://refatorador.com/whatsapp Projeto no GitHub: https://github.com/drummerpva/erp 00:00 Indo para o próximo teste 00:15 Criando o GET com parâmetro 01:13 Buscando por chave primária 02:08 Mapeando o retorno da API 02:45 Teste do GET funcionando 03:18 Implementando o DELETE 04:33 Retornando 404 quando não encontrar 05:30 Fazendo o teste passar 05:48 Partindo para o PUT 06:11 Casos de erro, bugs e TDD 06:59 Recebendo os dados da atualização 08:10 A complexidade começando a aparecer 09:27 Salvando a alteração no banco 10:25 Explicando o fluxo do update 11:18 Aproveitando dados antigos quando faltar campo 12:44 Todos os testes passando 12:52 O código funciona, mas ficou ruim 13:25 O problema do bancoID vs id 14:02 Contexto do ERP gerado por código 15:02 Tudo dentro do controller Express 15:18 O risco de acoplar direto na biblioteca 15:50 Por que abstração e adaptadores ajudam 16:22 A proposta de conteúdo mais avançado 17:01 Encerramento #programação #refatoração #devbrasil

Refatoração do ERP na Prática #26. DAO Não é Repository | TDD, Build in Public

Refatoração do ERP na Prática #10. Como gerar versões com GitHub Actions? | Build in Public, TDD

Docker Full Course for Beginners (2026) | Build & Deploy Real-World Projects

Co-Creator of Haskell: Functional Programming, Thinking in Types, Useless Languages | Simon Jones

Refatoração do ERP na Prática #25. O Bad Smell Antes da Clean Architecture | TDD, Build in Public

Refatoração na Prática #16. Testando Use Case sem Banco com Stubs | Build in Public, TDD

Android 17 sucks. So I put Linux on a phone.

ASMR Best Triggers For Sleep Collection (No Talking) 3 Hours of Tapping & Scratching

The Massive Lawsuit That Will Change PC Gaming

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

AIR FRANCE 447 CASE: FIND OUT WHAT CAUSED THE FATAL ACCIDENT! | LITO SOUSA

See How a 453kg Giant Bluefin Tuna Is Flawlessly Carved in Seconds

Refatoração na Prática #17. DIP com TypeScript | Build In Public, TDD

Unbelievable Smart Worker & Hilarious Fails | Construction Compilation #1 #adamrose #smartworkers

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

You Know This Song (but the Orchestra Doesn’t) | Jacob Collier & VSO School of Music Orchestra | TED

Escalando leituras: o que Big Techs esperam que você saiba (System Design #1)

NestJS Full Course for Beginners in 2026 | Build a Production-Ready API

Billionaire's WARNING: I'm SELLING. The Crash Is Already Here!

