锁定老帖子 主题:也谈重构
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2009-05-17
最后修改:2009-05-17
谈到“重构”,大家马上就会想到MF的《重构----改善既有代码的设计》。一年多前,我买了这本书,期间断断续续翻过三次,真正算是研读的也就是一次。确实是一本好书,但是在我看来,很多人并没有理解重构的本质。 什么是重构?“本质上说,重构就是 在代码写好之后改进它的设计”。这是书上的原话。你真的理解这句话嘛?
重构的时机:在代码写好之后,在我看来到没必要那么严格。 真正的关键意义在于:“改进软件的设计”。
看个例子,这是在前几天在JE首页的帖子(忘记具体在哪块了):
平时大家在写代码的时候肯定会想:这样的代码好不好?有什么可改进的?这个方法是不是该在这个类里?甚至于用什么模式。这种讨论在论坛、群组、同事之间经常会发生。拿上面的例子,他在写模块,写工具类的时候肯定会有这样的思考。但是一想到重构,脑子里便是:一看就是好书,不过看了为什么没感觉?这100多个技巧怎么记得住啊?什么时候可以用哪个技巧啊?
当你在想着,怎么改进自己代码的时候,是为了什么?改进软件的设计!!!重构又是为了什么?改进软件的设计!!!很多人一翻开《重构》就像进入了一个“空中花园”,那么多的技巧让你感叹,会花很多时间去理解。可是一合上书,马上又进入了另一片天地,“空中花园”离你是那么遥远,高高在上。
“重构”与你平时对软件做的努力并无本质的区别!他们就是同一个东西。
将“强大神秘的重构”与我们平时私下讨论的“作坊式的小技巧”相提并论,会令很多人感到诧异。昨天“重构”在我眼前还是那么神秘,面对那100多个技巧我还是那么不知所措。怎么今天这家伙把重构说的那么“轻”?现在有很多关于重构的书,《网站重构:应用Web标准进行设计 》、《数据库重构》、《重构与模式》等等等等,如果你看清重构的本质,那么看书的时候就会是一种享受,不然你就会陷入一种又一种重构技巧的噩梦中。
我想这也是为什么gigix说,看完这本书之后就完全甩开了这本书,是有道理的。JE上关于重构最好的帖子就是:讨论:重构的前提是不是 TDD。大家可以去看看,最关键的是要有自己的认识。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2009-05-19
使用框架,分层并不能代替设计.同样的ssh,会写烂代码的人照样写出来的东西让人恶心!
我认为一个程序就是自己的一个作品,是一件艺术品,会注入自己的思想,灵魂! |
|
返回顶楼 | |
发表时间:2009-05-19
很多刚看《重构》的人,都会认为这是高深的学问,很难弄明半,特别是那100多个技巧,根本记不住。
我只是想告诉大家,看了重构以后,要有重构的意识,而不是念着那些技巧,那么你对重构的时机,重构的技巧才会有更深的理解。 如果你把它当成“高深”的学问,和你平时编码完全脱节,反而会照成很多困扰。 我举得那个例子就是最好的证明,很多人看了重构而不知道重构是什么。 |
|
返回顶楼 | |
发表时间:2009-05-26
去年年底被迫参与了一个VB.net的CS架构的给人擦屁股的项目,开发进行了一半,没有基本设计,没有详细设计,没有数据库设计,在表现层直接做持久化,这个简直就是垃圾。
我进去就建议说先整理文档,进行MVC分层(算重构吧),不然没办法做,结果就被boss否决了。没办法,硬着头皮上,结果前几天没写一行代码(真的是没有办法写啊),最后被boss以没有责任心,能力不足为由fire了,呵呵。 重构首先要以正确的结构为前提,如果从根就烂了,也就没有重构的必要了。 |
|
返回顶楼 | |
发表时间:2009-05-27
事先的设计和重构关系不大,如果乱起八糟还不如重写,没什么必要重构。
|
|
返回顶楼 | |
浏览 2503 次