利用这本通过示例"说话"的实例手册,可以充分发挥重构的强大功能,改善现有的软件。 身为程序员,你必须具备的一个基本功就是能够找出并改善有问题的代码,使程序能够在软件的整个生命周期中正常运转。重构可谓是安全地改善既有代码设计的一门艺术,由此可以提供高效而的系统,使纷杂凌乱归于平稳有序,并能限度地抑制异常的出现!重构可能很难掌握,但是在专业顾问William C.Wake所撰写的这本书中,经由作者娓娓道来,有关内容得以通过一种易于学习的方式展现出来,不仅使学习之旅颇具实效,而且充满乐趣。 对于许多人来说,学习重构的障碍是如何找出代码的"坏味道(smell)",即可能存在问题之处。本书并非让你流水帐式地通读这些坏味道,而是确保你对这些坏味道有切实的理解。在此奉上了一系列精心组织的问题,通过这些问题的解决,你将会茅塞顿开,不仅会在更深层次上了解重构,而且还将获得你自己的一些心得体会。Wake采用了实例手册的方式来组织全书,以帮助你了解最为重要的重构技术并将其应用于代码之中。这是一种强调学习的方法,要求你必须充分应用本书所提供的诸多技术。除此之外,这种方法还有一个附带的好处,即尽管当前你所作的工作也许并非重构,利用本书也将有助于你更多地考虑如何创建品质的代码。 本书提供了以下特性,可令读者轻松上手: ·方便的"坏味道"速查手册(嗅探工具) ·描述"坏味道"的标准格式 ·介绍关键重构技术的附录 ·支持重构的Java工具列表 本书面向有Java经验的程序员,不过C#或C++程序员若对Java有基本了解,也能顺利地阅读本书并学习书中的示例。本书可以作为Martin Fowler所著《重构——改善既有代码的设计》(中文版和影印版均已由中国电力出版社出版)一书的姐妹篇,该书对多种重构技术提供了循序渐进的介绍。
本书可以作为Martin Fowler所著《重构——改善既有代码的设计》一书的姐妹篇,书中对多种重构技术提供了循序渐进的介绍。 Wake采用了实例手册的方法来组织全书,以帮助了解为重要的重构技术并将其应用于代码之中。这是一种强调学习的方法,要求你必须充分应用本书所提供的诸多技术。除此之外,这种方法还有一个附带的好处,即尽管你当前所做的工作也许并非重构,利用此实例手册也将有助于使你更多地考虑如何创建品质的代码。
Willian C.Wake是一位独立软件顾问、教员和培训师。他致力于程序设计已逾20年,曾任职于Capital One Financial、MCI/WorldCom和VTLS等世界知名大公司。他还是《Extreme Programming Explored》一书的作者。
Preface
1 ROADMAP
Overview
Section 1: Smells within Classes
Section 2: Smells between Classes
Section 3: Programs to Refactor
A Word on the Challenges
SECTION 1 SMELLS WITHIN CLASSES
2 THE REFACTORING CYCLE
What Is Refactoring?
Smells Are Problems
The Refactoring Cycle
When Are We Done?
Inside a Refactoring
Challenges
Conclusion
3 MEASURED SMELLS
Smells Covered
Comments
Long Method
Large Class
Long Parameter List
More Challenges
Conclusion
INTERLUDE 1 SMELLS AND DEFACTORINGS
4 NAME
Smells Covered
Type Embedded in Name (Including Hungarian
Uncommunicative Name
Inconsistent Names
5 UNNECESSARY COMPLEXITY
Smells Covered
Dead Code
Speculative Generality
INTERLUDE 2 INVERSES
6 DUPLICATION
Smells Covered
Magic Number
Duplicated Code
Alternative Classes with Different Interfaces
Challenges
7 CONDITIONAL LOGIC
Smells Covered
Null Check
Complicated Boolean Expression
Special Case
Simulated Inheritance (Switch Statement
INTERLUDE 3 DESIGN PATTERNS
SECTION 2 SMELLS BETWEEN CLASSES
8 DATA
Smells Covered
Primitive Obsession
Data Class
Data Clump
Temporary Field
9 INHERITANCE
10 RESPONSIBILITY
11 ACCOMMODATING CHANGE
12 LIBRARY CLASSES
13 A DATABASE EXAMPLE
14 A SIMPLE GAME
15 CATALOG
16 PLANNING GAME SIMULATOR
17 WHERE TO GO FROM HERE
SECTION 4 APPENDIXES
BIBLIOGRAPHY
INDEX