5th out of 86 books
—
151 voters
Refactoring: Improving the Design of Existing Code
Now you can dramatically improve the design, performance, and manageability of object-oriented code without altering its interfaces or behavior. Refactoring shows you exactly how to spot the best opportunities for refactoring and exactly how to do it -- step by step. Through more than forty detailed case studies, you'll learn powerful -- and surprisingly simple -- ways to...more
Hardcover, 464 pages
Published
June 28th 1999
by Addison-Wesley Professional
Friend Reviews
To see what your friends thought of this book,
please sign up.
Community Reviews
(showing
1-30
of
3,000)
I was having a great time reorganizing and hopefully improving some Java at work, and a coworker had mentioned this book. Good stuff. I didn't read through the whole reference section, but took a quick look at some. It seems like the IDE I was using (IntelliJ) had a bunch of refactorings (not sure what the overlap is with this catalog) available as keyboard shortcuts, basically. But it's still fun to read about. Unfortunately, I got this book approximately the same week I shifted off Java develo...more
Refactoring is the process of rewriting software, without changing the way it functions, in order to improve its readability, testability or maintanability. A book has been written on the subject by Martin Fowler. Some of the chapters were written by other people.
“Refactoring: Improving the Design of Existing Code” is focused on OO programming (lots of Java examples) and Agile practices. It is setup as a catalog of refactoring techniques. Each page dedicated to a refactoring is clearly marked, s...more
“Refactoring: Improving the Design of Existing Code” is focused on OO programming (lots of Java examples) and Agile practices. It is setup as a catalog of refactoring techniques. Each page dedicated to a refactoring is clearly marked, s...more
Pros: The opening chapters give a great introduction to refactoring. The middle chapters are worth their weight in gold as a reference to object-oriented refactorings. Explains why refactoring is a necessity for us.
Cons: The final 3 chapters by other authors weren't very useful to me, exluding Beck's chapter, but don't necessarily detract from the book because I suspect others will find them relevant.
Summary: One of those "must have" books for all "classical" developers (procedural and object-or...more
Cons: The final 3 chapters by other authors weren't very useful to me, exluding Beck's chapter, but don't necessarily detract from the book because I suspect others will find them relevant.
Summary: One of those "must have" books for all "classical" developers (procedural and object-or...more
A fantastic catalog of refactoring patterns. To read this book is to read code, lots of it. That's both good and bad; good because you can't learn code without actually coding; bad because it's very hard to provide good examples of code that marries well with the reader's experiences. Show a simple example, the richness of the lesson is lost. Show a complex example, the reader gets lost in the example and misses the lesson.
The first priority of code is to make it work. But how often do we stop...more
The first priority of code is to make it work. But how often do we stop...more
Not a book to read cover to cover, but very useful when you are wondering how to achieve something. Might have been groundbreaking in its day, but when reading it a lot of the tips/how-to's seemed not to have passed the test of time. Not because they are not correct, but because a lot of them are now integrated into the tools (IDEs) we use every day. Might make more sense if you are hardcore a Vi/Emacs user without refactoring support.
A lot of the harder refactorings are not in any IDE, and then...more
A lot of the harder refactorings are not in any IDE, and then...more
Every programmer can develop code that a computer understands, but only units write understandable code to others. It's really brilliant words. Refactoring is a very important process. Very pity that much developers don't understand it. Especially insulting when these people are your managers. In this case, you have only one way, don't speak about refactoring as author advised.
Testing is refactoring's friend. It is another very useful advise. Nice to know that more and more developers spend more...more
Testing is refactoring's friend. It is another very useful advise. Nice to know that more and more developers spend more...more
The best programming book I've read in a long time.
There are a lot of design and analysis books but not a lot of programming books. I would gladly read anything from Fowler. It's so simple of a concept but it goes against a lot of 'common sense'. Essentially, don't over design. Don't spend too much time in design and analysis that you've been told to do based on the wrong assumptions of the waterfall model (which never worked).
Kent's book on Test-driven Development is a great companion to this...more
There are a lot of design and analysis books but not a lot of programming books. I would gladly read anything from Fowler. It's so simple of a concept but it goes against a lot of 'common sense'. Essentially, don't over design. Don't spend too much time in design and analysis that you've been told to do based on the wrong assumptions of the waterfall model (which never worked).
Kent's book on Test-driven Development is a great companion to this...more
This book presents some basic designs for refactoring your software towards better readability and thus easier modifications. I can not give it 5 stars for 2 reasons only
1) it is a bit old
2) most of the things discussed here are better conveyed in the "Code Complete. Second Edition" which I believe to be far superior to this book both in terms of being up to date and simplicity of the language (which makes latter more understandable)
But anyway - this is a really good read for someone who wants t...more
1) it is a bit old
2) most of the things discussed here are better conveyed in the "Code Complete. Second Edition" which I believe to be far superior to this book both in terms of being up to date and simplicity of the language (which makes latter more understandable)
But anyway - this is a really good read for someone who wants t...more
The thing that made this book amazing in my eyes is the demystification factor.
As the author himself admits, software consultants often say they adhere to some vague notion of "software aesthetics", which frankly doesn't help at all when one wants to reach the next level of good programming.
However, in this book the author gives a detailed (but not bloated!) list of very concrete techniques to make Java projects easier to maintain and evolve.
One of the "absolutely must read" books when you get p...more
As the author himself admits, software consultants often say they adhere to some vague notion of "software aesthetics", which frankly doesn't help at all when one wants to reach the next level of good programming.
However, in this book the author gives a detailed (but not bloated!) list of very concrete techniques to make Java projects easier to maintain and evolve.
One of the "absolutely must read" books when you get p...more
While this book is more of a reference book than a book to read through a memorise (and I intend to use it as such in the future), this book is well worth having for software engineers looking to improve their practices. Even if you don't subscribe to Martin Fowler's 'lots of small methods and classes' style of programming (and I admit, it takes some getting used to), the techniques in this book are still useful and applicable to any software project.
The book consists mainly of a catalog of ref...more
The book consists mainly of a catalog of ref...more
If you are interested in improving and maintaining the quality of your code this book should be on your reading list. It is not the kind of book you read once and forget about it. When you are doing refactoring it’s always recommended to come back and check the categories explained in it.
What I really enjoyed is that it confirmed some of the ideas I already had about software development. On the first hand you should have a robust test suite in order to be certain that refactoring didn’t change...more
What I really enjoyed is that it confirmed some of the ideas I already had about software development. On the first hand you should have a robust test suite in order to be certain that refactoring didn’t change...more
This book is the foundation of those sets of techniques, methodologies and practices which came later, but I've already known before finishing this book. Very inspiring for me professional-wise. There is also a historical element in reading it, that is to see the conception of an innovative idea in the academic work until it became adapted in the industry.
Reading the techniques like Extract Method, etc, I usually just scan quickly the steps prescribed, because now it takes only a few keys in the...more
Reading the techniques like Extract Method, etc, I usually just scan quickly the steps prescribed, because now it takes only a few keys in the...more
There's some good stuff and some not so good stuff in here.
The discussion about the refactoring principles and process are excellent. It ties in well with the explicit mechanics of the refactoring, which is about being able to take small, behaviour-preserving steps.
Some of the examples are suspect though. The authors point out that the refactorings are not designed to demonstrate a business model, but some of the use of Mountain Bike classes just seem way off. Also, while they don't fully factor...more
The discussion about the refactoring principles and process are excellent. It ties in well with the explicit mechanics of the refactoring, which is about being able to take small, behaviour-preserving steps.
Some of the examples are suspect though. The authors point out that the refactorings are not designed to demonstrate a business model, but some of the use of Mountain Bike classes just seem way off. Also, while they don't fully factor...more
C'est un livre très instructif montrant comment réagencer du code existant en vue de l'améliorer (lisibilité, maintenabilité, testabilité, préparation à l'ajout de fonctionnalités). C'est en quelque sorte un livre de recettes, mais de ce fait il est assez difficile/fastidieux à lire, surtout de bout en bout.
Une chose qui m'a un peu agacé à la lecture du bouquin : les exemples sont introduits après le mode d'emploi, ce qui fait que l'on a du mal à comprendre ce que veux dire l'auteur avant d'avo...more
Une chose qui m'a un peu agacé à la lecture du bouquin : les exemples sont introduits après le mode d'emploi, ce qui fait que l'on a du mal à comprendre ce que veux dire l'auteur avant d'avo...more
This book was published more than a decade ago - it is quite a long time for a book on software development. Yet list of refactorings provided in the book is still very much useful today. On the other hand, concrete techniques (mechanics as they are called) of refactoring are somehow outdated because of advancement of automatic refactoring support in modern IDEs.
Anyway I thing reading this book will be useful for any developer practicing object oriented programming.
Anyway I thing reading this book will be useful for any developer practicing object oriented programming.
Book lists refactoring recipes for:
+ composing methods
+ moving features
+ organizing data
+ simplifying conditional expressions
+ making method calls simpler
+ dealing with generalization
The recipes are very simple/basic, if you have experience in programming you will find most of them familiar. The value of the book is in systematizing the methods of refactoring, explaining the motivation behind them, giving examples of things to look out for in your code.
It will not revolutionize the way you appr...more
+ composing methods
+ moving features
+ organizing data
+ simplifying conditional expressions
+ making method calls simpler
+ dealing with generalization
The recipes are very simple/basic, if you have experience in programming you will find most of them familiar. The value of the book is in systematizing the methods of refactoring, explaining the motivation behind them, giving examples of things to look out for in your code.
It will not revolutionize the way you appr...more
This book represents an excellent catalog of refactoring techniques. Seasoned developers will recognize most of the concepts but it certainly helps to have them laid out in such a straight-forward fashion. If you are a new developer, I would consider this book instrumental in your professional development.
Apr 06, 2012
Justin
rated it
5 of 5 stars
Shelves:
computers,
software,
engineering,
programming,
design,
techniques,
refactoring,
oo,
oop,
object-oriented,
martin,
fowler
If you write any code at all, anywhere, read this book. Refactoring should be an integral part of all coding efforts, and this book does a marvelous job of conveying the mechanics and theory of such things through clear prose and many examples.
Nothing revolutionary to any experienced programmer, but a nice confirmation of how to do refactoring Ruby style.
It's a great book to have in the office for starting discussions about how a piece of code should look.
I flew through the first 100 or so pages, but the catalogue of patterns stopped me dead. That section of the book deserves to be read in small chunks as you find offending code in your own codebase.
I read the original version in Java but I feel like I got more out of the Ruby version...more
It's a great book to have in the office for starting discussions about how a piece of code should look.
I flew through the first 100 or so pages, but the catalogue of patterns stopped me dead. That section of the book deserves to be read in small chunks as you find offending code in your own codebase.
I read the original version in Java but I feel like I got more out of the Ruby version...more
Для тех кто более-менее знаком с современными IDE, книжка, скорее всего, покажется скучной. В ней расписываются по шагам основные виды рефакторингов кода. Также есть советы когда и какой рефакторинг применить.
На мой взгляд книга будет наиболее полезна программистам продвинуто-начинающего или начинающе-среднего уровня
На мой взгляд книга будет наиболее полезна программистам продвинуто-начинающего или начинающе-среднего уровня
I found it a great help writting well constructed OOP code. Quality design and construction of OOP code are a couple of those intangibles which are hard to discern merely by reading things like keep your code loosely coupled etc.
Besides the obvious benefits of great refactorings for poorly written code, I found it more valuable in that it has given me a much better sense of what well constructed clean code looks like by illustrating what not to do.
BTW, after a couple of weeks with this book, my...more
Besides the obvious benefits of great refactorings for poorly written code, I found it more valuable in that it has given me a much better sense of what well constructed clean code looks like by illustrating what not to do.
BTW, after a couple of weeks with this book, my...more
There are no discussion topics on this book yet.
Be the first to start one »

Loading...






























10 de Feb 01:59