由于最近接手了一个有关于ActiveX的产品的维护工作,使得我有机会重拾已丢下一年多的COM技术,同时也有机会重新审视技术的变迁历程,以及蕴含在其中的某些思想,这种感觉就好像回过头来看自己走过的道路。所不同
的是,回首自己的人生路,成败得失一幕了然;而技术的发展虽然依然遵循优胜劣汰的法则,但优劣之间的界限好像并不那么明显,反而有些使人迷茫。比如说复用。
软件复用一直被视为改善软件工程的重要手段,人们期望通过复用以前的代码或组件,来提高生产率,改善产品的质量。软件复用一般又分为源码级复用和二进制级复用。对于源码级复用,现在已经发展出很多重要的设计范式(paradigm)从各个不同的方面提供支持。比如OO通过对数据与处理数据的函数进行封装来达到class的复用,而GP通过分离数据结构以及处理这些结构的方法与数据的类型之间的联系,来使数据结构和方法得到复用。对于二进制级的复用,目前也有非常成熟的组件模型,比如COM、CORBA等。而且,现在也有了一些非常优秀的指导软件复用的理论,如Design Patterns等。以上这些都说明,软件复用勿庸置疑是软件设计中一种非常重要的思想,我们每个人在写代码的时候都应当充分考虑我们的代码的复用性,这一直是我遵循的信条之一。但是,现在我有些迷茫了。
还是先说说我最近接手的工作吧。我接手维护的产品是一组写于数年前的ActiveX controls(代码中最早的注释可以追溯到公元1997年,看到这行注释时,我首先想到的竟然是那首叫做“我的1997”的歌曲),由于年代久远,除了产品的使用手册之外,没有任何关于代码的文档,我只能靠源码和其中零零碎碎的注释来揣摩前辈们的意图。我得承认,这些代码中虽然夹杂了许多不同的人由于各种原因而做的修改,但代码的整体结构还是很好的。
为了从最大程度上满足复用的要求,这些前辈们从ATL2.1上发展出一套自己的ActiveX control库(暂且叫做BLib吧),来负责处理control的属性、接口、事件以及消息等,这套库简化了ATL窗口编程的复杂程度,修正了当时存在于ATL2.1中的某些错误,这个库在当时应该很好用(我只是猜测,因为其中的大部分代码我还没看懂L)。基于BLib库的产品的逻辑与UI是分开的,大部分的逻辑错误并不需要改动库代码。
URL查看 http://www.qqread.com/itlife/d012742010.html
更多内容请看常用软件加密宝典、杀毒软件专栏、软件插件专题,或进入讨论组讨论。
相关专题
- ARP病毒入侵原理和解决方案 (45420次浏览)
- 一个小程序员年薪五万的悲哀生活和他的理 (23759次浏览)
- xp下运行命令大全 (21400次浏览)
- TCP/IP详解学习笔记(3)-IP协议,ARP协议,R (5834次浏览)
- 大学计算机软件专业生应该学什么 (4250次浏览)
- 一只在IT上苦苦挣扎,努力奋斗的小菜鸟经历 (4145次浏览)
- 一个程序员如何月进万金的? (4128次浏览)
- 开发心得分享:10年编程无师自通 (3755次浏览)
- 一个网络工程师在英国的面试经历 (2824次浏览)
- 什么程序员最易找工作? 十大热门语言汇集 (2422次浏览)



