[工作八卦]俺的重构总结 |
小工头 发表于 2011/3/20 23:14:41 | 正文之前先来个小段子: 前几天听收音机,女主持人念读者来信:“主持人阿姨你好!我是一名中学生。每当放学时,我看到满街的车流就忍不住想,要是有飞机坐就好了!主持人阿姨,到底我们什么时候才可以在北京街头……打飞机……呢?”三个月过去了,俺大胆而疯狂的重构计划终于接近完成。回头看看,感慨良多。重构开始没多久,俺就入迷了,真的好爽啊!刚开始只是去掉几个中间变量而已,紧接着就发现两段代码可以提炼公共函数,然后发现公共函数之间存在依赖关系可以封装成新类,接下来新类可以通过继承使用在别的代码中……俺不停地被新发现所鼓舞,在重构的道路上高歌猛进,却忘了书里强调的原则:重构要循序渐进,每次重构后都要做测试。当俺意识到形势不妙停住脚步时,俺已经在重构的路上走得太远,不要说测试,连编译都通不过了。俺花了差不多整整三周的时间,才从这种尴尬的局面中挣脱。这是俺在重构时得到的第一个教训:重构很爽,但不可贪多。在重构的过程中,还有一个令俺羞愧不已的发现。参考书的作者是JAVA程序员,提供的技巧都是从OOP的角度出发的。这些技巧俺在重构时用得很爽,有种天地为之一宽的感觉。过了一段时间,俺突然意识到,这么多技巧都可以用到俺原先的代码中,只能说明一件事,俺的代码不是OOP的……有了这个想法,随着重构越来越深入,俺也越来越惭愧:多年来俺一直自称C/C++程序员,原来俺只不过是个使用C++语法的C程序员而已。后来发生了一件事,让俺更加惭愧:俺曾经为一个类的封装困扰不已,具体说就是俺想在基类中声明一个方法,但想在调用时使用子类的实现。想来想去没有办法,最后是旁观者清的同事点醒了俺,这就是典型的virtual method啊!闹了半天,俺连C++语法都不熟。就这样还好意思自称IT青年,打着C/C++的旗子招摇撞骗这许多年?!实在是太惭愧啦!撞墙去~~~~撞完墙爬回来说,难怪俺以前画类图死活画不出来……说正经的,OOP真不是拍拍脑袋就能写出来的。俺和周围的许多同事一样,接受的是结构化编程的训练。按照教材的说法,编程前要画流程图。但俺觉得画流程图是一件很多余的事,从来都是裸写代码,撑死了边想边写。但OOP不同,如果不经过精心的设计,是很难一次就写出合用的代码的。在重构的过程中,俺有过多次来回修改类定义的痛苦经理。因此,设计文档对OOP来说非常重要,最简单最直观的就是类图。俺已经打算学习UML了。在重构的过程中,俺还接触到了其他的新思想。不怕各位IT青年笑话,俺是第一次实战应用工厂模式。工厂模式的确很爽,尤其是配上多个子类,完美地对应了类图。不过,由于C++需要显式的delete,工厂模式用在JAVA里明显更爽。另外,经过重构之后的代码很适合俺从另外一本书里看来的“线程化”方法。总的来说,经过这次重构,俺体验了各种新的编程理念(好吧,OOP不是新的编程理念……)对编程这件事有了全新的理解,有种“原来编程还可以这样”的惊喜感觉。而各种时尚的编程技巧和编程工具(好吧,UML也不算太时尚……)的接触和应用,使得IT青年常有的“吃老本”的恐慌感离俺远去,俺已知道有很多东西值得学习。重构是IT青年提高自身的好方法,老外诚不我欺。最后还要说一点,尽管俺的首次重构进行得不算顺利,前后花了三个月,有很多地方做得不够,也有很多地方做得过火,这些都遗留在了重构后的代码中。但是不管怎样,俺的重构平稳地结束了,即将发布。与此同时,由俺们领导亲自挂帅,集合了部门半数人手进行的一个名为“重构”实为重写的项目,比俺早启动两个月,但现在还在泥潭中挣扎:每天都在拼命地解决bug,可是每一天都有新的bug。两相对比,重构的效率是显而易见的。
|
|
回复:俺的重构总结 |
跳芭蕾舞的猪(游客)发表评论于2011/3/23 17:46:28 | 才开始学UML啊,我一个文科生在5年前就开始学了,推荐一本书《大象》,所有UML中写地最好的一本。
|
|
回复:俺的重构总结 |
真不准发表评论于2011/3/21 20:59:46 | 还好还好,我主要项目是C/S的C#项目,一般OOAD相对做得比较好,主要是我们几个开发的懒,能复用尽量复用,这样一些公用的,基础的设计就很灵活。我是从JAVA转向C#的。
|
|
» 1 »
|

.: 公告
有人的地方就有恩怨 有恩怨的地方就是江湖 人在江湖漂,谁能不挨刀 |
|
« | August 2025 | » | 日 | 一 | 二 | 三 | 四 | 五 | 六 | | | | | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | | | | | | | |
|
.: 我的分类(专题)
|

.: 最新日志
.: 最新回复
|

blog名称:少年包工头的工作日记 日志总数:629 评论数量:1458 留言数量:56 访问次数:8965467 建立时间:2004年12月8日 |
|

.: 留言板
|

.: 链接
|

|