HomeGroupsTalkMoreZeitgeist
Search Site
This site uses cookies to deliver our services, improve performance, for analytics, and (if not signed in) for advertising. By using LibraryThing you acknowledge that you have read and understand our Terms of Service and Privacy Policy. Your use of the site and services is subject to these policies and terms.

Results from Google Books

Click on a thumbnail to go to Google Books.

Loading...

Refactoring: Improving the Design of Existing Code (1999)

by Martin Fowler

Other authors: Kent Beck (Contributor), John Brant (Contributor), William Opdyke (Contributor), Don Roberts (Contributor)

Series: Addison-Wesley Object Technology Series

MembersReviewsPopularityAverage ratingMentions
1,803169,442 (4.34)4
Refactoring is about improving the design of existing code. It is the process of changing a software system in such a way that it does not alter the external behavior of the code, yet improves its internal structure. With refactoring you can even take a bad design and rework it into a good one. This book offers a thorough discussion of the principles of refactoring, including where to spot opportunities for refactoring, and how to set up the required tests. There is also a catalog of more than 40 proven refactorings with details as to when and why to use the refactoring, step by step instructions for implementing it, and an example illustrating how it works The book is written using Java as its principle language, but the ideas are applicable to any OO language.… (more)
Loading...

Sign up for LibraryThing to find out whether you'll like this book.

No current Talk conversations about this book.

» See also 4 mentions

English (13)  Hungarian (1)  Spanish (1)  Russian (1)  All languages (16)
Showing 1-5 of 13 (next | show all)
I picked up this book at the wrong time. The book was so successful that a second edition is due out on November 30, 2018 (less than two weeks from now).

On the other hand, I picked up this book at the right time. At work, my project is in the midst of a refactoring project. I am in the middle of changing PHP code from modular functions to object-orientation. The aim of this transition is to enhance the scalability of the project and ease the writing of documentation. I generally like to peer "beneath the surface" of skills that I acquire; this book has indeed enlightened my mind to details of what is going on in my code rewrite.

Some of this book is incredibly tedious. It details how to change code from one format to another. It's work that I let my fingers do more of - and my brain less of! But the book also frames how to do this work and why it is so important. It ties together intellectual "loose ends" which might not be tied together by the programmer who simply dives "head first" into the project.

Fowler writes in tandem with a research seminar at the University of Illinois who have pioneered object-oriented techniques in Smalltalk and then Java and C . They tackle the concepts of refactoring more than how to tackle the specifics of coding in a language. I prefer their theoretical approach to more common approaches drenched in technical lingo and programming tools. This book was worth its time.
( )
  scottjpearson | Jan 25, 2020 |
We're spoiled now that a modern IDE like Eclipse has so many build in refactoring tools, but this was a pivotal book in programming. ( )
  pgSundling | Apr 30, 2019 |
This is the book that moved refactoring from the focus of a narrow community to a general concept. Illuminating, well-written, and helpful, it strikes an effective balance between the concrete and the abstract. Any OO developer should have this on a shelf beside Design Patterns, with which it is nearly contemporary. ( )
  jsburbidge | Jul 13, 2017 |
Highly Recommended by Dr. Gallegos. Should be on every software engineer's shelf.
  cemontijo | Jan 18, 2016 |
Pros: presenting refactoring as a regular part of the development process is an important step forward. The example at the start of the book is a great demonstration if why this stuff matters. Nice to systematically catalog code smells.

Cons: the code smells section is great, but has no actual code examples. The chapters that go through the refactoring moves are better, but having each one isolated makes it boring to read. The big refactoring chapters are only UML diagrams, which are not good teaching aids. I think walking through a few medium sized examples, as in the first chapter, would've been more effective.

Finally, the exclusive focus on java and OO makes sense, but misses much of the power of functional programming, which removes the need for some types of refactoring entirely. Also, it's a somewhat old version of Java, so the content can feel a little dated.

Overall: an important book to get a sense of refactoring, but the examples leave a lot to be desired.

Good quotes:

With refactoring you find the balance of work changes. You find that design, rather than occurring all up front, occurs continuously during development. You learn from building the system how to improve the design. The resulting interaction leads to a program with a design that stays good as development continues.

Any fool can write code that a computer can understand. Good programmers write code that humans can understand.

It reminds me of a statement Kent Beck often makes about himself, "I'm not a great programmer; I'm just a good programmer with great habits."

A heuristic we follow is that whenever we feel the need to comment something, we write a method instead. ( )
  brikis98 | Nov 11, 2015 |
Showing 1-5 of 13 (next | show all)
no reviews | add a review

» Add other authors (25 possible)

Author nameRoleType of authorWork?Status
Fowler, MartinAuthorprimary authorall editionsconfirmed
Beck, KentContributorsecondary authorall editionsconfirmed
Brant, JohnContributorsecondary authorall editionsconfirmed
Opdyke, WilliamContributorsecondary authorall editionsconfirmed
Roberts, DonContributorsecondary authorall editionsconfirmed
You must log in to edit Common Knowledge data.
For more help see the Common Knowledge help page.
Canonical title
Original title
Alternative titles
Original publication date
People/Characters
Important places
Important events
Related movies
Epigraph
Dedication
First words
Quotations
Last words
Disambiguation notice
Publisher's editors
Blurbers
Original language
Canonical DDC/MDS
Canonical LCC
Refactoring is about improving the design of existing code. It is the process of changing a software system in such a way that it does not alter the external behavior of the code, yet improves its internal structure. With refactoring you can even take a bad design and rework it into a good one. This book offers a thorough discussion of the principles of refactoring, including where to spot opportunities for refactoring, and how to set up the required tests. There is also a catalog of more than 40 proven refactorings with details as to when and why to use the refactoring, step by step instructions for implementing it, and an example illustrating how it works The book is written using Java as its principle language, but the ideas are applicable to any OO language.

No library descriptions found.

Book description
Haiku summary

Current Discussions

None

Popular covers

Quick Links

Rating

Average: (4.34)
0.5
1 1
1.5
2 2
2.5 1
3 28
3.5 8
4 108
4.5 12
5 134

Is this you?

Become a LibraryThing Author.

 

About | Contact | Privacy/Terms | Help/FAQs | Blog | Store | APIs | TinyCat | Legacy Libraries | Early Reviewers | Common Knowledge | 204,711,514 books! | Top bar: Always visible