Thrift RPC 系列教程(5)—— 接口设计篇:struct & enum设计

栏目: 服务器 · 发布时间: 7年前

内容简介:比如,要我们设计一个 User。那很简单,典型的 class 嘛,按照 OOP 的套路走就行了,于是:这样的设计,不能说特别糟糕,也不能说特别完美 。实际上,我们可以让这个 class 更加清晰直观一点。实际中的 class,需求其实还是挺多的,比如

比如,要我们设计一个 User。那很简单,典型的 class 嘛,按照 OOP 的套路走就行了,于是:

struct User{
    1: string id;
    2: string name;
    3: i64 age;
    4: string address;
    ...
}
复制代码

这样的设计,不能说特别糟糕,也不能说特别完美 。实际上,我们可以让这个 class 更加清晰直观一点。

实际开发中的思考

实际中的 class,需求其实还是挺多的,比如

  1. 属性也许会很多(比如十几项属性?)
  2. 需要某个属性,有默认值
  3. 需要某个属性,可设置可不设置
  4. 需要某个属性,强制设置,并提供很直观的提示
  5. 等等等等

好的语言设计者,应该会考虑到这些。幸好,作为典型实用派的Thrift,考虑到了这些。

充分利用好 Thrift 提供的特性

在 Thrift 的官方文档中,说明这些特性。见: thrift.apache.org/docs/idl#fi… 。无非是从语法层面上,提供一些关键词,让读代码的人,维护代码的人,能够有个清晰的认知。

比如,上面我们的 User,大概可以变成这样:

struct User{
    1: required string id;   // 需要明确指定ID
    2: required string name;          // 需要明确指定name
    3: optional i64 age;               // 年龄, 可填可不填
    4: optional string address;
    5: optional bool isAdmin=false;      // 默认属性, 需要设置时,就去设置
    ...
}
复制代码

这样,哪些应该有,哪些可以没有,都是一目了然的。

enum 的设计

由于Thrift 并未为 enum 提供很多功能,所以 enum 写起来就很简单了,注意命名风格即可:

enum GenderEnum {
    MALE = 1,
    FEMALE = 2,
}
复制代码

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

C++编程风格

C++编程风格

卡吉尔 / 聂雪军 / 机械工业出版社发行室 / 2007-1 / 25.00元

本书描述C++语言中较深层次的程序设计思想和使用方法,包含大量软件工程概念和设计模式,重点介绍大规模编程相关的内容,例如增加代码的可读性、可维护性、可扩展性以及执行效率等的方法。本书的示例代码都是从实际程序中抽取出来的,融人了作者的实际开发经验。讲解如何正确地编写代码以及避开一些常见的误区和陷阱,并给出了许多实用的编程规则,可快速提升读者的C++编程功力。   本书描述平实,示例丰富,适合有......一起来看看 《C++编程风格》 这本书的介绍吧!

在线进制转换器
在线进制转换器

各进制数互转换器

html转js在线工具
html转js在线工具

html转js在线工具

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试