我是程序员
相比于写代码,我更喜欢写能自动产生代码的生成器,和许多人一样,我讨厌写重复的代码,这种重复包括字面的重复和结构的重复、还有思想的重复。
在日常的开发过程中,一旦我发现一种需要经常使用的元素(类/结构/方法),我就将它整理出来,所谓整理主要是做这样的工作:重构、最大限度降低这个元素与其它元素的耦合性、最大限度地扩展该元素的适用范围、精简算法。然后将整理得到可复用元素按照其类别存放于我的类库中。至今,这个类库(即EnterpriseServerBase)中已经包含有上百个类了,涉及到应用开发的多个方面。这套类库中,我最感自豪的是数据层(XCodeFactory自动生成的数据层代码便是以此为基础)和网络部分的封装。
已经养成了一个习惯,在写一个组件之前,喜欢先定义这个组件的接口。今天重新审查EnterpriseServerBase中很久以前写的一些类,发现有些类比较复杂,而这些类也没有接口,要完整了解这些类的意图,还真需要花上一点时间。在理解之后,我将接口抽离出来,通过这个接口,我们就可以一览这个类的全貌。是的,我们应该为绝大多数(如果不是所有)需要复用的类定义一个接口,哪怕仅仅是为了以后我们能更快地读懂这个类。何况,定义一个接口,我们以后就可以更换这个接口的实。所以,我通常把前述的拥有接口的类称为接口的“参考实现”,比如MessageSplitter类是IMessageSplitter的参考实现,IMessageSplitter用于将从网络接收到的二进制流分裂成一个个完整的消息,如果你有更好的方法实现这个目的,你当然可以自己编写一个XMessageSplitter,而不必被迫于使用我那个可能是糟糕的MessageSplitter参考实现:)
不要指望一次写出最优秀最适用的组件(类),因为有很多内容一开始并不能全部考虑到,关于这个组件(类)的很多其它需求都是这个组件在实践、在不断的被使用的过程中发掘或发现的,这个时候,你可能需要修改前面的设计,来更好的适应新的需求。重构,此时就是你最大的法宝。我喜欢重构!一旦发现代码或设计有了坏味道,我就即刻开始重构――即刻,而不是推迟到明天。如果没有重构,一个组件的生命力肯定难以长久,除非这是一个非常简单的组件。正是因为有了重构,EnterpriseServerBase类库才会成为我开发的得力助手,我参与的任何一个项目都有EnterpriseServerBase的影子,我每天都使用它,甚至几乎每天我都会重构EnterpriseServerBase中的某些代码,或加入新的类。EnterpriseServerBase中的每一行代码都是我自己亲手所写,它就像自己的孩子一样,在我的细心呵护下健康成长,而EnterpriseServerBase也给予了我最大的回报――那就是我工作效率的不断提升,这不仅仅表现在能在很短的时间内完成任务,而且能保证质量,因为EnterpriseServerBase中的每个类都曾经经历或正在经历实践的检验。
每个优秀的开发人员都应该积累一套自己的类库!
如果说EnterpriseServerBase类库是我的第一个孩子,那么XCodeFactory就是我的第二个孩子。我已经在cnblogs上开辟了XCodeFactory 的专栏(EnterpriseServerBase的专栏也会在后面推出)。我要向所有的朋友、所有的.NET开发人员推荐XCodeFactory,因为这是一个很实用的代码生成工具,而且生成的数据层代码功能强大,它可以使开发人员完全绝对地从数据层解脱出来。我这样极力推荐,并不是想获取任何好处,XCodeFactory完全免费,而且我会一直提供技术支持。如果说将XCodeFactory推荐给大家有任何目的的话,那么目的就只有一个,那就是XCodeFactory的确太有用了,我希望这么好(如果不是优秀)的工具能帮助更多的一线开发人员。因为我也是一线的开发人员,在以前的项目中在数据层吃过不少苦头,我希望后来者能通过XCodeFactory来避免这些类似的苦头,而把更多的精力放在对优秀设计的思考和对业务的分析上面,而不是在需要加一个数据库表或修改一个表中的字段时,要花上个大半天。
我是程序员,专著于C++、.NET、架构模式等技术,这是我的blog(http://www.cnblogs.com/zhuweisky),这是我和其它程序员交流的地方!