发文章
发文工具
撰写
网文摘手
文档
视频
思维导图
随笔
相册
原创同步助手
其他工具
图片转文字
文件清理
AI助手
留言交流
前言
在错误处理的章节(依调用者需要定义异常类这一小节),我们曾经见到过对第三方 API 异常进行封装,定义出适合自己系统的异常类这种操作。其实不光是异常,针对三方代码的其他特性进行类似的适配处理也是维持系统边界整洁的重要一环。
三方代码可能带来的问题
三方程序包和框架提供者追求普适性,以便让它提供的功能能在尽量多的环境中工作,吸引广泛的用户。但是使用者则想要集中满足特定需求的接口。带来的问题就是三方程序中有若干功能是使用者系统里面不想要或者需要加以限制的,如果使用者不加控制地引入三方程序,将会给系统带来很大的不稳定性。
例子
引出:
书中作者给出了 Java 中 Map 接口的例子。Map 本身拥有很多接口来让用户对数据进行操作,但是删除数据是需要谨慎处理的事情,假设在系统中,我们不加限制地使用 Map 来传递重要数据,哪天其 Clear() 函数被调用了,那么系统可能就会出现极大不确定性风险。
解决:
最简单的方式就是根据系统自身的需求,对 Map 进行封装,开放我们自定义的接口,接口实现才是真正的对 Map 进行的操作。当然了,作者并不建议如此做法,最好的做法就是避免传递 Map ,如果把 Map 换做更三方的东西,换句话说就是让三方的东西更少地侵入到我们的系统代码中
学习性测试
在利用三方代码时,该从何入手?
建议:
作者的建议是先测试,而且是学习性测试,即在把三方代码真正搬到我们的系统之前,应该先测试其接口功能。以便更加了解三方代码的特性,并且检查三方代码是否能符合系统实际需求。并且测试的方式是学习性测试,通过测试的方法来学习三方代码的使用。
开发中你或多或少会面对未知的代码编程。尤其是在团队合作项目中,你开发的模块也许会依赖别人开发的模块,但当别人的模块还没开发出来之前,你需要的不是等待,不应该受其阻碍。
你需要做什么?
来自: 头号码甲 > 《待分类》
0条评论
发表
请遵守用户 评论公约
重温设计模式系列(三)面向对象设计原则
重温设计模式系列(三)面向对象设计原则。用于隔离或组合两个类之间的交互,避免两个或多个事物之间直接耦合,比如用户类和商品类,两...
Python程序员VSPython码农:我们不一样!
Python程序员VSPython码农:我们不一样!要避免Python程序员变成Python码农,必须对Python编码保持热情,并持续学习;Python初学者有什...
零Bug的代码是怎么炼成的?
零Bug的代码是怎么炼成的?5考虑代码修改对别的模块的影响 很少代码是完全独立的,总是或多或少和别人扯上关系, 修改这样的代码就要小心了, 这也是个主要的Bug发生地。一定要考虑代码的...
网上报销和ORACLE ERP系统的接口实现解决方案
接口的实现过程主要包括四个阶段的数据处理,网上报销系统中的数据导出前处理,数据在网上报销系统和Oracle ERP系统间的传递,Oracle ERP系统中的校验和实际导入处理和Oracle ERP系统和网上报销系统数...
纯干货:软件测试理论和APP测试实践案例
纯干货:软件测试理论和APP测试实践案例。其中测试过程按4个步骤进行,即单元测试、集成测试、系统及发版测试和回归测试。测试用例是一...
嵌入式计算系统调测方法与技术综述
现场测试和试验室测试的最大区别就是测试设备难以安装和连接:线路板封闭在机箱中,测试信号线很难引入,即使设备外壳上留有测试插座,...
基于.Net平台应用系统设计方法
发现类的主要途径是通过从需求规格说明书中抽取关键性的名词和短语,通过寻找应用领域中物理对象、概念实体和外部接口的名词和更大范畴的对象来建立候选类表,对象的属性和候选的超类也在此时标识出来...
模块化还是微服务
模块化还是微服务。在 Java 中,有几个可以帮助应用模块化的系统。模块现在是 Java 语言及平台的一部分,作为一级结构,Java 模块可以表...
基于边界扫描的电路板测试系统
基于边界扫描的电路板测试系统。在线功能测试即电路板不 脱离设备,通过采集电路板内边界扫描单元及电路板接口的数据判断电路板工作状态...
微信扫码,在手机上查看选中内容