大数据之序列化技术和工程规约

2019-04-21  本文已影响0人  爱修仙的道友
开发环境

研发工程师在本机搭建的环境,用于代码编写。环境包括项目需要对应版本的第三方包;
功能开发完成以后需自行编写单元测试用于纠错;

测试环境

测试人员对代码进行全流程测试,工作主要是编写自动化测试脚本,从系统层面检查功能是否正常、系统性能、代码覆盖等指标;
可以通过 Jenkins 等 CI 工具触发自动化检测流程,通过检测以后可以部署到测试环境;

生产环境

公司对外提供服务的环境,包括软硬件等系统;

版本控制

推荐使用 Git 实现文本版本控制,团队协同开发可以使用 github 的私有仓库或者gitlab 自行搭建;

序列化技术
Protobuf 和 gRPC

conda   install protobuf=3.6.0
syntax = "proto3";

message person {
    int32 id = 1;
    string name = 2;
}

message all_person {
    repeated person Per = 1;
}
import person_pb2

# 为 all_person 填充数据
pers = person_pb2.all_person()
p1 = pers.Per.add()
p1.id = 1
p1.name = 'Teacher Huaan'
p2 = pers.Per.add()
p2.id = 2
p2.name = 'pythoner'

# 对数据进行序列化
data = pers.SerializeToString()
print(data)
# 对已经序列化的数据进行反序列化
target = person_pb2.all_person()
target.ParseFromString(data)
print(target.Per[0].name)  # 打印第一个 person name 的值进行反序列化验证
print(target.Per[0].id)

print(target.Per[1].name)
print(target.Per[1].id)
上一篇下一篇

猜你喜欢

热点阅读