【代码整洁之道】第八章: 边界

第八章 边界

 

在软件开发的过程中,难免会引入第三方程序包或者是开源代码,然后整合进自己的项目代码中。这一章主要从引入第三方程序或者开源代码入手,介绍一些保持软件边界整洁的实践手段和技巧。

 

8.1    使用第三方代码

  接口提供者和使用者之间,存在与生俱来的矛盾。第三方程序包和框架提供者追求普适性,这样就能在多个环境中工作,吸引广泛的用户。而使用者则想要获得满足特定需求的接口。这种矛盾会导致系统边界上出现问题。

类似Map这样的边界接口,应该保留在类或近亲类中(或将Map的使用封装到类中)。避免从公共 API 中返回边界接口,或将边界接口作为参数传递给公共 API 。

 

8.2    浏览和学习边界

  不要在生产代码中试验新东西,应该通过编写测试来遍览和理解第三方代码。 Jim Newkirk 把这叫做学习性测试(learning tests)。

  在学习性测试中,我们如同在应用中一样调用第三方代码。通过试验来检测自己对那个 API 的理解程度。

 

8.3    学习 log4j

采用学习性测试的方式,学习使用如何 log4j 包。

 

8.4    学习性测试的好处不只是免费

  论如何我们都得学习要使用的API ,而编写测试则是获得这些知识的容易途径,而且还不会影响其他工作。学习性测试是一种试验,帮助我们增进对 API 的理解。当第三方程序包发布了新版本,我们可以通过学习性测试,看看程序包的行为有没有改变。

  学习性测试确保第三方程序包按照我们想要的方法工作。第三方代码整合进来,就必须保证与我们的需求兼容。一旦原作者修正缺陷,添加新功能,发布新版本,就可能给我们的系统带来风险。而如果我们之前编写了学习性测试用例,对新发布的第三方程序包进行测试,就能立马发现不兼容的地方。

 

8.5    使用尚不存在的代码

使用尚不存在的代码(接口未定义)时,可以先定义自己需要使用的接口(接口中包括我们需要使用的方法,这也就是我们希望得到的接口),然后编写类调用接口。

等到真实的 API 被定义出来,我们再编写一个adapter类来进行衔接。

当 API 发生变动时,adapter类是唯一需要改动的地方。

 

8.6    整洁的边界

  边界那边的代码可能会经常发生改动。有良好的软件设计,就无需巨大投入和重写就能完成相应的修改。

  边界上的代码需要清晰的分割,对期望的功能编写测试。避免我们的代码过多地了解第三方代码中的特定信息。

通过将封装,或使用 ADAPTER 模式将我们的接口转换为第三方提供的接口。使得代码都能更好地与我们沟通。在边界两边推动内部一致的用法,当第三方代码有改动时,我们需要修改的地方也会更少。

 

参考:https://www.cnblogs.com/zhangmiao14/p/10467739.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值