一、基础开发框架维护——问题总结
可能遇到的问题如下:
-
基础框架更新后,其他使用方 无法及时更新。比如基础框架改了几个BUG,使用方很可能无法及时更新。
-
当使用方的基础开发框架版本,大幅落后于最新版本之后,可能很难更新到最新版本(改动很大,兼容性也需要测试)。
-
当有很多应用使用的很旧版本的开发框架时,开发框架要考虑到老版本的兼容性,会影响到开发框架的架构和重构。
-
如果基础开发框架是基于开源框架二次开发的,需要经常和开源框架保持同步更新升级,否则会落后于开源版本、错过很多重要更新。
二、基础开发框架开发——相关经验和解决方案
1、定原则,公司内的开源框架,需要遵循下列设计原则:
-
开源框架要制定版本发布计划,每个版本要有详细的更新内容和升级手册等,对老版本的兼容性要经过严格的测试和验证,每次版本要建分支,发布时要打tag,修改的代码,都要按修改内容提commit注释,如果是bug修复,要给出bug的出处和描述,每次发布新版本,要列出这个版本内所有的commit内容、方便使用者查阅。
-
尽量保证向前兼容,如果有不兼容处,一定要特别说明,包括原因和升级方法。
-
尽量保证平滑升级,旧版本的用户,能以最简单的方式完成升级(比较改个版本号就完成升级)。
-
每次发布,都要通知到各个使用方;如果是重要的bug修复、希望使用方尽快升级,应该发出重要升级通知,务必联系各个使用方,和领导沟通,明确升级的截止时间。
-
列出基础框架的所有使用方,及其使用的版本,随时掌握使用者的情况,如果发现某个使用方版本严重 落后于最新版本,则提醒升级。
-
基于开源框架的二次开发,需要合并开源作者的更新内容,在发布文档中,也需要详细说明更新内容以及列出每个commit。
2、完善配套设施和制度
-
要维护好 使用文档、开发者文档、发布和升级文档,而且这些文档,要能体现版本和修改记录。
-
需要各个部门或团队的领导支持,必要时能发起重要通知,敦促各个使用方升级。
-
使用好 代码和issue 平台,大家可以提交bug\enhancement\feature\question,在上面反馈问题、贡献代码。
-
建立使用者的多人在线交流群,使用者相互交流经验,新手也可以在这里向大家提问。
-
完善基础框架自身的测试流程,建议每次发布版本,附带一个测试报告,报告中列出测试用例和测试覆盖率等指标。
三、开源及持续性
- 在公司内部开源,使用开源的方式管理和迭代项目;
- 尽量寻找到几个核心开发者,引导开发人员成为contributor,保证核心维护者人数大于等于2。
- 框架有行政归属,且高层领导授权、发文,使用框架有理有据,不受任何部门级领导约束。
总结起来,两句话:
1、公司政策引导,源源不断有人使用
2、有归属,且源源不断有多人参与开发和维护
此两者配合,才能形成良性循环,如果领导者和发起人,无法做到这两点,建议及早放弃。