refactoring
Improving without changing
Refactoring is restructuring existing computer code without changing its external behavior—improving internal structure while keeping functionality identical.
Programmers refactor to make code cleaner, more efficient, or easier to maintain: I spent the afternoon refactoring the authentication module.
The term has spread beyond software to mean any reorganization that improves form without altering substance.
What's passed down
- rotOrganic breakdown process
- cruftAccumulated digital debris
- obsoleteNo longer in use
- unmaintainableCannot be kept functional
fragile · hacky · messy · tangled · unwieldy · brittle · patchwork · accumulated
Ease of understanding text
- maintainabilityEase of ongoing repair
- clarityState of being understandable
- eleganceRefined, graceful quality
- simplicityLack of complexity
cohesion · consistency · understandability · testability · extensibility · flexibility · robustness · reliability
Making an identical copy
- spaghettiLong thin cylindrical pasta
- bloatSwell abnormally
- complexityState of being complicated
- couplingJoint between systems
Assign a different title
Rearrange fundamental organization
- modularizationDivision into interchangeable units
- decompositionBreakdown into simpler parts
- extractionAct of removing
- architectureBuilding design discipline
redesign · decoupling · abstraction · encapsulation · composition · interfaces · patterns · components
Proceeding by small additions
- iterativeInvolving repeated cycles
- continuousWithout pause or gap
- automatedOperating without human control
- safeFree from peril
systematic · disciplined · test-driven · baby-steps · opportunistic · planned · preparatory · comprehension
legacy
What's passed down
unmaintainable · fragile · hacky · messy · tangled · unwieldy · brittle · patchwork · accumulated · shortcuts
readability
Ease of understanding text
- maintainabilityEase of ongoing repair
- clarityState of being understandable
- eleganceRefined, graceful quality
simplicity · cohesion · consistency · understandability · testability · extensibility · flexibility · robustness · reliability · expressiveness
duplication
Making an identical copy
- spaghettiLong thin cylindrical pasta
- bloatSwell abnormally
- complexityState of being complicated
rename
Assign a different title
restructure
Rearrange fundamental organization
- modularizationDivision into interchangeable units
- decompositionBreakdown into simpler parts
- extractionAct of removing
architecture · redesign · decoupling · abstraction · encapsulation · composition · interfaces · patterns · components · classes
incremental
Proceeding by small additions
- iterativeInvolving repeated cycles
- continuousWithout pause or gap
- automatedOperating without human control
safe · systematic · disciplined · test-driven · baby-steps · opportunistic · planned · preparatory · comprehension
- software developmentcoding, programming, bug, debug, debugging
- tech methodsagile, debugging, scrum, testing, kanban
- programmingvariables, functions, for, function, debugger
- Agile Developmentagile, XP, iteration, sprint, backlog
- code editorsautocomplete, debugger, breakpoints, line numbers, indentation
- coding principlesKISS, KISS principle, keep it simple, clean code, code smell
fact, effect, factory, factor, manufacture, faction, facilitate, benefactor, malefactor