您是否应该使用protobuf作为用于处理或仅用于传输的数据类型?

时间:2017-04-07 16:09:54

标签: go protocol-buffers grpc

我有一个用Go编写的矩阵结构。那个矩阵结构有很多方法。我希望能够有效地计算矩阵运算,但我也希望能够通过线路发送它以分发计算。

我目前将矩阵及其方法与protobuf定义分开。当我需要通过线路发送它时,我必须从现有的pb.Matrix{}结构创建一个新的Matrix{},然后进行我的grpc调用。这似乎是一种浪费。那么,这是浪费吗?我应该将矩阵结构定义为protobuf定义,然后使用嵌入来定义它的操作吗?或者将它们彼此分开是否更好?

1 个答案:

答案 0 :(得分:1)

在架构方面,我会将它们分开。这符合单一责任原则。在我的一个项目中,我们使用以下形式:

addEventListener('load', function(){

var wtf = 'arg1:"2 words" business corporate arg2:val2 arg3:"fixedIt"';
function customObj(string){
  var a = string.split(/\s+(?!\w+")/), x = [], o = {};
  for(var i=0,s,k,l=a.length; i<l; i++){
    s = a[i].split(/:/); k = s[0];
    s[1] ? o[k] = s[1].replace(/"/g, '') : x.push(k);
  }
  o['extra'] = x.join(' ');
  return o;
}
console.log(customObj(wtf));

});