2020年6月,Tidelift对我们的技术人员进行了年度托管开源调查,这些技术人员在工作中使用开源来构建应用程序。超过600人分享了他们如今使用开源软件的方式、障碍因素以及可以使使用更加有效率的工具和策略。
在本文中,我们会分享九项主要发现中的第五项。
开源有时候会被称为免费,就像“免费领养小狗”一样。它也如同免费小狗一样,尽管初始获取成本无限小,但还有很多隐藏成本,包括保持代码的安全性和良好的维护。
我们想了解,哪些耗费时间的开源维护活动在此次调查的组织中最为常见。我们尤其想了解的是,经常听技术人员提起的五种常见维护活动的普遍性。根据我们的结果,这些活动非常普遍:四分之三(74%)的组织每月至少执行其中一项活动一次以上。
组件升级是最常见的维护相关的活动,至少54%的用户至少每月进行一次。几乎同样多的人(49%)至少每月都会对更新组件中的错误或其他问题进行调整。
切换到其他组件的情况少见一些,但在58%调查的公司中,每年至少发生一次。它更少见的一个原因是,它需要更多时间来排除所有应用程序的依赖性所导致的可能问题。案例:在我们2019年的研究中,担心被意料不到的问题所淹没,就是为什么转移至新版本的框架或库成为最常见的开源维护挑战。
关于进行大型版本更改的决定依然是痛苦的,这就是为什么2020年的受访者中国有62%的人说这是团队在使用开源时需面临的挑战。应对这一挑战的最佳方法之一是,多花一点时间对公司使用的组件进行定期的、渐进式的更新。
总的来说,这类开源维护活动在人数为1000人及以下的组织的反馈中更为常见。例如,在这一群体中,53%的团队至少每月至少需要对错误进行一次调整或适应突破性的变化,而在大型组织中,仅有39%的概率。
虽然开源维护问题将永远存在,但我们可以改进应对的方式。这也是我们正在解决的问题一部分:确保开发人员能够最大限度地减少花费在开源维护活动上的时间,从而能够最大限度地将时间用来写出独特的代码,真正地将应用程序变得与众不同。