代码整洁之道第八章-边界

在开发系统过程中,我们总是需要购买第三方或使用开发源代码,有时我们也会依赖公司其他团队的组件或者子系统,不管哪种情况,我们都需要处理好本系统和第三方之间的边界问题,本章主要介绍一些保持软件边界整洁的实践手段和技巧。

1.使用第三方代码

在接口提供者和使用者之间,存在与生俱来的张力,接口提供者追求普适应,而接口使用者追求特定需求的满足,两者之间的矛盾就是导致系统边界的问题根本原因,以Map为例,Map提供了丰富的函数,可以对映射图中的数据进行灵活的操作,但是如果Map的使用场景只想来进行数据的存取,但是在Map的传递过程中,却有一个地方使用了clear方法,导致整个传递链都受到影响,这便产生了边界问题。这个时候,一个有效的办法就是对Map(第三方接口)进行封装

    public class Sensors(){
        private Map sensors = new HashMap<>();
        
        public Sensors getById(String id){
            return (Sensors) sensors.get(id);
        }
    }

这样,在使用Map的地方用Sensors进行替换,就能就表面Map被误用的情况,封装虽然有效果,但是还是建议不要将边界上的接口在系统中传递,尽量把它保留在类或者近亲类中。避免从公共API中返回边界接口,或将边界接口作为参数传递给公共API

使用三方代码库前的测试

使用第三方代码可以帮助我们在更少的时间内构件更丰富的功能,但是在使用和集成第三方代码时,我们需要首先去了解学习如何使用及避免意外情况的产生,这里,我们可以使用一种叫做学习性测试的方式,来检测自己对API的熟悉程度,并且只聚焦于我们想得到的东西。总而言之就是,在正式使用公共API时,我们需要通过测试来确实使用API的方式,及其确定API是否能正常的输出我们预期的结果。

2.使用尚不存在的代码

第二种边界就是将已知和未知分隔开的边界,例如在和其他系统进行同一需求的开发时,我们可能需要其他系统提供一个全新的API集成到我们新的代码中,来完成整个的需求实现,在前期就会存在一个问题,我们需要围绕这个API来开发,但是这个API目前是还未被设计出来的,不确定的。这个时候,我我们需要伪造一个借口,编写一个我们想要的接口,然后围绕这个伪造的接口来进行开发,当真正的API定义出来,我们就可以使用一个适配器,将真正的类和我们伪造的类连接起来。

总结

我们可以通过代码中,少数几处引用第三方边界接口的位置来管理第三方边界,可以向使用Map一样去包装它们,或者使用适配器模式将我们自己的接口转化为第三方提供的接口,这样,我们能获取更大的控制权,减少第三方代码修改时,对我们系统的影响程度

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值