Skip to Content
The Art of Agile Development, 2nd Edition
book

The Art of Agile Development, 2nd Edition

by James Shore, Shane Warden
October 2021
Beginner
537 pages
17h 47m
English
O'Reilly Media, Inc.
Audiobook available
Content preview from The Art of Agile Development, 2nd Edition

Refactoring

AUDIENCE

Programmers

We improve the design of existing code.

Code rots. That’s what everyone says: entropy is inevitable, and chaos eventually turns your beautifully imagined, well-designed code into a big mess of spaghetti.

I used to think that, too, before I learned to refactor. Now I have a 10-year-old production codebase that’s better today than it was when I first created it. I’d hate to go back: every year, it’s so much better than it was the year before.

Refactoring makes this possible. It’s the process of changing the design of your code without changing its behavior. What it does stays the same, but how it does it changes. Despite popular misuse of the term, refactoring isn’t rewriting. Nor is it any arbitrary change. Refactoring is a careful, step-by-step approach to incrementally improving the design of your code.

Refactorings are also reversible: there’s no one right answer, so sometimes you’ll refactor in one direction, and sometimes you’ll refactor in the other. Just as you can change the expression “x²–1” to “(x+1)(x–1)” and back, you can change the design of your code—and when you can do that, you can keep entropy at bay.

How to Refactor

You can refactor at any time, but it’s safest when you have a good suite of tests. You’ll typically refactor during the “Refactor” step of the test-driven development loop. You’ll also refactor to make a change easier or to clean up code.

When you refactor, you’ll proceed in a series of very small transformations. ...

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.

Read now

Unlock full access

More than 5,000 organizations count on O’Reilly

AirBnbBlueOriginElectronic ArtsHomeDepotNasdaqRakutenTata Consultancy Services

QuotationMarkO’Reilly covers everything we've got, with content to help us build a world-class technology community, upgrade the capabilities and competencies of our teams, and improve overall team performance as well as their engagement.
Julian F.
Head of Cybersecurity
QuotationMarkI wanted to learn C and C++, but it didn't click for me until I picked up an O'Reilly book. When I went on the O’Reilly platform, I was astonished to find all the books there, plus live events and sandboxes so you could play around with the technology.
Addison B.
Field Engineer
QuotationMarkI’ve been on the O’Reilly platform for more than eight years. I use a couple of learning platforms, but I'm on O'Reilly more than anybody else. When you're there, you start learning. I'm never disappointed.
Amir M.
Data Platform Tech Lead
QuotationMarkI'm always learning. So when I got on to O'Reilly, I was like a kid in a candy store. There are playlists. There are answers. There's on-demand training. It's worth its weight in gold, in terms of what it allows me to do.
Mark W.
Embedded Software Engineer

You might also like

Agile Practice Guide (ENGLISH)

Agile Practice Guide (ENGLISH)

Project Management Institute

Publisher Resources

ISBN: 9781492080688Errata Page