一、开源软件选型评估
针对产品关注的关键需求和客户需求,建议产品参考一下评估项进行筛选(可自定义)
(1) 是否满足产品需求(如功能实现、平台移植、性能表现优异、软件与现有软件接口一致等)
(2) 是否有配套足够的高质量文档支撑(对应社区、开发指南)
(3) 是否开源软件社区活跃度高
(4) 是否符合产品技术路线需求
(5) 是否满足公司安全基线和客户安全基线
(6) 是否不含业界公开的高危漏洞
等等
开源软件的引入可能存在法律风险,必要时需要公司法务团队参与评估
二、开源软件使用和维护
(1) Owner关注开源社区的BUG解决及版本更新,针对更新,下载码并通过工具进行对比,针对对比差异点进行源码分析,分析要点:
-分析接口变更情况,是否具备向前兼容性,对业务代码的影响
-分析开源代码使用的第三方包,查看包之间的依赖关系,并分析是否与当前版本中依赖的三方包存在冲突。比如开源软件依赖的三方包与我们依赖的三方包同源,但版本不一致,有可能造成代码编译或运行失败等
-当分析出差异化后,然后进行测试验证,确保能够正常工作后再合入版本
(2) 在版本设计过程中考虑后期开源版本的更新,对使用的开源软件功能进行接口封装,确保业务代码不被开源