问题:开发人员创建自己的序列化格式有多普遍?具体来说,我使用 java 本质上将对象作为带有标记的巨大字符串发送来分隔变量。
我的逻辑:我选择这个是因为它几乎消除了语言依赖性(忽略 java 修改后的 UTF-8),而且你没有对象版本问题,如果你使用 java 的序列化接收端必须有完全相同的版本对象,因此在旧版本上运行的客户端将无法接收任何对象数据。代码并不太难看,而且读起来还可以,但我想我的问题是这个实例的最佳实践是什么?这是针对个人项目的。
其他已知选择:好的,我只是在序列化一个对象以通过网络发送它,并且遇到了谷歌的协议缓冲区。序列化对象的标准化程度如何?我基本上遇到了三种方法来做到这一点。(我将在这里谈论 java,因为这就是我所做的) 1)使用语言的(java 的)本机序列化类 2)使用你自己的方式序列化对象,可能使用字符串和令牌 3)使用协议缓冲区或其他一些已知格式(JSON、XML 等)
根据我收集到的内容,您在序列化时基本上有 3 个主要目标:1)速度/效率/大小 2)语言独立性 3)版本接受(旧版本的代码仍然可以接受新版本的部分内容,反之亦然反之亦然)
大多数大型软件项目都使用协议缓冲区吗?如果您的客户端是资源少得多的移动设备,它会改变吗?