选择供企业使用的库的标准
-
21-09-2019 - |
题
您选择供企业使用的(开源)库(或框架)的标准是什么?
有些库非常小,可以轻松检查安全缺陷或测试性能。但大多数库都太大,在您开始使用之前无法对其进行审查。
当我想到我选择图书馆时,大多数情况下选择过程只是直觉。当我试图更具体时,我想到的第一个标准是:
- 有多少开发人员正在开发该项目?我的感觉是,更多的开发人员会发现更多的错误和安全问题。此外,故意引入安全问题将变得更加困难。
- 支持有多好?与闭源库相比,我感觉开源的支持通常要好得多,因为您在全球范围内拥有一个社区,只要您需要它们就可以使用。
- 图书馆的分布范围有多大?市场上有这方面的书籍吗?还有哪些其他项目正在使用该库?
你的标准是什么?请随意编辑此注释作为社区 wiki。
解决方案
对我来说,这取决于是否付费。就您而言,您给人的印象是您正在查看开源库。
在这种特定情况下,我将查看测试覆盖率。无论贡献者的数量有多少,如果没有任何我可以自己运行的单元测试(以及增强和测试我的用例,如果它们超出了所提供的单元测试的覆盖范围),那么这对我来说是一个大问题我。
这并不是说我不欣赏在提供库方面已经完成的工作,而是像这样的项目中的代码应该已经具有良好覆盖范围的单元测试,以便获得吸引力。
如果没有具有单元测试的库,那么我会开始在搜索引擎上搜索该库,积极寻找负面回复。对代码有负面感受的人,并且能够根据代码如何让他们失败来具体化这些感受的客观基础,将比那些说“它工作得很好”的大众提供更有价值的反馈。
现在对于一段商业代码来说,情况就完全不同了。那时,我会开始将公司及其支持人员视为一个整体,并以此作为决定(以及您自己的测试,看看该库是否适合您)是否使用该公司的产品。
其他提示
在开源库中,您常常无法获得可靠的支持。在这种情况下,最好的办法是自己修复它,这涉及以下要求。
- 您需要有能力阅读经常混乱且未记录的代码。
- 向正确的人提出正确问题的技术能力——也就是说,这些人不会得到报酬来解决问题,只有当你让问题变得足够简单时,他们才会回答你。
- 然后你需要有能力修复错误并让补丁被接受——因为如果补丁不被接受......
考虑到这一点,我倾向于购买一个商业图书馆或双重许可图书馆,这样我就可以付费聘请一位有能力的工程师(受我付给他公司的钱的激励)来解决我的问题。
不隶属于 StackOverflow