以下是文字提取部分,阅读完毕的同学可以离开了
什么是;重构;
简言之;“改善既有的代码”;
就像这本;书名:;
;《重构:改善既有代码的设计》;
有人问:“我;为什么;要重构?”
“我旧的代码;可以运行;啊!”
从前,有位资询顾问;造访开发项目;
他发现整个项目的;代码很凌乱;
于是他建议经理对;代码进行维护;
经理;火冒三丈;
本来项目;进度就吃紧;
项目是;可以运行;的
重构可能会;全家火葬场;
你来搞什么;幺蛾子;
你对这个故事有什么;感想?;
你认为;谁是对的;
后来项目;重新启动;
几乎;重头;编写整个系统
Kent Beck受邀做了顾问
他;重构;了所有代码
本书的作者便是;第一个;顾问
这个故事可以用;三个词;来形容
;土老帽;
本着;话糙理不糙;的道理
我想告诉你几个;事实;
程序员;可维护;的代码有限
一个人的;记忆;也是有限的
代码的质量决定对;代码维护;的难易
代码重构不仅仅;对自己;代码的改善
也可以重构;他人;的代码
使自己有一个更清晰的;理解思路;
我用一个;小例子;作为敲门砖
这是;影片出租;程序
有以下;三个角色;
;Movie;
影片只是单纯的;数据类;
这里有三类影片:;普通片 儿童片 新片;
;构造函数;初始化_priceCode,_title
设有get和set函数以便对;价格码;操作
;Rental;
租赁与影片代码;相似;
不同的是其;构造函数;要传入一个Movie对象
设有set和get对;租赁日期;进行操作
;Customer;
顾客类有着同理的;析构函数;
_rentals是一个;对象数组;
用;addRental;来存入租赁对象
get用来获取;顾客名;
顾客类还有一个;statement();
完整的;statement()代码;如下
这个程序给你留下了;什么印象;?
我会说他设计的;不好;
Customer里的statement();太复杂;了
它做的;事情太多;了
这个程序其实是能;正常工作;的
我们重构只是在;美学;上的批判
但是当我们打算进行;维护;时候
你就很容易出现未知的;bug;
下一篇我将要对这个代码进行;大换血;
See you
网友评论