zhuweisky

君子之行,静以修身,俭以养德。非淡泊无以明志,非宁静无以致远。

ESFramework,基于.NET的通信框架。DataRabbit,轻量的数据访问框架。Strive,游戏引擎。sky.zhuwei@163.com
posts - 196, comments - 1329, trackbacks - 101, articles - 1
  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理

我是程序员

Posted on 2005-09-13 09:14 zhuweisky 阅读(887) 评论(5)  编辑 收藏 网摘 所属分类: 技术随笔
    相比于写代码,我更喜欢写能自动产生代码的生成器,和许多人一样,我讨厌写重复的代码,这种重复包括字面的重复和结构的重复、还有思想的重复。

        在日常的开发过程中,一旦我发现一种需要经常使用的元素(类/结构/方法),我就将它整理出来,所谓整理主要是做这样的工作:重构、最大限度降低这个元素与其它元素的耦合性、最大限度地扩展该元素的适用范围、精简算法。然后将整理得到可复用元素按照其类别存放于我的类库中。至今,这个类库(即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来避免这些类似的苦头,而把更多的精力放在对优秀设计的思考和对业务的分析上面,而不是在需要加一个数据库表或修改一个表中的字段时,要花上个大半天。

通过我的blog和我收到的email看来,现在使用XCodeFactory的人并不多,我想主要原因是我对XCodeFactory的介绍还不够清楚,但请你相信,这绝对不是XCodeFactory的问题,而是我表述能力和介绍能力的问题。你也许会提到更愿意使用NHibernate,如果你已经对NHibernate的使用非常熟练了,那当然没问题。但如果你以前没有接触过任何ORM的工具,那么我觉得XCodeFactory更好用,更容易上手。对于绝大多数(如果不是所有)的应用,XCodeFactory绝对足以对付。我已经在XCodeFactory的Blog上写XCodeFactory3.0完全攻略系列文章,希望对大家了解和使用XCodeFactory有所帮助。

如果你对XCodeFactory有点兴趣,那么就在你的项目中尝试使用它来做你的助手吧,如果使用的过程中有任何不爽,就通过email或到我的blog上来骂我。我相信,XCodeFactory一定不会让你失望的。

呵呵,写了这么多,真是像在为XCodeFactory做广告,也确实是,我想把这个好助手介绍给更多的人嘛!

我是程序员,专著于C++.NET、架构模式等技术,这是我的bloghttp://www.cnblogs.com/zhuweisky),这是我和其它程序员交流的地方!

Feedback

#1楼    回复  引用    

2005-09-13 13:09 by loviuy [未注册用户]
XCodeFactory 的专栏的连接地址错了

#2楼 [楼主]   回复  引用  查看    

2005-09-13 13:56 by zhuweisky      
to loviuy:
链接已经更正,thanks

#3楼    回复  引用    

2006-04-12 23:21 by netx [未注册用户]
偶以楼主为榜样

#4楼    回复  引用    

2007-05-21 10:12 by qqcrazyer [未注册用户]
每个优秀的开发人员都应该积累一套自己的类库!
同意此关点..

#5楼    回复  引用  查看    

2008-01-03 15:09 by 蛙蛙池塘      
支持




标题  
姓名  
主页
Email (博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
该文被作者在 2005-09-13 13:55 编辑过
Google站内搜索

相关文章:

相关链接: