diff --git a/codingstyle/codingstyle.rst b/codingstyle/codingstyle.rst index bef54f33..4dcb6d8b 100644 --- a/codingstyle/codingstyle.rst +++ b/codingstyle/codingstyle.rst @@ -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