~/talk

Old code doesn't stink - Refactor or Rewrite

Talkat DevOne Detroit 2018 · on Tuesday, 2018-10-16· [devops-and-delivery, microservices]

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

  1. 0:00Intro
  2. 0:54ABOUT ME
  3. 3:33PROJECT SETUP
  4. 4:33OLD ARCHITECTURE
  5. 5:19CUSTOM BRANCHING
  6. 5:59RENDERING WHILE ITERATING RECORDSET
  7. 6:34OUR PLAN WAS
  8. 6:59PLANNED ARCHITECTURE
  9. 7:37LEARNINGS
  10. 9:00DONE ARCHITECTURE
  11. 9:31WHAT WENT WELL?
  12. 9:53WHAT WE SHOULD HAVE DONE
  13. 10:31INTRODUCING BFF
  14. 10:55BETTER ARCHITECTURE
  15. 12:10BENEFITS OF DOING IT RIGHT
  16. 13:10SETTING THE STAGE
  17. 14:50WHY NOT REWRITE?
  18. 17:01HOW CAN THAT EVEN HAPPEN?
  19. 20:27BOUNDED CONTEXTS
  20. 23:39NOT INVENTED HERE
  21. 25:08CODE DUPLICATION
  22. 26:31WHY UNIT TESTS?
  23. 27:03TESTABLE CODE
  24. 30:32NO INTEGRATION TESTING
  25. 31:00PREMATURE OPTIMIZATION
  26. 33:18READ
  27. 34:45EXISTING ARCHITECTURE
  28. 35:30THE SOLUTION: MICROSERVICES
  29. 35:51IN-FLIGHT ARCHITECTURE
  30. 37:09BFF/EDGE SPECIFICS
  31. 38:26MICROSERVICES SPECIFICS
  32. 39:27LAYERS
  33. 39:45PROPER MONOLITH
  34. 40:12TOOLS THAT HELP
  35. 41:25IN A NUTSHELL
  36. 42:04WHAT A REAL REWRITE REALLY MEANS
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.