1、浮点型计算可能导致精度丢失,为了避免,可以缩小单位进行存储
2、json数据保持良好结构(信息分类)
{ "userId"... "userName"... "userPhoto"... "orderId"... "orderType"... "addressId"... "addressName"... "addressDetail"... }
3、瘦客户端(将业务重心交由后端,客户端保持逻辑简单)
客户端尽量只负责展示逻辑,不处理业务逻辑
客户端不处理金额的计算
客户端少处理请求参数的校验与约束提示(手机号和固话)
接口单一职责
4、扩展性
默认图片,特别是"xxx20分钟之内","xxx7天到期"这些带数字的文案,不可能永远不变的,即使和PM确认了打死不变,也最好通过常量配置接口进行下,尽量有后端下发
用flag替换boolean:一般情况下,一款APP都会有config接口,用于获取一些常量文案,通用配置等信息,会有很多类似开关的字段,如:"isNew","isVip","isShowBalance"等等。
通过二进制第1位表示"isNew",二进制第2位表示"isVip",二进制第3位表示"isShowBalance"。
5、安全性
脱敏操作,手机号,身份证号,可变token,参数签名匹配,接口加密(目前https)
6、兼容性
接口version,加密+version
7、性能优化
合并接口,客户端请求完A去请求B,后端一次性把AB的接口返回给客户端
字段精简,减少流量消耗
缓存
无需的字段清理
小图
局部刷新
Wifi移动网路区别对待
数据压缩(gzip)
8、体检优化
时间戳(缓存), 懒惰加载,预加载
9、通用请求参数
每个接口添加version,token,os,from,screen,model,channel,net,appId通用请求加密
10、统一命名
客户端和服务端命名保持一致,要驼峰都驼峰,要下划线都下划线
11、反序列化
Gson库在解析到某个非法字段时,会抛出各种异常,导致整个model的解析失败,自定义JsonDeserializer,提高容错性,规避脏数据引起的数据解析失败;
关于这么多Tips,如果有更好的,可以留言!