Language Support for Refactorability Decay Prevention
summary
Paper argues that refactoring is split into small steps and introduces lightweight annotations plus an annotation processor that enforces properties so later developers can complete costly steps. Implementation flags real JabRef examples where repeated brace‑checking defeats extract method (multiple locals, control‑flow returns) and makes move method safe by prohibiting writes, private calls, or locking. Compiler errors force either fixing added code or reverting; a prototype runs and catches regressions during compile time.
AI-written summary · about
chapters (14)
- 0:00Start
- 0:20Refactoring
- 1:23Trade-offs
- 2:37This Work in a Nutshell
- 3:07Outline
- 3:50Tool Indifference
- 4:44Tool Ignorance
- 5:55Tool Incompetence
- 7:48Move Method
- 9:59Annotations
- 10:26Scenario 1: Shared Responsibility
- 11:29Scenario 2: Decay Prevention
- 12:24What Else is in the Paper
- 12:43Related Work
related talks
50mRefactoring Is Not Just Clickbait
01h 35mImpact on maintainability and refactoring for higher-level design features
50mGuide Refactorings With Behavioral Code Analysis
18mTowards a Language-parametric DSL for Refactoring (Short Paper)
01h 01mMaintainability and Refactoring Impact of Higher-Level Design Features
50mExpanding the scope of refactoring to fix Java security problems
23mRefactoring Go in Large Codebases
01h 01mSoftware Design in the 21st Century
