在应用程序中使用其他人编写的代码有很多充分的理由。 这篇文章介绍了一些最佳实践,以优化您的重用体验。
图书馆使用情况恶化
我最近发现,我们用于OpenID的库无法正确处理所有情况。 当我检查更新时,发现不再维护该库。 因此,我找到了一个替代方法,并尝试将新库换入其中,却发现到处都使用了旧库中的类。 这个小故事表明,使用第三方库可能会出错。 本文的其余部分将介绍如何正确使用库。 我将专注于开放源代码项目,但大多数相同的考虑因素也适用于商业图书馆。
1.仅使用主动维护的库
查看诸如最新版本的日期,贡献的开发人员的数量以及赞助组织的信息。
2.仅使用具有适当许可的库
适合您的内容显然取决于您的上下文。 例如,如果要构建和分发商业的,封闭源代码的应用程序,则不应使用仅GPL附带的任何库。
3.限制涉及库的代码量
使用Facade设计模式将库包装在您自己的界面中。 这有几个优点:
- 如果需要,它可以让您轻松地用另一个库替换
- 它记录了您实际使用的库的哪些部分
- 它使您可以添加该库应提供但不提供的功能,并在逻辑上进行添加
4.保持库为最新
许多开发人员都遵循“如果没有破裂就不要修复”的规则。 但是,您可能不会注意到某些损坏的东西。 例如,许多库包含在更高版本中修复的安全漏洞。 在黑客破坏您的应用程序之前,您不会注意到这些问题。
5.为库编写回归测试
如果您按照我的建议定期更新库,那么最好知道它们在新版本中是否损坏了任何内容。 因此,您需要编写一些测试来证明您要从库中使用的功能。 另外,这些测试还可以作为有关如何使用该库的文档。
6.知道您使用什么图书馆
您应该始终能够在任何给定的时刻告诉您正在使用哪些库,以及它们的版本和许可证。 您永远不会知道安全团队中的某人何时会致电给您有关特定版本库中的严重漏洞,或者何时法律部门突然决定禁止使用特定许可证。
7.拥有图书馆所有权
您的应用程序为其用户提供功能。 他们不在乎您是自己构建功能还是使用库。 他们不应该。 当代码中的任何地方出现问题时,您都需要能够解决它。
因此,请考虑如何对计划使用的库执行此操作。 开发组织是否对错误报告做出响应? 您可以访问源吗? 开发组织是否愿意应用您的补丁? 许可证是否允许修改代码以供私人使用?
参考:来自安全软件开发博客的JCG合作伙伴 Remon Sinnema的使用第三方库的七个技巧 。
翻译自: https://www.javacodegeeks.com/2013/01/seven-tips-for-using-third-party-libraries.html