首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >什么是第三方代码?

什么是第三方代码?
EN

Software Engineering用户
提问于 2012-11-06 14:35:25
回答 5查看 10.5K关注 0票数 15

受到这个问题的启发,使用第三方库-总是使用包装器?,我想知道人们实际上认为什么是第三方库。

PHP示例:

如果我使用Zend框架构建应用程序,是否应该将Zend框架库视为第三方代码?

来自C#的示例:

如果我正在构建桌面应用程序,是否应该将所有.Net类视为第三方代码?

来自Java的示例:

我是否应该将JDK中的所有库视为第三方库?

有些人说,如果一个库是稳定的,并且不会经常改变,那么就不需要包装它。然而,我无法理解如何测试依赖于第三方代码的类,而不包装它。

EN

回答 5

Software Engineering用户

回答已采纳

发布于 2012-11-06 14:58:18

您的示例都是第三方代码,但您不应该为它们编写包装器。它们是大型的、成熟的项目,具有稳定和规划良好的API。

包装器的需要是在代码和库之间提供一个抽象层。只有当您发现库没有为您所做的特定事情提供良好的API时,您才需要这种抽象。然后,您可以创建包装器来简化自己的代码,并隐藏API调用是尴尬的事实。

如果使用依赖项注入,代码将是可测试的。在单元测试中,您可以使用模拟对象交换库依赖项,从而使您能够隔离测试中的代码。

票数 18
EN

Software Engineering用户

发布于 2012-11-06 15:54:17

包装库的目标是打破您自己的代码对该库的依赖,以便启用:

  • 单元测试-您必须能够测试您的代码。如果库不允许您模拟测试所需的类或强制响应,则需要包装该库。这是一个明显的问题,可能不是你想知道的情况。
  • 更改实现-作为代码作者,您需要了解可能发生的更改,以及这些更改的准备成本与它们的可能性相比。你能从.NET切换到JVM吗?这很困难,也不太可能;但是,您很可能在将来更改UI技术或XML引擎。

隔离第三方库和框架只是隔离更改的一个子集。

票数 6
EN

Software Engineering用户

发布于 2012-11-06 14:57:00

我不会把标准库的成员当作第三方代码--它们毕竟是标准的,可以合理地假定在您正在使用的平台上是可用的和实用的。

至于像Zend这样的东西,我认为如果你采用不同的框架,你可能需要重写这个程序。老实说,我不会包装太多的东西,这不是一个严重的外部配置依赖,或者如果我不是真正的计划,使该部分可互换。

票数 2
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/174803

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档