我是程序员-阿里云开发者社区

开发者社区> zhuweisky> 正文

我是程序员

简介: 相比于写代码,我更喜欢写能自动产生代码的生成器,和许多人一样,我讨厌写重复的代码,这种重复包括字面的重复和结构的重复、还有思想的重复。         在日常的开发过程中,一旦我发现一种需要经常使用的元素(类/结构/方法),我就将它整理出来,所谓整理主要是做这样的工作:重构、最大限度降低这个元素与其它元素的耦合性、最大限度地扩展该元素的适用范围、精简算法。
+关注继续查看

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

        在日常的开发过程中,一旦我发现一种需要经常使用的元素(类/结构/方法),我就将它整理出来,所谓整理主要是做这样的工作:重构、最大限度降低这个元素与其它元素的耦合性、最大限度地扩展该元素的适用范围、精简算法。然后将整理得到可复用元素按照其类别存放于我的类库中。至今,这个类库(即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、架构模式等技术,这是我的bloghttp://www.cnblogs.com/zhuweisky),这是我和其它程序员交流的地方

 

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
阿里云服务器怎么设置密码?怎么停机?怎么重启服务器?
如果在创建实例时没有设置密码,或者密码丢失,您可以在控制台上重新设置实例的登录密码。本文仅描述如何在 ECS 管理控制台上修改实例登录密码。
7238 0
程序员的自我修养
一、自我修养路线图      如图,这是笔者所走的路。且不论这路走的对不对,这个过程中行业环境会影响到你,大可不必钻牛角尖。附上这张图的目的是为了说,如果你想成为一个优秀的程序员,那么你一定要有规划。
1485 0
又一个程序员倒下-程序员防猝死指南
今天下午,这个视频在技术群里疯传,据传是一位24岁的程序员在工作中猝死,在为他惋惜的同时,希望借助这个事情来为大家的健康敲一个响钟。
1165 0
《程序员的呐喊》
TL;DR 读完这本书,虽然我认可作者的大部分观点,但是凝神一下,让我感触更多的是,我离优秀的程序员还差很远很远。不过我感到庆幸的是,我一直保持着对计算机的思考和好奇,这份兴趣,让我的坚持,一路充满着迷茫、惊喜和快乐! I’m not a real programmer, but I do my best. “程序员这门职业,我选择,我担当“ —— From《
1129 0
+关注
zhuweisky
从事软件开发行业十多年,专注于网络通信技术和网络语音视频技术,擅长系统架构设计、系统性能优化等。zhuweisky.cnblogs.com
300
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《Nacos架构&原理》
立即下载
《看见新力量:二》电子书
立即下载
云上自动化运维(CloudOps)白皮书
立即下载