技术随笔 - 我是程序员

来源:互联网 发布:易语言网络音乐播放器 编辑:程序博客网 时间:2024/05/16 02:07

FROM:http://zhuweisky.cnblogs.com/archive/2005/09/13/235644.html

    相比于写代码,我更喜欢写能自动产生代码的生成器,和许多人一样,我讨厌写重复的代码,这种重复包括字面的重复和结构的重复、还有思想的重复。

 

        在日常的开发过程中,一旦我发现一种需要经常使用的元素(类/结构/方法),我就将它整理出来,所谓整理主要是做这样的工作:重构、最大限度降低这个元素与其它元素的耦合性、最大限度地扩展该元素的适用范围、精简算法。然后将整理得到可复用元素按照其类别存放于我的类库中。至今,这个类库(即EnterpriseServerBase)中已经包含有上百个类了,涉及到应用开发的多个方面。这套类库中,我最感自豪的是数据层(XCodeFactory自动生成的数据层代码便是以此为基础)和网络部分的封装。

 

已经养成了一个习惯,在写一个组件之前,喜欢先定义这个组件的接口。今天重新审查EnterpriseServerBase中很久以前写的一些类,发现有些类比较复杂,而这些类也没有接口,要完整了解这些类的意图,还真需要花上一点时间。在理解之后,我将接口抽离出来,通过这个接口,我们就可以一览这个类的全貌。是的,我们应该为绝大多数(如果不是所有)需要复用的类定义一个接口,哪怕仅仅是为了以后我们能更快地读懂这个类。何况,定义一个接口,我们以后就可以更换这个接口的实。所以,我通常把前述的拥有接口的类称为接口的“参考实现”,比如MessageSplitter类是IMessageSplitter的参考实现,IMessageSplitter用于将从网络接收到的二进制流分裂成一个个完整的消息,如果你有更好的方法实现这个目的,你当然可以自己编写一个XMessageSplitter,而不必被迫于使用我那个可能是糟糕的MessageSplitter参考实现:)

 

不要指望一次写出最优秀最适用的组件(类),因为有很多内容一开始并不能全部考虑到,关于这个组件(类)的很多其它需求都是这个组件在实践、在不断的被使用的过程中发掘或发现的,这个时候,你可能需要修改前面的设计,来更好的适应新的需求。重构,此时就是你最大的法宝。我喜欢重构!一旦发现代码或设计有了坏味道,我就即刻开始重构――即刻,而不是推迟到明天。如果没有重构,一个组件的生命力肯定难以长久,除非这是一个非常简单的组件。正是因为有了重构,EnterpriseServerBase类库才会成为我开发的得力助手,我参与的任何一个项目都有EnterpriseServerBase的影子,我每天都使用它,甚至几乎每天我都会重构EnterpriseServerBase中的某些代码,或加入新的类。EnterpriseServerBase中的每一行代码都是我自己亲手所写,它就像自己的孩子一样,在我的细心呵护下健康成长,而EnterpriseServerBase也给予了我最大的回报――那就是我工作效率的不断提升,这不仅仅表现在能在很短的时间内完成任务,而且能保证质量,因为EnterpriseServerBase中的每个类都曾经经历或正在经历实践的检验。

 

每个优秀的开发人员都应该积累一套自己的类库!

 

 

 

 

原创粉丝点击