查看: 1201|回复: 0
打印 上一主题 下一主题

[软件应用] API的设计,如何设计优雅的API?

[复制链接]

2569

主题

3687

帖子

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
101592
跳转到指定楼层
楼主
发表于 2019-5-30 16:26:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
计算机科学领域的任何问题,都可以通过增加一个间接的中间层来解决

·如何被使用?
·如何运行?
·谁在使用?
·相关方有谁?

API范围定义:分层API模式

如何设计优雅的API?

原则:一个API只做一件事情。

1.先抽象模型,再进行多平台设计

2.平台风格->语言风格->业务抽象->团队风格

3.命名细节:时态、单复数、介词、大小写

4.经验式编程:所见即所得
        何为经验式编程?
        (1)免注释式命名
        (2)行为自解释
        (3)区分基础与高级API
        (4)避免副作用

5.稳定的设计
        ·少即是多 信息是否必须要用?如果只保留1-2个接口,可避免扩散
        ·向后兼容 100%向后兼容理论上是不可行的,
        ·接口适配层 为业务预留空间
        ·URI中预置版本号
        ·预定义错误码
        ·小版本之间的直接迁移

6.编码
        ·防御性编程
        ·LifeCycle注册
        ·检查版本号
        ·运行库命名空间等

7.Review
        ·CodeReview是基础
        ·自动化工具的参考报错(静态分析、命名/复杂度、接口变更统计...)
        ·团队评审,建立评审流程

8.发布与反馈
        ·区分版本
        ·A/B Test
        ·接口使用统计:APM
        ·Log:级别与回调



回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


快速回复 返回顶部 返回列表