多版本开发的管理
工作中遇到同一个项目,多个版本的开发。比如base版本已经发布,但是还在更新迭代中。pro版的新需求已经需要开发了。base版本迭代的功能,有些功能也需要加到pro版本中。
这样的现象遇到了好几次,两个版本管理起来,比较麻烦。
只管理一份代码
在C++中,使用条件编译,区分base版和pro版。
#if defined(PRO)
// do_pro();
#elif defined(BASE)
// do_base();
#endif
使用插件式开发
也就是模块使用插件开发,比如两个不同的dll,base.dll和pro.dll,然后在代码中手动加载dll,提供相同的接口。
使用子类
base
类和pro
类,继承同一个父类,利用语言中的多态。
上面几种,无论使用哪一种,都需要,在设计时耦合度较低,如果代码混乱在一起,这种方式就不合适了。有点是减少重复的工作量。
管理两个分支
创建两个分支base和pro,分别管理。这种管理方式看似简单粗暴,其实在实践中,是最有效的。简洁明了。缺点是相同的代码,需要合并,尤其是耦合度较高时,使用git
合并,并不是很方便。目前这种方式,是我实践中,最合适的。