Old code doesn't stink - Refactor or Rewrite
summary
Two case studies decide whether to rewrite: a 15‑year ASP e‑shop that builds an importer (SQL→Mongo, RTF→HTML) and an ASP bridge so the backend stays available but the UI rewrite stalls (first tenant after nine months, conversion incomplete after 2.5 years); and a 300k‑line Java system with quarterly DB restarts across 300,000 lines and 155 tables that moves to microservices, BFFs and AWS Aurora, improving deployability and testability while using Jenkins + SonarQube + Black Duck for automation and quality.
AI-written summary · about
chapters (36)
- 0:00Intro
- 0:54ABOUT ME
- 3:33PROJECT SETUP
- 4:33OLD ARCHITECTURE
- 5:19CUSTOM BRANCHING
- 5:59RENDERING WHILE ITERATING RECORDSET
- 6:34OUR PLAN WAS
- 6:59PLANNED ARCHITECTURE
- 7:37LEARNINGS
- 9:00DONE ARCHITECTURE
- 9:31WHAT WENT WELL?
- 9:53WHAT WE SHOULD HAVE DONE
- 10:31INTRODUCING BFF
- 10:55BETTER ARCHITECTURE
- 12:10BENEFITS OF DOING IT RIGHT
- 13:10SETTING THE STAGE
- 14:50WHY NOT REWRITE?
- 17:01HOW CAN THAT EVEN HAPPEN?
- 20:27BOUNDED CONTEXTS
- 23:39NOT INVENTED HERE
- 25:08CODE DUPLICATION
- 26:31WHY UNIT TESTS?
- 27:03TESTABLE CODE
- 30:32NO INTEGRATION TESTING
- 31:00PREMATURE OPTIMIZATION
- 33:18READ
- 34:45EXISTING ARCHITECTURE
- 35:30THE SOLUTION: MICROSERVICES
- 35:51IN-FLIGHT ARCHITECTURE
- 37:09BFF/EDGE SPECIFICS
- 38:26MICROSERVICES SPECIFICS
- 39:27LAYERS
- 39:45PROPER MONOLITH
- 40:12TOOLS THAT HELP
- 41:25IN A NUTSHELL
- 42:04WHAT A REAL REWRITE REALLY MEANS
related talks
57mRefactoring a large legacy PHP Application: a case study
26mLegacy Codebases are a DevOps Issue
26mMaking internets great again - a story of working with legacy code
48mThirty months of microservices
23mOn the road from Monolith to Micro
23mDevOps and Legacy Code
59mBetting on evolutionary architecture
49mContinuous Delivery for Legacy Code
