美文网首页
大数据之序列化技术和工程规约

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

作者: 爱修仙的道友 | 来源:发表于2019-04-21 23:18 被阅读0次
    开发环境

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

    测试环境

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

    生产环境

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

    版本控制

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

    序列化技术
    Protobuf 和 gRPC

    • Protobuf
    conda   install protobuf=3.6.0
    
    • 编写 person.proto
    syntax = "proto3";
    
    message person {
        int32 id = 1;
        string name = 2;
    }
    
    message all_person {
        repeated person Per = 1;
    }
    
    • 利用 pb 编译器自动生成代码:
      protoc --python_out=. person.proto
    • 编写序列化代码
    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)
    

    相关文章

      网友评论

          本文标题:大数据之序列化技术和工程规约

          本文链接:https://www.haomeiwen.com/subject/wgsjgqtx.html