Books

  1. Refactoring Workbook
    Refactoring Workbook

  2. Managing Software for Growth: Without Fear, Control, and the Manufacturing Mindset
    Managing Software for Growth: Without Fear, Control, and the Manufacturing Mindset

  3. Rapid Prototyping
    Rapid Prototyping

  4. Practical Software Engineering for the .NET Platform
    Practical Software Engineering for the .NET Platform

  5. Manager's Guide to Software Engineering
    Manager's Guide to Software Engineering

  6. CMMI Assessments: Motivating Positive Change
    CMMI Assessments: Motivating Positive Change

  7. System Software: An Introduction to Systems Programming
    System Software: An Introduction to Systems Programming

  8. Linux Application Development
    Linux Application Development

  9. Communications Receivers: Dsp, Software Radios and Design
    Communications Receivers: Dsp, Software Radios and Design

  10. CMMI Scampi Distilled: Appraisals for Process Improvement
    CMMI Scampi Distilled: Appraisals for Process Improvement

  11. Java Software Structures: Designing and Using Data Structures
    Java Software Structures: Designing and Using Data Structures

  12. Software Requirements Analysis and Specification (McGraw-Hill Systems Design & Implementation S.)
    Software Requirements Analysis and Specification (McGraw-Hill Systems Design & Implementation S.)

  13. Formal Software Development: From VDM to Java
    Formal Software Development: From VDM to Java

  14. Multimedia Introduction to Programming Using Java
    Multimedia Introduction to Programming Using Java

  15. ISO 9000-3: A Tool for Software Product and Process Improvement
    ISO 9000-3: A Tool for Software Product and Process Improvement

  16. C: A Software Engineering Approach
    C: A Software Engineering Approach

  17. Developing Business Applications with Openstep
    Developing Business Applications with Openstep

  18. An Integrated Approach to Software Engineering (Undergraduate Texts in Computer Science S.)
    An Integrated Approach to Software Engineering (Undergraduate Texts in Computer Science S.)

  19. Analysis and Design of Information Systems
    Analysis and Design of Information Systems

  20. Topology in Process Calculus: Approximate Correctness and Infinite Evolution of Concurrent Programs
    Topology in Process Calculus: Approximate Correctness and Infinite Evolution of Concurrent Programs

  21. Practical Software Testing: A Process-oriented Approach (Springer Professional Computing Guide)
    Practical Software Testing: A Process-oriented Approach (Springer Professional Computing Guide)

  22. Discipline of Multiprogramming: Programming Theory for Distributed Applications (Monographs in Computer Science S.)
    Discipline of Multiprogramming: Programming Theory for Distributed Applications (Monographs in Computer Science S.)

  23. Program Monitoring and Visualization: An Explanatory Approach
    Program Monitoring and Visualization: An Explanatory Approach

  24. Peoplesoft Developer's Handbook
    Peoplesoft Developer's Handbook

  25. Learning with Computers: Analysing Productive Interactions
    Learning with Computers: Analysing Productive Interactions

Refactoring Workbook
Average customer rating: 4.5 out of 5 stars
  • Improving code is key to building a quality enterprise
  • Good exercises in refactoring
  • Makes Refactoring Real
  • Required reading to get effective at refactoring
  • An ideal companion to Martin Fowler Refactoring book
Refactoring Workbook
William C. Wake
Manufacturer: Addison-Wesley Professional
ProductGroup: Book
Binding: Paperback

GeneralGeneral | Business & Investing | Subjects | Books
High-TechHigh-Tech | Industries & Professions | Business & Investing | Subjects | Books
Object-Oriented DesignObject-Oriented Design | Software Design | Programming | Computers & Internet | Subjects | Books
Software DevelopmentSoftware Development | Software Design | Programming | Computers & Internet | Subjects | Books
GeneralGeneral | Languages & Tools | Programming | Computers & Internet | Subjects | Books
GeneralGeneral | Computers & Internet | Subjects | Books
GeneralGeneral | Software Engineering | Computer Science | Computers & Internet | Subjects | Books
Look Inside Business BooksLook Inside Business Books | Trip | Specialty Stores | Books
Look Inside Computer BooksLook Inside Computer Books | Trip | Specialty Stores | Books
Qualifying Textbooks - Spring 2007Qualifying Textbooks - Spring 2007 | Stores | Books
Object-Oriented DesignObject-Oriented Design | Design & Development | Software Books | Custom Stores | Stores | Software
Software DevelopmentSoftware Development | Design & Development | Software Books | Custom Stores | Stores | Software
Similar Items:
  1. Refactoring: Improving the Design of Existing Code
  2. Refactoring to Patterns (The Addison-Wesley Signature Series)
  3. Test Driven Development: By Example (Addison-Wesley Signature Series)
  4. Working Effectively with Legacy Code (Robert C. Martin Series)
  5. Head First Design Patterns (Head First)

ASIN: 0321109295

Customer Reviews:

5 out of 5 stars Improving code is key to building a quality enterprise.......2006-06-23

Learning to make what you already have better WITHOUT negatively impacting the enterprise or rewriting what you already have is a key skill that this book teaches and preaches. Understanding what it means to successfully refactor something is well worth the effort, especially if you are interested in getting into the world of service oriented architecture.

Services can be refactored after they are deployed because they can maintain a consistent external interface or contract that others form dependencies to. THis allows us to apply the concepts and techniques described in this book in order to build not only increasingly robust code but also increasingly valuable code in the form of reusable services.

The author does a good job of organising the content and explaining the application through examples. This book is helping my team with a specific project that requires us to revisit but no rewrite a collection of existing components.

4 out of 5 stars Good exercises in refactoring.......2004-05-21

Refactoring is the process of recognizing and correcting problems in code that is functional. Since the code is working correctly, refactoring is something that is generally done late in the development cycle or perhaps not until the code has entered the maintenance phase. However, refactoring has proven to be so valuable that most recent books on software engineering spend some time describing what it is.
Performing a refactoring starts with identifying a "code smell", a segment or feature of the code that just feels awkward or unusual. This is not as hard as it may appear, many of the most common "smells" have been cataloged and the solutions identified. For example, the first "smells" covered in this book are:

* Obscure or overly descriptive comments.
* Overly long methods.
* Overly large classes.
* Overly long parameter lists to methods.

and all examples are coded in Java. Programming veterans will recognize most of these problems as old and venerated programming difficulties. With the exception of large classes, they have been part of the list of bad programming habits for decades. However, the solutions require a bit of thought, it is conceptually simple to make comments, variable names and method names more descriptive, but of course there are reasonable bounds that reasonable people can disagree on. There are only rules of thumb available to guide us, and Wake sets down his thoughts on this matter.
The real difficult problems in this list, and where this book is the biggest help in this section, is in demonstrating how to make methods and classes shorter. To factor out just the right amount of code and still maintain the same level of understandability can be a difficult judgement call. Programmers learn best by seeing worked examples, so the sequence of presentation is:

* Symptoms.
* Causes.
* What to do?
* Payoff.
* Discussion.
* Contraindications.

Coding veterans will most likely find the "contraindications" section of the exercises the most helpful. It describes reasons why performing the refactoring may not be the best decision.
The second set of refactoring exercises are:

* Unnecessary complexity.
* Duplication.
* Conditional logic.

This set of refactorings will also be familiar to coding veterans. Removing dead code, eliminating duplicate code, deleting magic numbers and using more efficient Boolean operations have been on the list of good programming habits for decades. Therefore, the refactorings in this section are fairly routine, as they do not require an object-oriented example to demonstrate them.
The most valuable section of the book is the second one, where the coverage is smells between classes, which are as follows:

* Data.
* Inheritance.
* Responsibility.
* Accommodating change.
* Library classes.

Most modern programmers will be familiar with the first section and will have already done many of them as part of their general coding practices. However, the "smells" in the second list are those that always seem to creep undetected into large programs. Therefore, they are harder to identify and often even harder to remove. I found the segment on problems in library classes to be the most valuable one of the entire book. I often use library classes in Java and there have been times when I have looked at a library class and been puzzled by how it is constructed.
The book closes with four small programs that are to be refactored as exercises. Large and complex enough to be worthwhile exercises, they are an excellent conclusion to a helpful book. Many problems are included and solutions to almost all are found in an appendix.
While this book is a good way to practice refactoring, it is not a good way to learn it. The classic book by Martin Fowler is still the best introduction to refactoring.

4 out of 5 stars Makes Refactoring Real.......2004-05-20

This book proved to be an excellent learning tool during a refactoring session at my eXtreme Programming Users Group meeting. We discussed most of the covered refactorings, divided into pairs, and went through several of the exercises (many of which had downloadable code). Thereafter, each pair discussed their approach with the entire group. I must say the book accomplished its goal: To give novices and veterans alike the chance to gain or sharpen refactoring skills. I highly recommend this book and suggest its use within a group.

5 out of 5 stars Required reading to get effective at refactoring.......2003-12-22

The concrete identification of smells, working examples, and straighforward but useful exercises make this book a must-have to really understand how to refactor your code -- even if you're a non-Java guy like myself.

It would've been nice to have examples inline for some of the refactorings -- more of the feel of _Design Patterns_. I also didn't agree with him everywhere; he asserted that there were some smells that had no known justitications and had to always be addressed. However, unit tests look like they would set off his 'too much internal knowledge' smell, but I probably wouldn't just go chopping them out because of that.

4 out of 5 stars An ideal companion to Martin Fowler Refactoring book.......2003-12-11

An ideal companion to Martin Fowler's Refactoring book. Wake delivers a more practical oriented book, with a generous amount of relevant examples and code listings. Compared to Fowler's seminal title this one, due to its "workbook" nature, is much more Java-centric, making it harder to translate certain concepts to different languages and environments. In my opinion a very interesting and informative book, somewhat affected by a confused typographical layout not very well suited to its content. Just remember to read Fowler's book first!
REFACTORING WORKBOOK
Average customer rating: Not rated
    REFACTORING WORKBOOK
    WILLIAM C. WAKE
    Manufacturer: Addison-Wesley Professional
    ProductGroup: Book
    Binding: Paperback
    ASIN: B000OUB63G

    Books:

    1. Use Case Modelling
    2. Software Configuration Management Strategies and Rational Clearcase: A Practical Introduction (Object Technology S.)
    3. Writing Perl Modules for CPAN
    4. Effective Software Testing: 50 Specific Ways to Improve Your Testing
    5. Developing ActiveX Web Controls: The Hands-on Guide to Creating Powerful Controls on the Web
    6. Model Checking Software: 10th International Spin Workshop, Portland, OR, USA, May 9-10, Proceedings (Lecture Notes in Computer Science S.)
    7. Definitive Guide to Excel VBA
    8. Refactoring Workbook
    9. MCSE Windows 2000 Core Four: (Exam 70-210, 70-215, 70-216, 70-217)
    10. A First Book of Visual C++: Fundamentals of C++ Programming with Microsoft(c) Foundation Classes (West Computer Science S.)

    Books