Skip to content

Commit

Permalink
app 后台版本兼容问题
Browse files Browse the repository at this point in the history
  • Loading branch information
PegasusWang committed Mar 25, 2020
1 parent c8d813c commit 992e658
Showing 1 changed file with 1 addition and 1 deletion.
2 changes: 1 addition & 1 deletion codingstyle/codingstyle.rst
Original file line number Diff line number Diff line change
Expand Up @@ -363,7 +363,7 @@ Web 框架相关:
- 跨语言数据类型兼容:之前出现过后端修改了返回的 bool(true/false) 为 int(1/0) 导致客户端解析失败(甚至崩溃)的问题,注意不同后端动态语言和客户端序列化数据类型字段兼容问题(比如后端python客户端java)
- 数字类型溢出问题:跨语言 rpc 或者序列化成 json 返回给前端数据,注意 int64 类型(比如发号器发的in64 id)转成 string(grpc会自动处理)。长整型会被js截断,很多新手可能会忘记这种跨语言序列化的坑,发现int64给前端以后被截断了,建议 int64 对于 js 直接给 string
- 版本字段兼容:如果用的 json,定义好格式以后一旦上线不能删除和修改原有字段(可以新增字段),防止使用老版本数据的客户端崩溃。如果是内部 rpc 框架(thrift/grpc)等,一般定义后的字段是不能修改其顺序序号的。
- 新旧版本逻辑兼容:客户端(iOS/Android)一般会有新老版本共存的情况(有些用户不想升级),可以通过获取客户端的平台和版本号区分返回不同的业务逻辑
- 新旧版本逻辑兼容:客户端(iOS/Android)一般会有新老版本共存的情况(有些用户不想升级),可以通过获取客户端的平台和版本号区分返回不同的业务逻辑。最好封装一个版本判断框架,而不是一堆恶心的 if/else 判断穿插在代码里

https://imweb.io/topic/581a8eb02373d1aa606c8be7

Expand Down

0 comments on commit 992e658

Please sign in to comment.