实施开源策略
尽管拥抱开源带来了许多好处,但也有一些风险需要你加以解决。在将开源软件应用于你的产品和工具链时,你必须小心谨慎,确保遵守许可证要求。如果开源组件导致损害,你也需要自行承担责任,因为你没有供应商可以起诉。此外,如果你引入过多的依赖——无论是直接的还是间接的——其中一个依赖出现问题,也会带来风险。
在第 14 章《确保你的代码安全》中,你将了解到,包中的 11 行代码和一个名称冲突引发了严重的损害,并导致了互联网的大部分部分宕机。 |
因此,你的公司应该制定一个开源策略。这个策略应当定义开发者可以在什么场景下使用哪些类型的开源软件。不同的用途可能会有不同的规则。如果你希望将开源纳入产品中,你将需要某种治理机制来管理相关的风险。
这个策略还应当定义开发者是否允许在工作时间贡献开源,以及相关的条件是什么。
我不会深入讨论策略的具体细节。它很大程度上取决于你计划如何使用开源、以及你如何开发和发布产品。只要确保你的公司有一份开源策略文档——即使它很简短。随着开源的成熟和经验的积累,这份策略将会不断发展。
其中一个建议是,建立一个卓越中心或社区,帮助你制定策略,开发者可以在有疑问时寻求帮助,或者不确定某个开源组件是否合规时,可以向该中心求助。(Ahlawat P.、Boyne J.、Herz D.、Schmieg F. 和 Stephan M.,2021)