Error

C++博客 首页 新随笔 联系 聚合 管理
  217 Posts :: 61 Stories :: 32 Comments :: 0 Trackbacks

    老早就想做这个事情了,想当初做协议代码实现的时候那个揪心啊,各种重复的代码一遍一遍的写。后来发现了Google的Protobuf,初次看见真TMD惊艳,,,

    吐槽下,Google的开源项目都不怎么地道,基本都是开代码不开文档,或文档少的可怜,,,

    在后来项目上要用到序列化技术,而且我们的序列化工具类是键值对。何为键值对呢,,,囧,这个很难描述,先暂时记录下我对序列化的理解。

 

//////////////////////////////////////////////////////////////////////////////////////////////

序列化一个抽象的概念,每个人可能理解都不同,我们约定这里谈的序列是这个:

    序列化就是把一个语言成面上的依赖上下文的“对象”,变成一个精炼的语言、上下文无关的数据(可以是一块内存,可以是一坨文件等等任何数据的载体)的动作;

抽空百度了下,百度百科给出的解释如下:

序列化 (serialization) 将对象的状态信息转换为可以存储或传输的形式的过程。

//////////////////////////////////////////////////////////////////////////////////////////////

 

题外话结束,继续说我们项目上需求的键值对。

刚刚的穿插序列化定义理解中可以分析出:一个序列化的数据中除了包含有原始的“数据”信息应该还包含有“数据”的描述信息。一般的需求中这个描述信息只要包含有类型信息就好了。

    比如某个“对象”序列化以后数据信息是0x63,我去,,,鬼才能知道这是什么意思,是数字?字符?还是什么别的特殊的东西?

    所以需要描述信息。比如1表示是字符,2表示是int,3表示是系统内部特定标识等等,,,

    这个偶们的键值对还是没有任何关系? no no no,我们的键值对就是除了这个类型信息呢,还要加一个名字。偶们内部的变量不仅是有类型的还是有名字的,,,也就是说描述信息中除了有类型还要有名字,,,

 

////////////////////////////////////////////////////////////////////////////////////////////

前几天研究了下浮点怎么在网络中传输。应为不同的机器或者不同的OS对浮点存储方式是不同的。后来研究了下几个开源的项目加上自己突然想起来大端小端int在网络上的传输方式,突然发现这个问题没有纠结的价值。标准嘛,大家统一标准就好了,谁的影响力大咱们就听谁的,,,要拥抱世界,尽量成为一个兼容的标准。无法反抗,那就只能享受了吧,,,谁让人家拳头大,推广好呢?

///////////////////////////////////////////////////////////////////////////////////////////

 

恩?刚刚上面不是主题,主题是这半个月要在不影响工作的前提下好好研究代码生成技术,其实这是为后面咱自己的序列化工具(类Google protobuf)打基础哈,,,

叫啥名好呢?囧,,,但愿这次咱能坚持做出来,,,

posted on 2012-06-23 21:01 Enic 阅读(214) 评论(0)  编辑 收藏 引用

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理