精华内容
下载资源
问答
  • 系统接口设计

    万次阅读 2015-06-23 12:31:22
    最近两年一直在和银行、公安、保险、民政等第三方单位之间做接口,写的接口文档不下30份...但仍有很多技术层面的心得,恰巧上周参与温昱老师的一个性能设计的外训,里面老师讲到了接口设计,正好回来一起整理一下接口设

            最近两年一直在和银行、公安、保险、民政等第三方单位之间做接口,写的接口文档不下30份,最初的接口文档漏洞百出,改了又改,丢了不少人,也被批评、埋怨,指责了很多次,久而久之,明白了一个最重要的道理,协作决定接口。双方谈接口时,技术不是最重要的,要兼顾双方技术,成本,工期等等很多因素。但仍有很多技术层面的心得,恰巧上周参与温昱老师的一个性能设计的外训,里面老师讲到了接口设计,正好回来一起整理一下接口设计的经验。主要从3个方面总结一下系统间接口设计:接口定义、接口实现、其他一些注意事项。


    一、接口定义

            接口是双方(可能是系统、模块、服务等)之间数据交互的一个标准,定制接口方要想让对方没有疑问,接口考虑到的因素一定要全面,一般情况下,主要考虑3个步骤:

            

            交互机制:如同步请求/应答方式、异步请求/应答方式、会话方式、广播通知方式、事件订阅方式、可靠消息传输方式、文件传输等。

            接口技术:WebService、Scoket、交易中间件、消息中间件、文件方式、共享数据库等。

            接口格式:这个就根据所选技术,实际情况来定义即可。

     

            拿我们(具体行业不便透露)和银行的接口为例(和每个地区银行都不同,以1个为例)

            交互机制:异步请求/应答方式,我们有查控请求时调用银行接口,将请求信息发过去,银行查控完毕后,调用我们接口,将查控结果反馈给我们。调用失败后,会有重试,重试每30分钟一次。

            接口技术:WebService接口,Java开发,xml格式报文,数据采用3DES加密。

            接口定义:具体字段说明,xml格式等略。

            有了这些说明,在对方拿到接口文档后,不出意外(比如对方完全不懂技术,无法看懂)对方都能看懂接口,也能描述清楚,如果回答不上这些问题,恐怕就是有漏洞了。




            这个接口还有很多不完善的,很多地方有更好的选择,还是前面说的,协作决定接口,合适即可。


    二、接口实现

            接口定义完成了,开发过程中要考虑的就是非功能层面的了,比如各种约束,像我们这边数据量、并发都较大,需要考虑下面几个情况:


            1.高性能,支持高并发,大容量,速度快;

            2.健壮性,防止因大量数据,或大量占用资源导致系统不可用;

            3.可监控,随时看到接口的运行情况,便于及时发现错误及排除故障;

            4.可扩展,两个方面,一是可支持扩展新功能,二是并发增加时支持扩展新硬件。


            考虑这些可能会引起接口的改变,比如我们考虑高性能,速度快时,由于我们同时对应30多家银行,每个银行每天大约1000人次查询,单个调用需要3w次,所以改成了支持批量,单次调用最多100人,发送和接收大约5s左右。同时由原来串行改成了并发调用,使用了一个线程池(线程不能太多,可能造成银行接口并发太大导致崩溃)。

            有时主动发起的接口可能不如定时轮询的接口,比如上面我们的接口是主动发起,需要做连接池限制并发,免得并发多了给银行造成问题,后来再其他省改成了完全由我们做服务端,银行定时调用获取要查询的请求信息,虽然有几分钟延迟(依据银行轮询时间决定),但是开发简单不少,考虑的情况也少了不少,接口速度也快了不少。

           考虑可监控时,有很多开源监控组件,比如我们用的JavaMelody,可以监控某个类执行次数。

           考虑可扩展,功能可扩展,比如我们用XML、JSON格式报文,或者其他自定义格式,有一定的规则,千万别用具体含义的参数,一旦增删就会影响接口。


    三、注意事项

            1.支持批量,这个一定要有,主要是为了性能考虑,后续数据量大了,再修改支持批量就会导致整个接口修改,所以前期一定要支持批量。

            2.支持部分拆包,比如报文中最好解析报文头就能知道具体业务或能找到处理的逻辑,避免全部解析后才能知道如何处理,比如我们和一个公司做接口(他们制定接口),有10多个实现类,他们文件加密的,必须整体解密后才能读取到用哪个实现类处理,文件大约200M,每次处理5s左右,有3s都在选择用哪个实现类,并发时及其慢,后来改成了前面32个字节标示哪个实现类,后来处理每个包2s左右,性能提升40%多。

            3.安全性,接口的安全控制在逻辑上包括:安全评估、访问控制、入侵检测、口令认证、安全审计、防恶意代码、加密等内容。这个根据实际情况,有些单位要求高,有些无所谓,不涉及互联网的项目,加密为了防止管理员直接看到等,要求不高的Base64就行,或者3DES,高点的通道认证等,再高就根据具体情况来了。

            4.实体文件,FTP等方式传实体文件比较容易,我们用WebService较多,文件较小的一般采用转换成文本(Base64),当文本传输,好处是简单,缺点一是慢,二是文件大了或并发大了,内存可能不够;文件大的,我们一般放到FTP上,然后传给对方FTP上的路径,这个配置比较麻烦。

            5.日志,这个最最最重要,接口的每个环节都要保留详细的日志,可以设置优先级,上线后单独打印到某个文件或者只保留重要的,因为现场出错后只能根据日志分析,很多情况下对方的接口问题对方不承认时,或者出错后对方把责任扔给咱们时,你会发现最可靠的就是日志。

            6.监控,这个也太重要的,但是我们经常忽略,很多时候双方联调测试都没问题,经常一上线就出问题,不外乎数据量大了,并发大了等,此时有一个监控页面,你顿时就会信心倍增。

            7.接口文档编写,一般公司都有自己的接口文档模板,当然我们也有,大部分模板都主要定义个一些步骤,如背景、功能描述、交互机制、安全性……我这整理一下我和各个单位讨论时,碰到的一些文件描述不清楚问题,主要是一些格式定义,字段说明等

           (1)字段类型,一定要统一标准,比如日期、时间格式,不足补0等,如2015-01-0112:01:02。

           (2)实体文件,是Base64之后传递字符串,还是其他规则,或者传递一个FTP上的地址,如果是地址,结束时是否带有斜杠“/”等。

           (3)数值,精确小数后几位,小数点前后位数不足时是否补0等。

           (4)异常,最好有错误码,或者其他信息,以及错误后处理机制等。

           (5)必填项如何校验,代码值是否需要校验等。

           (6)最重要的一点,写完了一定要给别人看看,看看别人是否可以看懂,用词准确,是否有遗漏等。

     

            上面只是一些大体的总结,适合一些web项目等,很多其他模式下的接口都不适用,各个点也都没有深入的研究,后续研究后再加进入吧。

     

    展开全文
  • 系统连接相机的接口用的是Camera Link接口,通过Camera Link接口把实时图像高速传输到FPGA图像采集卡中进行数据实时处理,并通过PCI接口实现采集卡和计算机之间的通信。本文主要研究数据采集系统 Cam-era Link接口...

    高速数据采集系统可对相机采集得到的实时图像进行传输、实时处理,同时实现视频采集卡和计算机之间的通信。系统连接相机的接口用的是Camera Link接口,通过Camera Link接口把实时图像高速传输到FPGA图像采集卡中进行数据实时处理,并通过PCI接口实现采集卡和计算机之间的通信。本文主要研究数据采集系统 Cam-era Link接口技术。

      Camera Link是专门为数字摄像机的数据传输提出的接口标准,是2000年10月由一些摄像头供应商和图像采集公司联合推出的。Camera Link标准简化了计算机和摄像头之间的连接。本设计选用Dalsa公司的DS-21-02M30相机,该相机支持Camera Link接口。相机数据通过Camera Link接口传输到一块Altera公司的FPGAStratixII中进行处理。在FPGA中进行数据的高速缓存,可以在FPGA中设计各种图像处理程序对图像进行实时处理。

      1 DS-21-02M30相机简介

      DS-21-02M30相机可提供高灵敏度的8/10位图像。为了同时获得卓越的分辨率和灰度级,DS-21-02M30相机图像分辨率为1 600×1 200,像素尺寸为7.4 μm×7.4 μm,像素数据输出时钟为40 MHz,最高帧频可达60帧/s。通过设定像素数据格式命令,可以设定像素数据为8位、10位。功耗低于15 W,供电电源电压为12~25 V。

      通过异步串口向DS-21-02M30相机发送ASCII码控制命令和诊断命令,可以控制相机输出图像的增益、补偿、帧频、曝光时间、曝光模式和测试图像的输出,还可以对相机进行诊断。串口协议:1位开始位,8位数据位,无奇偶校验位,1位停止位;通信波特率为9 600 bps(相机默认),通过设定波特率命令可将其设定为19 200 bps、57 600 bps和115 200 bps。

      DS-21-02M30相机共有4种曝光模式,可以通过设定曝光模式命令来为相机选择合适的曝光模式。

      模式2:内部触发方式(相机的默认曝光模式)。帧频和曝光时间可用相应的命令控制。

      模式3:最大曝光时间的外部触发方式。

      模式4:外部触发方式。帧频和曝光时间都由外部触发信号控制,即外部触发信号的高电平阶段为曝光时间,外部触发信号的频率为帧频。

      模式6:外部触发方式控制帧频,曝光时间可用相应内部命令控制。

      DS-21-02M30相机的命令以ASCII码的形式发

      送。向相机发送命令时,以回车符作为结束。相机上电后,相机背后的指示灯闪烁,同时通过串口发送“CameraInitialization in process,Please Wait…OK>”字符串。当收到“OK>”字符串时,表明相机要开始传送图像数据,相机背后的指示灯不再闪烁。当相机收到有效的命令时,会返回“OK>”字符串作为应答;否则,返回“Error x:Error Massage>”字符串作为应答。其中,x为错误标号,Error Massage表示对错误的具体说明。相机的应答字符串以符号“>”作为结束符。

      2 Camera Link结构与原理

      Camera Link是专门为数字摄像机的数据传输提出的接口标准,专为数字相机制定的一种图像数据、视频数据控制信号及相机控制信号传输的总线接口,数据传输速率最高可达2.38 Gbps。该标准规定了接口模式、相机信号、端口配置、图像数据位配置、连接器引脚定义及连接线、标准接收器芯片组。采用这种标准后,使得数字摄像机的数据接口输出采用更少的线数,连接电缆更容易制造,更具有通用性,而且数据的传输距离比普通传输方式更远。其最主要的特点是采用了LVDS(Low VoltageDifferential Signaling,低压差分信号)技术,使摄像机的数据传输速率大大提高。

      在Careera Link标准出现之前,业界有一些标准(如较流行的IEEE-1394:接口)作为一种数据传输的技术标准。IEEE-1394被应用到众多的领域,数字相机、摄像机等数字成像领域也有很广泛的应用。IEEE-1394接口具有廉价,速度快,支持热拔插,数据传输速率可扩展,标准开放等特点。但随着数字图像采集速度的提高、数据量的增大,原有的标准已无法满足需求。为了简化数据的连接,实现高速、高精度、灵活、简单的连接,在 NationalSemiconductor公司开发的Channel Link总线技术基础上,由多家相机制造商共同制定推出了Camera Link标准。基于Camera Link的数字相机的采集速度和数据量均好于基于IEEE-1394标准。

      Camera Link是一种基于物理层的LVDS的平面显示解决方案。图1为Camera Link总线发送端与接收端的连接框图,也是该总线的基本模式。总线发送端,将28位并行数据转换为4对LVDS串行差分数据传送出去,还有一对LVDS 串行差分数据线用来传输图像数据输出同步时钟;而总线接收端,将串行差分数据转换成28位并行数据,同时转换出同步时钟。这样不但减少了传输线的使用量,而且由于采用串行差分传输方式,还减少了传输过程中的电磁干扰。


      3 高速数据采集卡Camera Link接口设计

      高速数据采集系统的基本框图如图2所示。FPGA给相机发出控制信号,相机中的数据通过Careera Link接口传送到图像采集卡;数据由FPGA读入,缓存在SDRAM中。可以在FPGA中根据用户的需求实现高速的图像处理,根据图像处理的结果可以由 FPGA完成用户所需的控制。图像采集卡通过PCI接口和计算机相连接,通过计算机可以配置图像采集卡和相机,计算机也可以从采集卡中获得图像处理数据。接下来详细研究FPGA和相机间的Camera Link接口技术。

      3.1 DS-21-02M30相机的Camera Link接口

      Camela Link总线标准规定:在完整模式下,最多可以使用8个端口(Port A~Port H)传输数据,每个端口为8位数据。DS-21-02M30相机使用Port A~Port C端口,用的是基本模式(Base)。相机后端有一个MDR26连接口,分别对应A、B、C三个端口各8位数据,加上FVAL、LVAL、DVAL和SP 四位数据控制信号,共28位并行数据位。

      3.2 Camera Link接口的硬件设计

      Camera Link的硬件连接框图如图3所示。硬件电路包括3部分:相机通过MDR26连接图像采集卡;CameraLink接口的LVDS信号和CMOS信号转换电路;FPGA接收相机数据和发送控制部分。


      为了对相机进行外部触发方式控制以及向相机发送命令,用四通道CMOS信号转换为LVDS差分信号的芯,片。DS90LV047作为图像采集卡,向相机发送外同步触发信号和转换命令。由于DS-21-02M30相机只用到CC1,FPGA构成的图像采集卡,对相机的控制通过CC1和SerTC信号实现。为了接收相机向图像处理系统发送的应答字符串,选用DS90LV048芯片作为图像处理系统接收器。 DS90LV048芯片是四通道LVDS差分信号转换为CMOS信号的驱动器。

    展开全文
  • 软件接口设计

    万次阅读 2016-11-26 17:27:47
    软件接口设计 《构建可扩展的Web站点》主要介绍了Web应用程序的概念、体系结构、硬件需求、开发环境的原则及国际化、本地化和Unicode等基本内容,本文是软件接口设计。 AD:51CTO 网+ 第十二期沙龙:大话数据之...

    软件接口设计


    读后记:接口--->对象之间建立连接,指的是进行连接而设计的指定方法;

                  java中的interface是为了更好的完成这种连接【多态连接】而定义的一种语法支持;
             相对于抽象类,抽象类一般在多重继承结构下,抽象类去实现接口并具体实现部分方法..


    《构建可扩展的Web站点》主要介绍了Web应用程序的概念、体系结构、硬件需求、开发环境的原则及国际化、本地化和Unicode等基本内容,本文是软件接口设计。

    AD:51CTO 网+ 第十二期沙龙:大话数据之美_如何用数据驱动用户体验

    软件接口设计
    Software Interface Design

    将软件分层意味着我们需要完成额外的工作——设计层次之间的接口。我们原来拥有的是一大块代码,现在则会有三处不同的代码块(业务逻辑、交互逻辑和标记),它们当中的每一块都需要和下一块交流。但是仔细考虑一下这样做是否的确造成了额外的工作?答案十有八九是否定的:分析一下我们现在仅有的那一层代码,会发现这些附加劳动早就完成了,只有逻辑层和标记层之间的交流还不是很明确,和其他剩余代码混在了一起。

    为什么要花心思在分层上呢?不管怎么说,在某种程度上,原来的那种所有代码都粘在一起的程序风格还是可以工作的。然而,有几个决定性的因素,它们将我们引向分层实现,而且随着系统规模逐步扩大,这些因素会一个比一个地变得更为重要。层次分离,让不同的工程师或工程师小组可以同时工作在系统的不同层次,而不用担心无意中影响了他人的工作。除了工作对象变成了不同的物理文件之外,这些小组也不再需要对其他层次有深入了解。标记层的工作人员不必理解数据是如何从数据存储中取出,并且传给模板系统的,他们只需要知道一旦这些数据交付给了他们,应该如何去使用这些数据。

    类似的,工作重点在交互层逻辑的工程师也不需要理解在取得一条数据的背后,系统逻辑层是如何运作的,而只需要知道用相应的函数调用就可以了。在这些例子中,工程师们惟一需要关注的元素就是自己所在层次的内容和所在层次与上层和下层的接口。那么,我们一直谈论的接口到底是什么呢?要知道当我们谈的是软件层次之间的接口时,所指的并不是Java中的面向对象概念上的接口。我们所说的接口,描述的是允许一个层次和另一个层次之间交换请求和响应的一组特性。对数据层与系统逻辑层而言,接口包括对原始数据的存储和抽取。对交互逻辑层与系统逻辑层,接口包括对特定类型数据源的修改。接口仅仅定义一个层次如何向另一个层次发出请求,要求它执行一个任务,而不管这个任务如何执行。

    我们的应用程序中最为顶端的层次是比较不一样的,因为标记层与表现层之间的接口已经由我们所采用的技术定义好了。标记层到样式表的链接使用的是链接标记符或者@import语句,通过它们获得class和id属性,以及样式表中的命名的标记符序列,根据这些可以应用特定的样式规则。为了保持良好的层次分离,在标记层中应尽量避免直接使用样式属性。本书并不包含前端工程的内容,但前端分层的原因和后端分层的原因是相同的——分离样式层与标记层,才能让不同团队可以独立地工作于项目的不同方面,并且开发人员可以进行层次内部修改,而不用担心影响相邻层次。

    交互逻辑层和标记层进行交流的典型方式是模板系统。在PHP和Smarty参考实现中,Smarty为PHP交互逻辑层提供若干功能。我们可以调用 Smarty的方法来将数据导出到模板(继而用于输出),也可以调用Smarty的方法来提供在模板内执行的展现函数,甚至还可以自己直接渲染模板。在某些情况下,我们需要的并不是直接得到模板的输出,然后将输出发送给终端用户。比如在发送电子邮件的时候,我们可以在模板系统中为它创建一个模板,导出所需要的数据和功能,把这个模板渲染到交互逻辑层的一个变量中,然后发送这封邮件。采用这种做法时,要注意到数据与控制不仅是单向流动的,控制在所有层次之间都可以双向传递。

    两个逻辑层之间的接口,根据具体实现,很可能是最容易理解的,也是最难以设计的。如果两个层次使用的是同一种语言,接口可能只是一组函数。这时,接口的设计包括决定命名方案(用于函数命名)、调用方案(用于加载正确的库,以使函数可用),以及数据方案(用于将数据向前或向后传输)。所有这些方案都算在系统逻辑层逻辑模型的概要设计中。我喜欢将可能的设计选择画成一个连续的光谱图,称之为网络应用犯傻程度:

    OGF <---------- 心智健全----------> 面向对象程序设计

    这个光谱往左是单个的巨型函数,往右则接近面向对象程序设计。老式的、单一的Perl系统在光谱中非常靠左,而Zope和Plone的位置在右边。更为有趣的一些模型则沿光谱分布,其中MVC群体集中在中心三分之一处。像Struts和Rails这一类的框架,则分布在右侧靠近Zope的地方(这提醒了你接下来会发生什么)。Flickr在中间稍偏左,它采用类似MVC的方式,但没有使用框架,随着时间的推移和系统的越来越复杂,它也逐渐向右偏移。

    你选择定位在光谱上的哪一个位置进行工作,那完全是个人偏好问题。往右走,就以灵活性为代价,获得可维护性。往左走,就丧失可维护性,获得灵活性。偏离中心越远,优化系统就会越困难,但系统架构就会越简单。当前趋势是明确地远离左侧,而中右侧的框架越来越受到欢迎。但始终要牢记,你往一个方向移动,并获得某种好处的同时,也会失去一些别的东西。

    堆栈最底部的层次总有定义比较完美的接口,因为它们物理上是分离的——你总不会想用PHP来实现自己的数据库吧?所以这一块的接口定义和层次分离总是以抽象层次的形式发生在应用程序代码内部。业务逻辑层没有必要知道物理上如何连接到数据库集群,但是建立连接的代码需要知道如何连接。分离的数据库与存储层从系统逻辑层获取指令,连接到数据存储,执行指令并返回结果。例如,业务逻辑层可能知道它需要执行一些SQL语句,并知道需要在哪个集群上执行这些语句,它就可以进行如下调用:

    $result = db_query('my_cluster', 'SELECT * FROM Frobs;')

    接下来就是存储层的责任了,它的代码要连接到正确的服务器,执行命令并返回结果。执行查询的服务器可能发生变化(交换硬件时),可能被复制(也许用于冗余故障转移),可能被记入日志并进行基准测试(参阅第8章中的MySQL小节),或者执行任何我们决定的操作。这个例子中的接口是db_query( )函数和它的伙伴们。对于文件存储层而言,接口中可能包含store_file( )函数,给它传入文件名后,接着就由它来表演魔术了。这个魔术本身怎样和系统逻辑层无关,我们只要执行了需要的调用,就能得到需要的结果。

    接口设计在Web应用程序体系结构中扮演着最主要的角色。接口会随着时间而演变,接口变动时,负责不同层次工作的团队必须得进行协商,但是这些更改应该只牵涉到小部分当前开发的内容。在不会无意中破坏其他部分的情况下,我们能在单个层次内做的越多,生产效率就越高,灵活性也越高。

    展开全文
  • 接口设计

    千次阅读 多人点赞 2011-11-21 14:25:42
    接口设计 什么是接口? 接口是CPU和外设之间的连接设备,用于缓存和转发数据。 为什么需要接口? (1)解决主机CPU和外围设备之间的时序配合和通信联络问题  主机的CPU是高速处理器件,比如8086-1...

    接口设计

    什么是接口?

    接口是CPU和外设之间的连接设备,用于缓存和转发数据。


    为什么需要接口?

    1)解决主机CPU和外围设备之间的时序配合和通信联络问题

             主机的CPU是高速处理器件,比如8086-1的主频为

    展开全文
  • RESTful API接口设计

    千次阅读 2016-12-29 15:10:56
    RESTful API接口设计URL设计URL(Uniform / Universal Resource Locator)既统一资源定位符。数据交换格式可选:XML、JSON,Protobuf XML、JSON大家应该都很熟悉了,这里介绍一下Protobuf。 Protocol buffers are ...
  • 接口设计原则

    千次阅读 2016-04-20 16:51:32
    系统越来越多,越来越复杂,项目开发中不可避免的遇到多个系统间调用,例如A调用B、B调用C 可能遇到以下问题 1、A调用B接口不通、或者B接口响应时间太长、影响体验及吞吐量 2、上游系统压垮下月系统 3、系统越来越...
  • 关于接口设计的一些思考

    千次阅读 2016-07-13 18:33:05
    本文针对我遇到的一些接口设计问题,总结了如下一些经验分享给大家,希望我们能够吸取经验,对外提供最美的一面,即使我们的实现可能很丑,但是用户不关心也看不到,这就是封装的好处,哈哈。 1. 关于接口的粒度...
  • 分布式系统接口幂等性设计

    万次阅读 2017-05-02 18:00:22
    概念幂等性, Idempotence, 这个词来源自数学领域, 百科 上一元运算的幂等性解释如下: > 设 f 为一由 {x} 映射至 {x} 的...幂等性衍生到软件工程中, 它的语义是指: 函数/接口可以使用相同的参数重复执行, 不应该影响
  • 软件架构设计【六】-接口设计

    千次阅读 2011-07-08 10:28:23
    接口设计系统架构师的重要职责,首先明确几个概念1.协作决定接口!2.子系统或者实现决定接口是错误的!给出接口设计的一般步骤如下:
  • 接口测试设计总结

    千次阅读 2018-12-06 22:20:34
    接口测试主要用于检测外部系统与所测系统之间以及内部系统之间的交互点。测试的重点是检查数据交互、传递、和控制管理过程以及系统间的相互依赖关系等。 接口分类 外部接口:用户接口(UI),数据库接口,服务器...
  • 内部接口(供系统内部调用的接口),一般为了尽早的介入测试,所以一般接口开发完成测试人员就可以进行内部接口测试。但一些小公司都是不对内部接口进行测试的,直接在UI层测试即可。但一些大公司可...
  • 微服务之API网关接口设计

    千次阅读 2018-10-28 14:30:22
    微服务之API网关接口设计 API网关,顾名思义,就是外部到内部的一道门,其主要功能: 服务路由:将前段应用的调用请求路由定位并负载均衡到具体的后端微服务实例,对于前端应用看起来就是1个应用提供的服务,...
  • 导读: ... 大家可以关注我个人公众号,所有分享内容,会在公众号第一时间推送,且阅读排版更好。 愿大家的学习,轻松且愉快。 如果大家觉得有用,希望...其中,我们提到:如果其他外部公司要与自己企业内部系统有...
  • 软件接口设计 六大原则

    千次阅读 2016-06-10 17:41:00
    每个项目或产品都有特定的环境因素,不要盲从大师的设计,要根据业务逻辑进行最好的接口设计。   五.迪米特法则 Law of Demeter, LOD。又称最少知识原则(Least Knowledge Principle, LKP)。 通俗...
  • 优秀的API接口设计原则及方法

    万次阅读 2019-05-28 15:30:37
     总之,接口设计是一个细致的工作,设计时也会有很多矛盾,但个人倾向于粗粒度设计方向(即内聚性更高一些),这样不仅给客户端浏览接口方便明确,维护也轻松些,这么做的缺点就是某一接口扩展时不是很灵活,但可以...
  • 提供给外部调用的接口设计原则

    千次阅读 2017-02-13 22:02:28
    1、接口命名规则应做到见名知意 2、不要做大而全的接口,要尽量保持接口的功能单一 好处:这样有利于接口调试、改造升级和维护 3、接口出参应含有接口调用结果信息(code 和 message)字段 4、接口出参应对同类型(单...
  • 概要设计中的接口设计

    万次阅读 2015-12-23 20:22:40
    接口在开发过程中可以快速分离工作内容。 比如调用者在写业务逻辑的时候需要一个功能,可能是数据库访问,或者复杂计算,但是他的工作专注于实现业务逻辑,不想分开精力去做底层实现,那么他只需要先实现一个接口,...
  • 模块的接口设计方法

    千次阅读 2019-06-12 11:11:21
    先讲一个真实故事,某公司的开发包,发给客户,客户拿到开发包上服务器进行软件工程编译,哗哗的满屏幕的警告,编译报错,搞了几个小时,发现开发包中的接口变化了,有些函数命名变化了,有的是参数发生了变化,有的...
  • RPC 框架,或者一部分人习惯称之为服务治理框架,更多的讨论是存在于其技术架构,比如 RPC 的实现原理,RPC 各个分层的意义,具体 RPC 框架的源码分析…但却并没有太多话题和“如何设计 RPC 接口”这样的业务架构...
  • 接口电路的防护设计

    千次阅读 多人点赞 2019-07-01 10:17:17
    接口电路的防护设计就是为了隔离外部危险的信号,防止外部干扰信息进入系统内部核心敏感电路,从而造成内部电路的永久损坏。 二、接口电路的分类:电源接口、网络接口、外壳接口、串行通信接口、并行通信接口、下载...
  • 嵌入式系统设计中常用总线和接口

    千次阅读 2012-08-19 13:22:49
    嵌入式系统设计中常用总线和接口      任何一个微处理器都要与一定数量的部件和外围设备连接,但如果将各部件和每一种外围设备都分别用一组线路与CPU直接连接,那么连线将会错综复杂,甚至难以实现。为了...
  • 操作系统系列(5):操作系统接口

    千次阅读 2019-06-12 14:03:02
    1.什么是接口 首先,我们从日常生活中的一个小例子来了解接口的概念..... 图中的插座就是一个接口,插座的里面连接着线路,插座的外面连接着我们所使用的电器的插头。 有了插座以后,我们只需要把电器的插头...
  • 【用例设计接口用例设计

    千次阅读 2021-01-10 23:20:18
    接口就是内部模块对模块,外部系统对其他服务提供的一种可调用或者连接的能力的标准,所谓的接口是模块与模块之间的一种连接 接口测试 上图为一个典型的接口,一个接口通常是有输入输出的,输入就是我们常见的入参...
  • 接口测试用例设计

    千次阅读 2020-07-21 15:59:26
    2、内部接口:提供给系统内部模块的接口,如我司设计了一个网关模块,只有通过该模块暴露的接口才能访问,不被暴露的接口内部接口。 http接口请求指的是不同方式访问URL来获取数据,如POST、GET,这些好比
  • 以前做硬件设计的适合,感触最深的是一定要面向接口设计。 只有合理定义了接口(功能独立的模块与外界交互的出入口,即为接口)各种参数,并在设计的时候遵循了接口标准,已经设计的模块才能重用,新的设计才能并入...
  • 【RESTful】RESTful API 接口设计规范 | 示例

    万次阅读 多人点赞 2018-10-28 20:57:24
    提高系统的可伸缩性 例如:设计一套API,为多个终端服务。 设计概念和准则 网络上的所有事物都可以被抽象为资源 每一个资源都有唯一的资源标识,对资源的操作不会改变这些标识 所有的操作都是无状态的(本次操作、...
  • 接口测试简介以及接口测试用例设计思路

    万次阅读 多人点赞 2018-09-07 11:50:27
    接口就是内部模块对模块,外部系统对其他服务提供的一种可调用或者连接的能力的标准,就好比usb接口,他是系统向外接提供的一种用于物理数据传输的一个接口,当然仅仅是一个接口是不能进行传输的,我们还的对这个...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 488,937
精华内容 195,574
关键字:

内部系统接口设计