: Refactoring: Improving the Design of Existing Code

: Refactoring: Improving the Design of Existing Code

Refactoring: Improving the Design of Existing Code

par: Martin Fowler, Kent Beck, John Brant, William Opdyke, Don Roberts



Refactoring: Improving the Design of Existing Code
Agrandissez cette image.
Disponibilité: Usually ships in 24 hours

Prix conseillé: CDN$ 65.99
Prix: CDN$ 41.57
Économisez : CDN$24.42 (37%)
Les prix peuvent variés.

Note moyenne:  out of 5 stars
Sales Rank: 614






More Info


Binding: Hardcover
Dewey Decimal Number: 005.14
EAN: 9780201485677
ISBN: 0201485672
Label: Addison-Wesley Professional
Manufacturer: Addison-Wesley Professional
Number Of Pages: 464
Publication Date: juillet 08, 1999
Publisher: Addison-Wesley Professional
Sales Rank: 614
Studio: Addison-Wesley Professional



More Info






Chroniques et points de vue:

From :
Your class library works, but could it be better? Refactoring: lmproving the Design of Existing Code shows how refactoring can make object-oriented code simpler and easier to maintain. Today refactoring requires considerable design know-how, but once tools become available, all programmers should be able to improve their code using refactoring techniques.

Besides an introduction to refactoring, this handbook provides a catalog of dozens of tips for improving code. The best thing about Refactoring is its remarkably clear presentation, along with excellent nuts-and-bolts advice, from object expert Martin Fowler. The author is also an authority on software patterns and UML, and this experience helps make this a better book, one that should be immediately accessible to any intermediate or advanced object-oriented developer. (Just like patterns, each refactoring tip is presented with a simple name, a 'motivation,' and examples using Java and UML.)

Early chapters stress the importance of testing in successful refactoring. (When you improve code, you have to test to verify that it still works.) After the discussion on how to detect the 'smell' of bad code, readers get to the heart of the book, its catalog of over 70 'refactorings'--tips for better and simpler class design. Each tip is illustrated with 'before' and 'after' code, along with an explanation. Later chapters provide a quick look at refactoring research.

Like software patterns, refactoring may be an idea whose time has come. This groundbreaking title will surely help bring refactoring to the programming mainstream. With its clear advice on a hot new topic, Refactoring is sure to be essential reading for anyone who writes or maintains object-oriented software. --Richard Dragan

Topics Covered: Refactoring, improving software code, redesign, design tips, patterns, unit testing, refactoring research, and tools.









Disponibilité: Usually ships in 24 hours


Produits similaires:
Design Patterns: Elements of Reusable Object-Oriented Software Test Driven Development: By Example The Pragmatic Programmer: From Journeyman to Master Code Complete Patterns of Enterprise Application Architecture la suite

Produits similaires:




L'avis des consommateurs
Note moyenne:  out of 5 stars

Note: 4 out of 5 stars - Competent And Influential
Fowler's refactoring has become a classic in the field of popular software engineering books. It's a good book that clearly explains the basic ideas of refactoring and develops a standard vocabulary for refactoring; the power of this vocabulary is demonstrated by the development tools like IntelliJ Idea and Eclipse that now incorporate its nomenclature directly to allow rapid automated refactoring. Refactoring together with Test-Driven development, both concepts developed largely by Kent Beck as part of his Extreme Programming methodology, are in my opinion the most powerful and innovative ideas in the last 10 years or so in software development. It is a fairly quick read for an experienced developer, and often admittedly presents concepts that any experienced develop would have discovered on his/her own. Nevertheless, all of the refacorings together in one book serve as an excellent reference and reminder. I think this book certainly belongs on the bookshelf of any developer wishing to improve his or her craft.



Note: 5 out of 5 stars - Great book for the professional
I got this book at the recommendation of another book (Ken Henderson's Guru's Guide to Stored Procedures) and was simply blown away by it. I have been preaching the lessons this book tries to teach for years. Now I finally have a text I can point people to to say "Hey, this code is really broken even though it still runs. We need to fix it!" Thank you, thank you, thank you for such a wonderful book.



Note: 3 out of 5 stars - * Fowler's First Example: Won't Compile, Won't Run ...
Folwer's First Example: Won't Compile, Won't Run

Fri 5/07/04 7:07 pm. I am a professional programmer, and have been refactoring long before anybody told me about it. Fowler's first example is broken. Specifically:

1. "import java.util.*" omitted in Customer.java. This is the kind of thing it's very difficult to guess; the Sun compiler flags "Vector" and "Enumeration" with no hint of what to do about it (environments like JBuilder etc. are probably more helpful).

2. Page 11 has a misplaced curly bracket, leaving the "amountFor" routine out in the cold.

3. There is no program; Fowler shows us classes, and mentions that he tests them, but neither is shown. At least not before page 11.

This is particularly puzzling because Fowler claims it's very important to test everything constantly -- and it is obvious these classes cannot be tested because they cannot compile. And they won't run, because there is no program; surely it makes a difference *which* tests or program the classes are run under?

CONCLUSION: the information Fowler has to impart would be useful for those who don't know it; but typically these will be beginning programmers, and they may well be confounded by the broken example code at the beginning of the book.



Note: 5 out of 5 stars - An instant classic
This remarkable book is the next logical step after 'Design Patterns'. In fact, it would be fair to call this 'Re-Design Patterns'.

It follows closely in the DP community's habit. For each way of improving a program, it systematically presents a name, set of conditions when it does or does not apply, and (unlike most DP books) clear, demonstrative examples and variations. As with design patterns, many of these recommendations have a sense about them of "I already knew that." That's a good thing - it means you bring familiarity to the reading, instead of starting cold. That lets Fowler get on with his real business, which is to systematize the knowledge and regularize the process of choosing a technique to use.

I hope this follows another habit of the DP community, too: the public cataloging, collecting, and sharing of new techniques for refactoring. I could add bunches to the list, as I'm sure any other seasoned programmer could. One thing is distinctive about the refactorings: the number that come in matched, opposite pairs. This just emphasizes the context dependency of refactoring - each technique has its place, but is not appropriate in all places. Also, paired opposites effectively double the number of choices a practitioner has.

Design patterns are very helpful, almost like power tools for programmers. Face it, though: initial design and implementation are only 1-10% of a large program's life. Maintenance, extension, and re-design are the other 90-99%. DP techniques get a program started, refactorings keep it going.

If you started programming before most of your co-workers were born, you may not get the most out of this book. Get it anyway, and make sure the young pups read it. This knowledge needs to be spread.



Note: 5 out of 5 stars - * Great book on a variety of levels. ...
First, a bit of information about where I'm coming from. 10 years ago I came away with a Computer Science minor but never really utilized the programming skills I'd learned in any of my subsequent jobs (Marine Biology). However, I did dabble in teaching myself C++ and loved the concept of Object Oriented programming. Recently I landed a job working with IDL (Interative Data Language - NOT Corba IDL) which was originally designed to create quick 2D and 3D plots and images for scientists. While still primarily a scientist's language, it has been adding more and more features, including Object Oriented support.

So this means, I'm now a programmer. My new boss really wants almost everything done as an OO design, which I was more than happy about. However, much of my work will be to modify/extend old code which is in every form from procedural to pseudo-OO (uses a few objects here and there but is still mostly procedural). I originally convinced the boss to pick up this book by pointing out the section on converting Procedural Code to OO. Turns out this section is very short, but gives an overview of how to do it using the other refactorings in the book. So it's helpful there.

One place I haven't seen it mentioned in many reviews is the benefit this book can have for someone new to programming professionally (note, I do NOT mean to imply that this is a beginner programmer's book, you should have a good understanding of OO programming already). It has already had many benefits for me:

1. Smells in Code: I love this section. As everywhere in the book, it applies directly to poring through old code and picking out the 'smells' present that indicate poorly structured code. But it's also as valuable in pointing out what to watch for as you write a new program. The book does advocate a design/refactor approach, and this is the best example of it. As you design, you notice one of the 'smells' creep into your code, and you can refactor it then and there. This has been of immense value to me in my first programming projects.

2. Advocation of testing: I already have Kent Beck's "Test Driven Development" and utilized some concepts from it, but "Refactoring" also talks about testing, and it seems to flow much better for me in Fowler's book as far as understanding how to use tests. It 'clicked' when he mentioned that most of the time spent creating a program wasn't design/programming, but rather tracking down a bug. Combining quick and frequent tests on new refactorings (or just new bits of code added in) focuses the programmer very swiftly on just what went wrong. The longest I've ever spent puzzling out a bug so far on my first major project has been 30 minutes, and that's because I forgot a return statement. As soon as I got up, took a break and sat back down it was obvious. Most other bugs have been along the lines of "run the test, watch it crash, fix within 2-5 minutes".

3.Ideas on how to structure code I haven't written yet: Maybe "Design Patterns" is a better book for this, but everytime I've looked at it, it overwhelms me. "Refactoring" somehow seems to put into focus more clearly how to fix a problem that's stumping me. For example, the program I'm working on requires two ways of creating a new object. One creates it directly from a file, one creates it from a GUI where all data is entered, and then added by hitting the 'create' button. I got the 'initFromFile' constructor working nicely and then proceeded to start work on the 'initFromGUI', recreating most of the steps until I hit the point where the object had to create a linked list based on the number of swimbladders (each of which is an object in the linked list) within the main fish object. Long story short, I thought about creating the object separately and just passing it in as a parameter, but besides requiring more knowledge of the object the GUI was working with than I wanted the GUI to have, it also led to one Init call with a huge list of parameters). So I flipped through "Refactoring" and found "Duplicate Observed Data" which described the exact problem I was trying to solve and goes into enough detail on using the 'Observer' Pattern that I was able to get my code to work in a much cleaner fashion than I would have otherwise.

4. Teaches the 'obvious' to new programmers: Some of the complaints I've read involve "Well, any real OO programmer knows this already, it's a waste of space to include that." In my case this is not necessarily true. Some of the refactorings are indeed obvious to me. Others that are obvious to others are not obvious to me. Even more important, you will see some of these 'obvious' things in previously created 'legacy' code, and this book will allow you to spot it.

read more customer reviews on Refactoring: Improving the Design of Existing Code


Rechercher des produits similaires par rubrique:

 




Magic Chef Refrigerators - Cajun Chef | | | | | | | | Sonata | Order Meridia |



Calendars Reviews


Indian exporters of essential foods to Sri Lanka may be hit hard if importers and distributors in the island carry out a threat to go on strike against the Sri Lankan government's bid to enter the trade on unequal terms.

The exercise will cost RBI around Rs 100 cr. Under the terms of the contract, HCL will set up the two centres and maintain them for the RBI for 7 years. Build your biz online



Shopping at livres.cadeauxcanada.com  Created at Tue Oct 7 12:29:46 2008