源码级的代码复用并不是没有风险
另一个(原始的)代码库仍在维护中 如果只是将代码复制过来,你将无法获得后续对原有代码的改进。因此,不要直接复制代码,而是将需要的功能引入进来(即将另一个代码库添加到你的classpath中)。软件复用是最佳软件工程实践。因为软件复用可以极大地提高软件开发的效率。
个中道理显而易见。
即使没有软件工程方面的知识,仅凭个人的经验和意识,软件开发人员也愿意实施软件复用。谁不想用最短的时间完成开发任务呢?
不过,没有实施GJB5000三级、没有建立自己的复用构件库的组织中的软件复用更多的只是源代码复用,即在历史软件的源代码上按照新的软件需求进行适应性修改。
这种源码级的复用确实提高了软件开发效率,在组织尚不具备构件复用的情况下,它不失为一种有效的开发方法。
但是,组织在应用这种源码复用的同时,也应认识到它存在的风险。
被复用代码存在缺陷的风险
软件复用的一个前提是被复用的代码应当被验证是正确的,如果复用的代码本身存在未被发现的缺陷,那么对于新的软件来说复用这样的代码将会是一场灾难,得不偿失。
被复用代码存在“坏味道”
如果被复用的代码不够优化,存在很多“坏味道”(诸如代码单元过长,参数过多,变量/函数命名不符合要求……),这样的代码复用过来,也会把“坏味道”带给新的软件,使得新的代码也变得不易理解、不易测试。
增加维护成本的风险
如果代码被复用过来后,发现这部分复用的代码存在缺陷,或者需要进行重构来优化,那么你同时就要对原软件也要进行维护;或者被复用的软件本身就处于维护过程中,那同时也要对新软件进行维护。这会给软件维护增加很大的成本。
所以,如果组织要使用源代码复用,那么就要做好原软件代码的验证和确认,尽量避免上述的三种风险。
当然,软件复用最好采用构件复用。
这正是:
源码复用效率高,存在风险也不少
验证确认好源码,降低风险质量高
参考书目:代码不朽:编写可维护软件的十大要则,作者:(荷兰)约斯特·维瑟,译者:张若飞,出版社:电子工业出版社