To Rewrite, or Not to Rewrite, That Is the Question
summary
A Raspberry Pi plugin for Johnny-Five (raspberry-io) is decomposed into about ten npm packages and its last core module is rewritten after failed four times and finally completed in Feb 2019. Successful rewrites rely on solid types and comprehensive preexisting tests, incremental releases (alpha/beta/RC), clear changelogs and upgrade guides, CI and code mods. Rewrites fall into full/partial/heavy/light categories, expect a few regressions and plan phased rollouts and observability.
AI-written summary · about
chapters (7)
- 0:00Start
- 16:27Determine consequences from regressions
- 22:10Craft solid types before rewriting
- 23:24Test Driven Development is your best friend
- 25:38Create alpha, beta, and release candidates
- 31:45Write changelogs and upgrade guides
- 33:49Don't let perfect be the enemy of good
related talks
36mRewrite, Rework or Refactor
51mTo Re-write Or Not To Re-write
01h 17mRefactoring the ROI of Software
40mHow to sell a big refactor or rewrite to the business?
07mTim te Beek at JNation 2024
50mThree Rewrites, One Startup - An Architect's Journey
54mAre Rewrites always a Bad Idea?
23mRefactoring Go in Large Codebases
