专栏首页架构师之路一分钟了解“好”接口的设计与实现

一分钟了解“好”接口的设计与实现

一、好接口的特性

  • 易读
  • 易用,难于误用
  • 功能独立
  • 容易扩展

二、好接口设计的基本原则

  • 只做并做好一件事

函数名自解释

不恰当的函数名,往往是不恰当设计的征兆

  • 如果没做到上一点,就将函数分解

只增加,永远不要删除函数与接口(你永远不知道这个接口被谁在使用)

  • 实现永远不能影响接口

举例:不能假定函数调用者只能使用hash

不能对外暴露实现细节

  • 最小化访问

尽量使用私有化成员

注意信息隐藏

  • 注意文档与注释

接口不是只写给自己(即使只给自己,也应该有说明)

三、好接口实现的基本原则

  • 不要到处拷贝代码
  • 原子性尽量在一个接口内保证
  • Fail-Fast原则

出错尽量早点返回,交给上层处理,不要勉强抢救

  • 避免数据直接访问,而是提供访问方法
  • 注意参数与返回值类型

尽量明确类型

能不用string尽量不用

使用float的地方尽量用double,64bit

  • 参数个数不宜太多

如果过多,就要考虑接口的合理性了

你见过没有注释的接口么?

你见过2000行的接口么?

你见过20个参数的接口么?

你见过什么更奇葩的接口?

本文分享自微信公众号 - 架构师之路(road5858),作者:58沈剑

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2017-12-17

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 如何设计好的接口(Google分享)

    本文源自Google工程师joshua bloch的经验分享,楼主进行了整理和总结。 一、好接口的特性 (1)易学 (2)易用,甚至不需要文档 (3)难于误用 ...

    架构师之路
  • URI设计原则,你设计的API做到了么?

    咱们设计的REST API真的nice么? 优雅型:http://api.exapmle.com/louvre/da-vinci/mona-lisa 卢浮宫...

    架构师之路
  • 跨公网调用的大坑与架构优化方案

    第三方接口挂掉,我们的服务会受影响么? 一、缘起与大坑 很多时候,业务需要跨公网调用一个第三方服务提供的接口,为了避免每个调用方都依赖于第三方服务,往往会抽象一...

    架构师之路
  • Java基础系列(二十四):接口入门

    接口主要用来描述类具有什么功能,而并不给出每个功能的具体实现。一个类可以实现一个或多个接口,并在需要接口的地方,随时使用实现了相应接口的对象。接口主要就是对行为...

    山禾说
  • 如何做API接口测试?

    经常有后端开发会问,后端接口都测试什么?怎么测?简单梳理了一下接口测试的相关内容:

    软测小生
  • 面向对象的7种设计原则(2)-接口隔离原则

    其实通俗来理解就是,不要在一个接口里面放很多的方法,这样会显得这个类很臃肿。接口应该尽量细化,一个接口对应一个功能模块,同时接口里面的方法应该尽可能的少,使接口...

    一觉睡到小时候
  • Java之接口详解

    接口(英文:Interface),就是比“抽象类”还“抽象”的“抽象类”,可以更加规范的对子类进行约束。全面地专业地实现了,规范和具体实现的分离。

    用户5224393
  • Java编程思想精粹(九)-接口

    尽管你的第一想法是创建接口,但对于构建具有属性和未实现方法的类来说,抽象类也是重要且必要的工具。毕竟你不可能总是使用纯粹的接口。

    JavaEdge
  • 接口以及 LeetCode 每日一题

    接口定义了某一批类所需要遵守的规范,接口不关心这些类的内部状态数据,也不关心类内方法的实现细节,只是规定这批类里面必须提供某些方法。所以接口体现的是规范和实现分...

    Carlos Ouyang
  • Java编程思想精粹(On Java8)(十)-接口

    尽管你的第一想法是创建接口,但对于构建具有属性和未实现方法的类来说,抽象类也是重要且必要的工具。 你不可能总是使用纯粹的接口。

    JavaEdge

扫码关注云+社区

领取腾讯云代金券