一、基础框架——开发相关经验和解决方案
1、定原则,公司内的开源框架,需要遵循下列设计原则:
开源框架要制定版本发布计划,每个版本要有详细的更新内容和升级手册等,对老版本的兼容性要经过严格的测试和验证,每次版本要建分支,发布时要打tag,修改的代码,都要按修改内容提commit注释,如果是bug修复,要给出bug的出处和描述,每次发布新版本,要列出这个版本内所有的commit内容、方便使用者查阅。
尽量保证向前兼容,如果有不兼容处,一定要特别说明,包括原因和升级方法。
尽量保证平滑升级,旧版本的用户,能以最简单的方式完成升级(比较改个版本号就完成升级)。
每次发布,都要通知到各个使用方;如果是重要的bug修复、希望使用方尽快升级,应该发出重要升级通知,务必联系各个使用方,和领导沟通,明确升级的截止时间。
列出基础框架的所有使用方,及其使用的版本,随时掌握使用者的情况,如果发现某个使用方版本严重 落后于最新版本,则提醒升级。(最好是通过自动化的方式收集,例如每次启动时通过HTTP上报自身信息,或者通过Metrics监控系统统计)
基于开源框架的二次开发,需要合并开源作者的更新内容,在发布文档中,也需要详细说明更新内容以及列出每个commit。
2、完善配套设施和制度
要维护好 使用文档、开发者文档、发布和升级文档,而且这些文档,要能体现版本和修改记录。
需要各个部门或团队的领导支持,必要时能发起重要通知,敦促各个使用方升级。
使用好 代码和issue 平台,大家可以提交bug\enhancement\feature\question,在上面反馈问题、贡献代码。
建立使用者的多人在线交流群,使用者相互交流经验,新手也可以在这里向大家提问。
完善基础框架自身的测试流程,建议每次发布版本,附带一个测试报告,报告中列出测试用例和测试覆盖率等指标。
二、基础框架——维护问题总结
可能遇到的问题如下:
基础框架更新后,其他使用方 无法及时更新。比如基础框架改了几个BUG,使用方 很可能无法及时更新。
当使用方的基础开发框架版本,大幅落后于最新版本之后,可能很难更新到最新版本(改动很大,兼容性也需要测试)。
当有很多应用使用的很旧版本的开发框架时,开发框架要考虑到老版本的兼容性,会影响到开发框架的架构和重构。
如果基础开发框架是基于开源框架二次开发的,需要经常和开源框架保持同步更新升级,否则会落后于开源版本、错过很多重要更新。
三、基础框架——推广实施经验
1、易学易用的功能,完善的培训
要让开发用着爽,要让他们学会用。
每个开发组,是否有一个强力开发Leader?如果有,先教会这个Leader怎么去用,做一个Leader培训班以及培训群。
如果有些组,没有一个开发Leader,或者没有一个强力的Leader,这可能比较麻烦,可以为委派一个临时技术Leader协助与管理他们。必须要会用基础开发框架,代码必须要通过基本审查。
2、委派专人进行定期代码和设计审查
一方面,通过代码库,委派专人自己去看,每个月定期看一次(实施初期可以频繁一些,后面大家编程技能提高之后,可以降低到半年一次),发现问题再找到项目组开发Leader去排期整改。
另一方面,委派专人,深入到项目组,参与 或 组织代码走查,及时发现并敦促整改问题。
另外,新项目,开发过程中,要派专人持续跟进,直到新项目整体框架和功能保持稳定才退出。
3、框架升级
简单升级,发布一个升级文档和通知。复杂的升级,项目组若需要帮助,可派专人辅导。
升级一定要及时,委派专人 跟进与复查!对长期没有升级的项目,予以记录和警告。