Apache Thrift Struct 提高可读性
Apache Thrift Struct for better readability
我刚开始使用 thrift 并创建了以下 thrift 接口。
map<string, map<string, string>> getInformationByIds(1: set<string> Ids)
如您所见,return 类型是 map of maps
。我想知道是否可以通过创建自定义节俭结构来提高可读性。任何方向表示赞赏。
虽然我很难将此与可读性联系起来,但我可以提供一个通用的建议,或许也能为您解决这个问题。
使用 struct
作为 return 值
服务方法(当前)以大多数编程语言的方式设计1)使用可调用函数的概念:尽管它允许移交 0 -N arguments,你仍然被限制在最大one return value only 2):
RETVAL function( ARG1, ARG2, ..., ARGN) throws (...)
因此,在您的服务方法中使用 as struct
作为 return 值被证明是一种非常聪明的方法。事实上,它一次解决了四个问题:
- 不再限于 1 个 return 值:根据需要添加任意数量的字段
- 可扩展:您可以在以后添加更多字段而不会破坏它
- 可读性:分离方法和 retval 使您的代码更清晰
- 可重用性:很容易为多种方法使用相同的return结构
这有多酷?
1) 例如Golang 是一个明显的例外。
2)我们这里不统计异常,只统计正常数据。
我刚开始使用 thrift 并创建了以下 thrift 接口。
map<string, map<string, string>> getInformationByIds(1: set<string> Ids)
如您所见,return 类型是 map of maps
。我想知道是否可以通过创建自定义节俭结构来提高可读性。任何方向表示赞赏。
虽然我很难将此与可读性联系起来,但我可以提供一个通用的建议,或许也能为您解决这个问题。
使用 struct
作为 return 值
服务方法(当前)以大多数编程语言的方式设计1)使用可调用函数的概念:尽管它允许移交 0 -N arguments,你仍然被限制在最大one return value only 2):
RETVAL function( ARG1, ARG2, ..., ARGN) throws (...)
因此,在您的服务方法中使用 as struct
作为 return 值被证明是一种非常聪明的方法。事实上,它一次解决了四个问题:
- 不再限于 1 个 return 值:根据需要添加任意数量的字段
- 可扩展:您可以在以后添加更多字段而不会破坏它
- 可读性:分离方法和 retval 使您的代码更清晰
- 可重用性:很容易为多种方法使用相同的return结构
这有多酷?
1) 例如Golang 是一个明显的例外。
2)我们这里不统计异常,只统计正常数据。