ID是用来进行身份标识的,ID值唯一确定了某类业务领域对象中的某个对象。对于通过client和server进行业务沟通的这种形式来说,ID是所有交流信息里面最核心的,因为其描述了业务的对象。所谓业务本质就是对象加上规则,规则一般是通过命令ID来标记,表示进行的是什么类型的业务。
用ID来进行沟通很大的好处就是对信息接收方完全透明,也就是说接收端根本就不需要知道这个ID的意义,只需要在信息传输过程中带上即可。而对于发送端来说,这个ID代表着一切,代表着如何去执行具体细节的业务逻辑操作。对接收端透明的东西是非常好的东西,意味着发送端可以随时改变这个东西而接收端不需要做任何改变,本质就是通过加了一层来实现解耦。
所以所有的协议设计可以划归为以下的形式,BODY可以递归。
//HEADER
{
len uint16 //包长度,必须字段
proto uint16 //协议号
version uint16 //协议版本
code uint64 //校验字段
}
//BODY
{
HEADER{}
BODY{}
}