Refactoring

This collections includes 113 articles published between 1992 and 2025.

(stats / articles)




2025 (2)

Software Engineering / Martin Fowler (FREE)

2025
Refactoring with Codemods to Automate API Changes
Martin Fowler (FREE) 2025

Refactoring is something developers do all the timemaking code easier to understand, maintain, and extend.

Software Engineering / SE Radio Podcasts (FREE)

2025
SE Radio 656: Ivett Ördög on Rewrite versus Refactor
SE Radio Podcasts (FREE) 2025

Ivett rdg speaks with host Sam Taggart about rewrite versus refactor -- a choice that many projects face as they grow.

2024 (3)

Software Engineering / IEEE Software

2024
Refactoring With Regular Expressions
IEEE Software 2024 (6); by Diomidis Spinellis

Software Engineering / SE Radio Podcasts (FREE)

2024
SE Radio 625: Jonathan Schneider on Automated Refactoring with OpenRewrite
SE Radio Podcasts (FREE) 2024

Jonathan Schneider, the cofounder of Moderne and the creator of OpenRewrite, talks with SE Radio's Gregory Kapfhammer about automated software maintenance.

Software Engineering / GOTO Conference Videos (FREE)

2024
Refactoring vs Refuctoring: Code Quality in the Al Age
GOTO Conference Videos (FREE) 2024; by Enys Mones, Peter Anderberg

2023 (4)

Computing (general) / PhD Theses

2023
Improving the Accuracy of Refactoring Detection
PhD Theses 2023 (1); by Liang Tan
2023
Refactoring graphs: reasoning about refactoring over time
PhD Theses 2023 (1); by Aline Brito
2023
Understanding large codebase refactoring through differencing
PhD Theses 2023 (1); by Céline Deknop

Software Engineering / GOTO Conference Videos (FREE)

2023
Expert Talk: Code Refactoring
GOTO Conference Videos (FREE) 2023; by Adam Tornhill, Christian Clausen

2022 (1)

Software Engineering / GOTO Conference Videos (FREE)

2022
Expert Talk: Code Refactoring
GOTO Conference Videos (FREE) 2022; by Adam Tornhill, Christian Clausen

2021 (3)

UX & Human Factors / ACM interactions

2021
Refactoring design to reframe (dis)ability
ACM interactions 2021 (3); by Elizabeth F. Churchill

Computing (general) / PhD Theses

2021
A case study in refactoring computer science education
PhD Theses 2021 (1); by Deirdre Lawless
2021

2020 (4)

Software Engineering / Martin Fowler (FREE)

2020
Refactoring: This class is too large
Martin Fowler (FREE) 2020; by Clare Sudbery

In this article I walk through a set of refactorings from a real code base. This is not intended to demonstrate perfection, but it does represent reality.

Computing (general) / PhD Theses

2020
2020
Fighting Software Erosion with Automated Refactoring
PhD Theses 2020 (1); by Gábor Szoke

Software Engineering / GOTO Conference Videos (FREE)

2020
Refactoring Trust on Your Team
GOTO Conference Videos (FREE) 2020; by Rebecca Miller-Webster

2019 (1)

Software Engineering / IEEE Software

2019
Ignore, Refactor, or Rewrite
IEEE Software 2019 (2); by George Fairbanks

2018 (5)

Software Engineering / IEEE Software

2018
Software Refactoring for System Modernization
IEEE Software 2018 (6); by Bruno Marinho Santos, Ignacio García Rodríguez de Guzmán, Valter Vieira de Camargo, Mario Piattini, Christof Ebert

Software Engineering / Martin Fowler (FREE)

2018
Changes for the 2nd Edition of Refactoring
Martin Fowler (FREE) 2018; by Martin Fowler

Summary of the changes between the first and second editions of Refactoring

Computing (general) / PhD Theses

2018
2018
Automated software maintenance using search-based refactoring
PhD Theses 2018 (1); by Michael Mohan
2018

2017 (5)

Computing (general) / Communications of the ACM

2017
Barriers to refactoring
Communications of the ACM 2017 (10); by Ewan D. Tempero, Tony Gorschek, Lefteris Angelis

Computing (general) / IEEE Computer

2017
Handling Static Configurability in Refactoring Engines
IEEE Computer 2017 (7); by Jörg Liebig, Sven Apel, Andreas Janker, Florian Garbe, Sebastian Oster

Computing (general) / PhD Theses

2017
MiNT: Multimodal Interaction for Modeling and Model Refactoring
PhD Theses 2017 (1); by Nitesh Narayan
2017

Software Engineering / GOTO Conference Videos (FREE)

2017
Make Web Apps Fun to Build and Easy to Refactor with Elm
GOTO Conference Videos (FREE) 2017; by Daniel Bachler

2016 (4)

Software Engineering / Martin Fowler (FREE)

2016
Refactoring a Java Script video store
Martin Fowler (FREE) 2016; by Martin Fowler

Implementing my 1999 video store refactoring example in JavaScript, with four different ways to compose the extracted functions.

Computing (general) / PhD Theses

2016
2016
2016

2015 (21)

Software Engineering / IEEE Software

2015
Refactoring-a Shot in the Dark?
IEEE Software 2015 (6); by Marko Leppänen, Simo Mäkinen, Samuel Lahtinen, Outi Sievi-Korte, Antti-Pekka Tuovinen, Tomi Männistö
2015
Refactoring Myths
IEEE Software 2015 (6); by Munawar Hafiz, Jeffrey Overbey
2015
Challenges to and Solutions for Refactoring Adoption: An Industrial Perspective
IEEE Software 2015 (6); by Tushar Sharma, Girish Suryanarayana, Ganesh Samarthyam
2015
Database Refactoring: Lessons from the Trenches
IEEE Software 2015 (6); by Gregory Vial
2015
Refactoring for Asynchronous Execution on Mobile Devices
IEEE Software 2015 (6); by Danny Dig
2015
Refactoring
IEEE Software 2015 (6); by Emerson R. Murphy-Hill, Don Roberts, Peter Sommerlad, William F. Opdyke
2015
The Birth of Refactoring: A Retrospective on the Nature of High-Impact Software Engineering Research
IEEE Software 2015 (6); by William G. Griswold, William F. Opdyke
2015
Refactoring Tools are Trustworthy Enough and Trust Must be Earned
IEEE Software 2015 (6); by John Brant, Friedrich Steimann
2015
Architectural Refactoring: A Task-Centric View on Software Evolution
IEEE Software 2015 (2); by Olaf Zimmermann

Software Engineering / Martin Fowler (FREE)

2015
Refactoring with Loops and Collection Pipelines
Martin Fowler (FREE) 2015; by Martin Fowler

Some examples of refactoring loops into collection pipelines

2015
An example of preparatory refactoring
Martin Fowler (FREE) 2015; by Martin Fowler

A simple example of how it can be easier to make a change by first refactoring the code to make the change easy.

2015
Refactoring Code to Load a Document
Martin Fowler (FREE) 2015; by Martin Fowler

When using data from an external document source, encapsulate how you load it so you can minimize mapping effort and support multiple clients

2015
Refactoring Module Dependencies
Martin Fowler (FREE) 2015; by Martin Fowler

An example of taking a program, splitting it into modules by layers, and refactoring these dependencies with the Service Locator and Dependency Injection…

2015
Refactoring to an Adaptive Model
Martin Fowler (FREE) 2015; by Martin Fowler
2015
Refactoring code that accesses external services
Martin Fowler (FREE) 2015; by Martin Fowler

Refactoring some code so that the lines that call and unpack data from an external service are separated into clear objects.

Computing (general) / PhD Theses

2015
Automated refactoring for Java concurrency
PhD Theses 2015 (1); by Yu Lin
2015
2015
2015
Early detection of manual refactoring faults
PhD Theses 2015 (1); by Everton L. G. Alves
2015
2015
Model-based software refactoring driven by performance analysis
PhD Theses 2015 (1); by Davide Arcelli

2014 (2)

Software Engineering / IEEE Software

2014
Analyzing the Harmful Effect of God Class Refactoring on Power Consumption
IEEE Software 2014 (3); by Ricardo Pérez-Castillo, Mario Piattini

Software Engineering / Martin Fowler (FREE)

2014
Workflows of Refactoring
Martin Fowler (FREE) 2014; by Martin Fowler

2013 (5)

Computing (general) / IEEE Computer

2013
Refactor, Reduce, Recycle: Restructuring the I/O Stack for the Future of Storage
IEEE Computer 2013 (8); by Steven Swanson, Adrian M. Caulfield

Computing (specialised) / IEEE Internet Computing

2013
Personalized Web Accessibility using Client-Side Refactoring
IEEE Internet Computing 2013 (4); by Alejandra Garrido, Sergio Firmenich, Gustavo Rossi, Julián Grigera, Nuria Medina-Medina, Ivana Harari

Computing (general) / PhD Theses

2013
Refactoring proofs
PhD Theses 2013 (1); by Iain Whiteside
2013
Refactoring the UrQMD model for many-core architectures
PhD Theses 2013 (1); by Jochen Gerhard
2013

2012 (4)

Software Engineering / IEEE Software

2012
Refactoring on the Cheap
IEEE Software 2012 (1); by Diomidis Spinellis

Computing (general) / PhD Theses

2012
2012
2012

2011 (9)

Software Engineering / IEEE Software

2011
Gardening Your Architecture, Part 1: Refactoring
IEEE Software 2011 (4); by Frank Buschmann
2011
Refactoring for Usability in Web Applications
IEEE Software 2011 (3); by Alejandra Garrido, Gustavo Rossi, Damiano Distante
2011
A Refactoring Approach to Parallelism
IEEE Software 2011 (1); by Danny Dig

Software Engineering / Martin Fowler (FREE)

2011
Opportunistic Refactoring
Martin Fowler (FREE) 2011; by Martin Fowler

Refactoring does not need to be planned out, mostly it is done opportunistically, to fix problems while working on another task.

Computing (general) / PhD Theses

2011
Refactoring Router Software to Minimize Disruption
PhD Theses 2011 (1); by Eric Keller
2011
A toolkit for constructing refactoring engines
PhD Theses 2011 (1); by Jeffrey Overbey
2011
2011
2011

2010 (5)

Software Engineering / IEEE Software

2010
Making Program Refactoring Safer
IEEE Software 2010 (4); by Gustavo Soares, Rohit Gheyi, Dalton Dario Serey, Tiago Massoni

Computing (general) / PhD Theses

2010
2010
Refactoring-based Requirements Refinement Towards Design
PhD Theses 2010 (1); by WenQian Liu
2010
2010
Automatic Refactoring Detection in Version Archives
PhD Theses 2010 (1); by Peter Weißgerber

2009 (4)

Computing (general) / IEEE Computer

2009
Refactoring for Data Locality
IEEE Computer 2009 (2); by Kristof Beyls, Erik H. D'Hollander

Computing (general) / PhD Theses

2009
2009
2009

2008 (5)

Software Engineering / IEEE Software

2008
Refactoring Tools: Fitness for Purpose
IEEE Software 2008 (5); by Emerson R. Murphy-Hill, Andrew P. Black

Computing (general) / PhD Theses

2008
A language to script refactoring transformations
PhD Theses 2008 (1); by Mathieu Verbaere
2008
2008
Tool support for refactoring Haskell programs
PhD Theses 2008 (1); by Christopher Mark Brown
2008

2007 (6)

Software Engineering / Martin Fowler (FREE)

2007
Is Changing Interfaces Refactoring
Martin Fowler (FREE) 2007; by Martin Fowler

a bliki entry for IsChangingInterfacesRefactoring

Software Engineering / SE Radio Podcasts (FREE)

2007
Episode 55: Refactoring Pt. 2
SE Radio Podcasts (FREE) 2007

In the first episode on Refactoring we talked about the basic ideas behind refactoring and some base principles why refactoring is a key part of software…

2007
Episode 46: Refactoring Pt. 1
SE Radio Podcasts (FREE) 2007

Changeable software has been a goal of several technique in software engineering.

2007
Episode 55: Refactoring Pt. 2
SE Radio Podcasts (FREE) 2007

In the first episode on Refactoring we talked about the basic ideas behind refactoring and some base principles why refactoring is a key part of software…

2007
Episode 46: Refactoring Pt. 1
SE Radio Podcasts (FREE) 2007

Changeable software has been a goal of several technique in software engineering.

Computing (general) / PhD Theses

2007
Tool supported refactoring of aspect oriented programs
PhD Theses 2007 (1); by Jan Wloka

2006 (3)

Computing (general) / IEEE Computer

2006
Paying Down Design Debt with Strategic Refactoring
IEEE Computer 2006 (12); by Colin J. Neill, Phillip A. Laplante

Computing (general) / PhD Theses

2006
Refactoring via program slicing and sliding
PhD Theses 2006 (1); by Ran Ettinger
2006
Refactoring Haskell programs
PhD Theses 2006 (1); by Huiqing Li

2005 (2)

Software Engineering / Martin Fowler (FREE)

2005
Refactoring Photran
Martin Fowler (FREE) 2005; by Martin Fowler

a bliki entry for RefactoringPhotran

Computing (general) / PhD Theses

2005
Program Refactoring in the Presence of Preprocessor Directives
PhD Theses 2005 (1); by Alejandra Garrido

2004 (6)

Software Engineering / Martin Fowler (FREE)

2004
Is Fixing an Unknown Bug Refactoring
Martin Fowler (FREE) 2004; by Martin Fowler

a bliki entry for IsFixingAnUnknownBugRefactoring

2004
Definition of Refactoring
Martin Fowler (FREE) 2004; by Martin Fowler

The definition of refactoring,in noun and verb forms.

2004
Refactoring Malapropism
Martin Fowler (FREE) 2004; by Martin Fowler

Refactoring is a specific technique for restructuring code as a series of small, behavior-preserving transformations.

2004
Is Optimization Refactoring
Martin Fowler (FREE) 2004; by Martin Fowler

a bliki entry for IsOptimizationRefactoring

2004
Is Declaration Ordering Refactoring
Martin Fowler (FREE) 2004; by Martin Fowler

a bliki entry for IsDeclarationOrderingRefactoring

Computing (general) / PhD Theses

2004

2003 (3)

Software Engineering / IEEE Software

2003
A Metamodeling Approach to Pattern-Based Model Refactoring
IEEE Software 2003 (5); by Robert B. France, Sudipto Ghosh, Eunjee Song, Dae-Kyoo Kim

Software Engineering / Martin Fowler (FREE)

2003
Etymology of Refactoring
Martin Fowler (FREE) 2003; by Martin Fowler

a bliki entry for EtymologyOfRefactoring

2003
Refactoring Cringely
Martin Fowler (FREE) 2003; by Martin Fowler

a bliki entry for RefactoringCringely

2001 (3)

Software Engineering / Martin Fowler (FREE)

2001
Refactoring Rubicon
Martin Fowler (FREE) 2001; by Martin Fowler

Computing (general) / PhD Theses

2001
Automated application of design patterns: a refactoring approach
PhD Theses 2001 (1); by Mel Ó Cinnéide
2001

2000 (1)

Computing (general) / PhD Theses

2000

1999 (1)

Computing (general) / PhD Theses

1999
Practical Analysis for Refactoring
PhD Theses 1999 (1); by Donald Bradley Roberts

1992 (1)

Computing (general) / PhD Theses

1992
Refactoring Object-Oriented Frameworks
PhD Theses 1992 (1); by William F. Opdyke