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

被折叠的 条评论
为什么被折叠?



