接口设计篇《怎么设计好的接口?》

简介: 这样设计接口【升职加薪】?

一.目录

前言

内容

结语

二. 前言

失败的项目原因有很多,成功的项目原因不多,成功者不管说什么其他人基本上不会质疑。驾驶机动车要通过驾校培训,然后取得驾驶证,如果没有驾驶证都敢开车上路,那么发生事故的概率很大!社会套路年年深,什么是套路呢?套路是事物的规律。

根据我的了解现在软件行业有一大部分项目都缺少规范研发流程,原因无非是:小团队简单点、整个流程下来天都亮了;产品、测试、开发一人搞定,美名其曰:”减少成本“;没有这方面意识。做了与做好是两个不同的层次,事情本身没有对与错,如果你要建设类似”平安金融中心大楼“的建筑却使用了搭建毛草房的技术、方案、方法,项目最后基本以失败告终。不同的时期有不同的思维,凭经验但无科学依据,把问题归结为“玄学”,问题依然没有解决。

三.内容

设计好的接口要从以下几个方面入手:

行业通用知识

专业的人做专业的事,敬畏专业,不要拿自己的业务爱好和专业人士比较。现代社会是高度分工、互相协作的社会,不同专业的人掌握不同的技能与思维。老板与经理、主管与员工,企业根据不同的职位遴选相应的人才,做到事人匹配,发挥所长。

不管是做产品设计,还是技术研发都要拥有相关业务知识。比如:

E-governance(电子政务)

ERP(企业资源计划)

IOT( The Internet of Things  物联网)

Cloud Computing(云计算)

Smart City(智慧城市)

还有大电商、保险、支付等业务这里就不一一列举了。

客户需求

产品团队负责把客户(客户可能是运营、甲方,产品团队自己)原始需求转化成产品需求,研发团队必须准确、全面、理解需求并且按时、按质完成。

  1. 需求评审。需求流转到研发团队之前已经评审过多次,研发至少要参与一次产品讲解需求
  2. 根据原型,渐进明细梳理需求。需求通常是复杂、依赖性和关联性强,先列出概况,然后由点到面、渐进明细进行设计。比如用户登录功能:
  • 用户名,密码是否填写
  • 忘记密码怎么处理
  • 多次用户名,密码错误怎么处理,从安全角度讲有没有记录操作日志,频繁操作有没有锁定账户功能
  • 用户是否注册
  • 用户账号状态是否正常
  • 用户登录成功后有没有活动需要弹出

  有些逻辑是代码层面的,产品团队不一定要能想到。比如,发优惠券功能,产品同事说领取优惠券数量没有限制!但是,做为有经验、有职业素养的开发人员需要提出来这是不合理的,需要限定领取数量。

标准化文档

这里所指的是接口文档。

  1. 接口命名规范。简洁明了、通用、表达准确,风格统一
  2. 标准数据。入参、出参数据格式、字段命名、字段类型、编码、意义在各个接口中基本相同

参考历史接口

笔者在对接某第三方支付接口时,就发现其中一种业务的接口命名、字段命名与其它接口风格迥异,如果两个团队开发的也是可以理解的,但内部还是缺少沟通

  1. 设计新功能接口时,要熟悉之前接口、功能 ,可以通过查看历史接口文档、看代码、访谈之前的开发人员。这样可以有效避免设计新接口时有遗漏、兼容功能问题
  2. 参考历史接口还有一个重要原因就是要保持接口风格统一、减少服务端开发人员学习成本、减少与前端(外部)沟通成本,使接口文档易维护、看得懂。

公共接口

设计接口要特别留意公共接口,需要把它设计好、归类好,做好接口复用。

参考:

这里还要补充一下,接口文档要归类好,建议按业务归类,接口中文名、目录名要简洁明了、表达准确,方便阅读。

民主集中制

  1. 接口设计采取一人主笔、全员参与。一人主笔可以保证质量、风格统一,全员参与可以提高团队凝聚力、积极性。
  • 某个版本指定一个人来梳理需求,其是主要的设计者;其他人配合他设计,保持业务连续性、准确性。
  1. 后期可以采用轮流主笔,全员参与,集体评审。为什么要后期?因为要先定规范、立标杆。
  2. “三个臭皮匠,顶个诸葛亮”,团队赢,个人赢。依靠团队、培养团队、让团队成长,进步,一个人成功取决于他身边的人,西游记里观音菩萨身边的花花草草听了经也成“精”,有点像数学上的平均数、中位数。

当然,团队要良好的沟通文化,不错的人员素质,否则容易产生不必要的矛盾。

四.结语

网上有的程序员经常吐槽领导没有套路出牌、同事瞎写代码,其实每个人都要去反思、复盘。改变可以改变的人和事!


目录
相关文章
|
SQL 缓存 Java
如何判断mybatis 开启二级缓存 和二级缓存详细讲解
如何判断mybatis 开启二级缓存 和二级缓存详细讲解
592 0
|
7月前
|
人工智能 安全 开发工具
专为开发者量身打造!!!摆脱 GitHub、GitLab、Hugging Face等平台龟速下载?
Xget 是一款专为开发者打造的高性能资源加速工具,支持 GitHub、GitLab、Hugging Face 等多平台下载加速,通过简单 URL 转换实现秒级下载。具备并行分片、智能路由、企业级安全防护,兼容 Git 协议与主流包管理器,无需复杂配置,助力 CI/CD、AI 模型训练等场景高效稳定获取海外资源。
1014 0
|
机器学习/深度学习 人工智能 自然语言处理
通古大模型:古籍研究者狂喜!华南理工开源文言文GPT:AI自动断句+写诗翻译,24亿语料喂出来的学术神器
通古大模型由华南理工大学开发,专注于古籍文言文处理,具备强大的古文句读、文白翻译和诗词创作功能。
3040 11
通古大模型:古籍研究者狂喜!华南理工开源文言文GPT:AI自动断句+写诗翻译,24亿语料喂出来的学术神器
|
消息中间件 运维 监控
中间件技术选型
【7月更文挑战第7天】
504 6
|
Web App开发 人工智能 自然语言处理
WebChat:开源的网页内容增强问答 AI 助手,基于 Chrome 扩展的最佳实践开发,支持自定义 API 和本地大模型
WebChat 是一个基于 Chrome 扩展开发的 AI 助手,能够帮助用户理解和分析当前网页的内容,支持自定义 API 和本地大模型。
1595 1
|
NoSQL Java Redis
[已解决]报异常java.io.InvalidClassException的解决方法|对象序列化实现Serializable会出现java.io.InvalidClassException的异常
[已解决]报异常java.io.InvalidClassException的解决方法|对象序列化实现Serializable会出现java.io.InvalidClassException的异常
|
消息中间件 开发框架 关系型数据库
02常见消息中间件对比
02常见消息中间件对比
332 0
|
机器学习/深度学习 人工智能 自然语言处理
AI人工智能大模型的架构演进
随着深度学习的发展,AI大模型(Large Language Models, LLMs)在自然语言处理、计算机视觉等领域取得了革命性的进展。本文将详细探讨AI大模型的架构演进,包括从Transformer的提出到GPT、BERT、T5等模型的历史演变,并探讨这些模型的技术细节及其在现代人工智能中的核心作用。
1248 8
|
机器学习/深度学习 弹性计算 人工智能
滴滴派单算法_从算法模型思路到评估方案 - 详解
导读:说到滴滴的派单算法,大家可能感觉到既神秘又好奇,从出租车扬召到司机在滴滴平台抢单最后到平台派单,大家今天的出行体验已经发生了翻天覆地的变化,面对着每天数千万的呼叫,滴滴的派单算法一直在持续努力让更多人打到车,本篇文章会着重介绍我们是如何分析和建模这个问题,并且这其中面临了怎样的算法挑战,以及介绍一些我们常用的派单算法,这些算法能够让我们不断的提升用户的打车确定性。
10841 123
滴滴派单算法_从算法模型思路到评估方案 - 详解
|
数据可视化 项目管理
项目管理怎么做?四大项目管理模型详解,让你的项目不再“忙而无效”!
本文介绍四大经典项目管理模型:瀑布模型(适合需求明确的项目)、Scrum模型(适合需求频繁变化的项目)、增量模型(分阶段推进,逐步完成)和风险管理模型(防患于未然)。同时推荐几款常用工具,如板栗看板、Trello和Asana,帮助团队更高效地协作。
692 0