43 lines
1.7 KiB
Markdown
43 lines
1.7 KiB
Markdown
|
# 开发完接口之后:
|
|||
|
|
|||
|
**入参校验**:长度校验、判空、逻辑校验
|
|||
|
|
|||
|
**分页处理**:是否实现分页功能
|
|||
|
|
|||
|
**逻辑删除**:避免物理删除,使用逻辑删除
|
|||
|
|
|||
|
**查询加缓存**:提高查询效率,减少数据库压力
|
|||
|
|
|||
|
**逻辑漏洞**:检查逻辑是否存在漏洞
|
|||
|
|
|||
|
**重点接口加验签**:防止流量劫持和数据篡改
|
|||
|
|
|||
|
**异常情况提示语**:清晰明确的异常提示信息
|
|||
|
|
|||
|
**外部接口错误处理**:是否需要重试还是直接返回错误,对方是否有幂等性
|
|||
|
|
|||
|
**接口访问量**:评估接口的访问量
|
|||
|
|
|||
|
**中间件压力**:考虑中间件的负载能力
|
|||
|
|
|||
|
**时间复杂度**:优化时间复杂度,例如map的查找操作为O(1)
|
|||
|
|
|||
|
**代码细化**:每个操作步骤细化明确,思考每个方法是否可以控制在10行以内,抽取通用代码便于维护
|
|||
|
|
|||
|
**Redis数据结构选择**:合理选择Redis数据结构
|
|||
|
|
|||
|
**设计模式**:是否考虑设计模式
|
|||
|
|
|||
|
**外部接口调用日志**:记录入参、返回值,尤其是不满足预期和报错的时候
|
|||
|
|
|||
|
**国际通用返回值**:`code`, `msg`, `data`, `extMap`, `requestId`
|
|||
|
|
|||
|
**@Value默认值**:`@Value = "$(aaa:defaultValue)"`,带一个默认值,增强健壮性
|
|||
|
|
|||
|
**参数配置文件化**:所有参数放入配置文件,便于将来动态刷新
|
|||
|
|
|||
|
**临界值测试**:调用方获取的永远是`baseResponse`,不能把Java异常返回出去,业务代码明确,见名知意
|
|||
|
|
|||
|
**日志记录**:多打日志,入口、出口,尤其是调用第三方接口时,记录入参、出参
|
|||
|
|
|||
|
**全局意识**:在项目开发中,即使自己只是整个流程的一部分,也要有全局意识,替对方着想,这样开发起来更加顺畅
|