问一下你们后端,数据初始化规则都是怎么样的(好难受)

问题是这样的,举个例子,
有一个英雄数据,初始化的时候,其中skill默认是1级,这时候后端发的时候,是直接skill=null,让我们前端自己根据配置表去赋值1,只有技能升级了(>1),他才会有这个值 :upside_down_face:

他的理由是:会有很多刚玩就流失的玩家,技能都没有升级过,如果他记录下来,会浪费很多资源,这个理由合理吗 :pleading_face:

所以来论坛问问大家,你们的后端也这么搞吗,不光是技能数据,是大部分有默认值的数据,他都这么搞,搞的我好烦呐
有没有大佬,发表一下意见,让我参考一下,这合理吗

你们的服务器有这么搞的吗

合理 但是打一顿就会改了

服务器赋默认值不就行了

他不赋值,说这样省资源,他说起来还掷地有声,搞得我没啥好借口反驳 :weary:

可以不存,但是请服务端在发送前做转换,然后它让你转换.反正谁转都可以,你们可以打一架

1赞

赞同,建议击剑比比大小

你们服务器有这么搞的人吗

摸鱼兄的回复 总是给我惊喜

:hot_face:

我们不这么做,我的理解是初始化的时候已经初始化了一条数据,这个skill字段不管是null还是1他都已经开辟了内存,这样做感觉没有意义,当然,如果英雄初始化是一条数据,skill初始化是另一条数据那另说,但是这么设计似乎有那么点不合理吧?

我也感觉不合理啊,前端应该直接拿后端数据用了,就是不知道,后端省略默认值这种做法常见吗

如果确实是后面这种设计方案,而且是由于某些原因需要这么设计更好的话,这种做法还是可以的,如果是同一条数据内,建议击剑怼回去 :rofl:

如果不是自己写的后端,则前端不要轻易相信后端,数据还是自己做一下兼容好一点。当然,无论自己兼不兼容,楼主这种情况你都可以怼过去

每个变量可以有个默认值 …默认值就可以不传递的话…是会少点东西
不过需要用工具 来生成 解析等 还得同步配置等…不做这些确实很难受

锤他一顿让他知道 前端页面仔的厉害

19年转creator前搞过两年2dx 当时项目的后端也是这样处理的 开辟的空间确实没省 不过省数据流大小 为了减数据流大小 服务端传过来的json里的key都基本是一个字母 不够用的才两个字母 没有传就代表是初始值 每个字段代表啥以及初始值 前端都要看文档 当时也是很难受

没有特殊需求的话最好不这么写吧,对于对接来说这太要命了,建议锤他一顿。

后端始终想睡服前端,前端始终想睡服后端。最好的结果就是打一顿策划。

建议用protobuf之类的协议定义,两边统一协议就好了。protobuf 2 可以针对每个字段设置缺省值 [default = xxx],protobuf 3 去掉了这个,但每个字段会自动有一个缺省值,服务器不给对应字段赋值,你收到数据decode之后也会有值。如果不愿意改协议实现方式,那就干一架吧。

你以前写日记的时候,是买了日记本后,直接把每一页的标题都写好日期了吗,第一页写今天,第二页写明天。。。
还是说,今天写今天,明天写明天?防止有一天日记会超过两页,或者某一天不想写日本,或者某一天纸张被损坏了,要写在下一页?