关于接口设计原则和设计模式

2022-07-12 10:56:42 +08:00
 3kkkk
大家在日常开发中会遵守设计原则,和用设计模式去实现业务吗?
2399 次点击
所在节点    程序员
10 条回复
privatetan
2022-07-12 11:13:04 +08:00
看什么接口了 。普通增删改查类 一把梭,核心功能类接口可以适当使用设计模式实现。
Leviathann
2022-07-12 11:30:46 +08:00
设计模式,是一种交流语言
lanlanye
2022-07-12 14:29:53 +08:00
接口需要有设计规范,我一般参考 Google Cloud 的。

设计模式看情况,个人认为过早抽象是种灾难,但确实也有一些决策需要在项目开始之前就做好。
tramm
2022-07-12 14:46:56 +08:00
操心这么多干嘛, 慢慢迭代 :P

只要弄好可维护性, 降低耦合, 后期随便咋改都不怕.
jamel
2022-07-12 15:38:38 +08:00
有地址不,求分享
jamel
2022-07-12 15:38:49 +08:00
@lanlanye 有地址不,求分享
mingl0280
2022-07-12 15:57:57 +08:00
需要协作的类会先设计好接口,面向接口开发,如果没有需要就不会加设计模式。
yuanmomo
2022-07-12 19:06:44 +08:00
我自己设计接口的规范:

1. 接口是否使用签名
2. 接口是否有超时时间
3. 接口是否需要幂等性
4. 是否要过滤重复请求
5. 接口是否需要包含一些 debug 参数(仅仅在测试环境使用),比如:是否验证签名,是否验证超时时间,是否过滤重复请求,是否打印指定日志等等,主要目的是测试环境排错,生产环境的请求回放,压力测试等等
6. 接口可以新增参数,但是必须要向前兼容旧的接口
7. 接口尽量保持简单,同时降低耦合性,接口复用性
8. 接口参数哪些必要,哪些不必要,不必要参数设置默认值
9. 响应接口必要字段:code ,message ,timestamp ,result/data/value
10. 响应结果的 JSON 结构,优先使用非 Map 结构( key 固定)


暂时想到这么多,可能还有些其它的,这个就要根据具体的场景来选择了。
PPing520
2022-07-13 06:05:30 +08:00
@yuanmomo 楼主说的接口应该是语言层的接口( class / interface )设计
qsnow6
2022-07-13 10:07:55 +08:00

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/865602

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX