软件开发思路:整合,复用,分享

来源:互联网 发布:窗帘设计软件 编辑:程序博客网 时间:2024/05/16 11:07

昨天表了一篇文章《软件开发关键字:整合和复用》。关于整合和复用,是有一些交集的。

今天继续这个话题。不过题目变了一下。

 


 

以复用的思路指导开发:
1、构建系统的时候,把多个子系统系统的交集部分抽象出来,作为系统的基础设施,为多个子系统提供服务。我们公司是从事企业语音系统开发,包括调度系统,会议系统,呼叫中心系统等。这几个子系统的交集,典型的比如企业通讯录,计费,呼叫记录,网管,都可以单独抽象出来做为基础设施为各个子系统提供服务。
2、在构建程序的时候,可以将能够复用的模块以库的形式抽象出来。比如,软交换系统需要使用sip协议栈,那么就可以把sip协议栈开发成为一个库,这样就可以在其他程序(比如TG)中复用sip库。如果软交换程序要重新开发,也可以直接复用以前的sip库。其他相同的比如tcp分包流控模块,定时器模块等。
3、再更低一个层次,就是子程序的复用。把重复的操作以封装成一个库,比如TCP建立连接和关闭连接,收发包等。
按照这种思路开发的好处:
1、避免重复开发,提高开发效率。
2、程序结构可以快速的演进。比如,旧版的软交换使用的sip库,可以在新版软交换开发的时候直接被拿来使用。类似的库越多,软交换在重新架构的时候就可以只对核心部分进行重新设计,而其他部分都可以重用。
3、整个系统可以灵活的演进。子系统的交集:企业通讯录,计费,呼叫记录,网管等以基础设施的方式支撑整个系统,当整个系统演进的时候,可以直接重用这些基础设施,或者进行小范围的更改后进行重用。这样的话,就可以只对系统的核心部分——业务逻辑部分——进行重新设计,达到系统升级的目的。


以整合的思路指导开发:
1、在开发一个新产品的时候,要首先看看公司以往有没有优秀的解决方案、软件模块可以整合以提高效率。其次,要开源世界有没有优秀成熟的解决方案可以整合。比如,要在c和c++上进行xml编解码,那么可以寻找一些优秀的开源解决方案,比如tinyxml,而未必要自己实现。在比如,如果需要工作流引擎可以参考一下JBPM。
好处:
1、借助已有的优秀方案可以加速软件开发过程,避免重复开发,保证产品质量。
2、在整合的过程中,会逐渐积累研发经验,形成研发平台,从而变成公司的宝贵资产。


以分享的思路指导开发:
1、在公司内部分享开发中的可重用的软件模块,技术积累,管理经验。促进知识流动。
2、面向公司外部分享开发中的可重用的代码模块,技术积累,管理经验。部分可重用的模块可以考虑以开源的形式贡献出来。利用社区的力量,推动自身软件研发实力的发展。
好处:
1、整合和分享结合起来,实现“使用开源,回馈开源”,促进技术进步。
2、利用开源社区的反馈,促进自身技术进步。
3、促进知识,经验的流动。

整合和复用的好处是,可以使程序,系统的核心部分独立于其他部分而快速的演进,从而达到程序、系统快速升级的目的。