# Refactoring - Improving the design of existing code

> A book introducing the concept of refactoring.

A book introducing the concept of [refactoring](https://wiki.g15e.com/en/pages/Refactoring.txt).

## Differences between the first and revised editions

The examples used [Java](https://wiki.g15e.com/en/pages/Java.txt) in the first edition, but changed to [JavaScript](https://wiki.g15e.com/en/pages/JavaScript.txt) in the revised edition.

> I chose JavaScript to illustrate these refactorings, as I felt that this language would be readable by the most amount of people. … Although I use JavaScript for my examples, that doesn't mean the techniques in this book are confined to JavaScript. --Preface

Several final chapters disappeared from the revised edition. The reason:

> I dropped the later chapters, which explored some more tangential issues. I think they worked in the first edition, but these days I think it's better to publish essays like this on my website. That's the same reason why I also dropped the four "big refactorings" from the catalog. The big refactorings were always a bit different to the majority of the refactorings, and I do feel these examples work better through essays on my website.[^1]

## See also

- [Code smell](https://wiki.g15e.com/en/pages/Code%20smell.txt)
- [Test-driven development](https://wiki.g15e.com/en/pages/Test-driven%20development.txt)

## Footnotes

[^1]: https://martinfowler.com/articles/refactoring-2nd-changes.html