【问题标题】:Apache Thrift Struct for better readabilityApache Thrift Struct 以获得更好的可读性
【发布时间】:2022-01-10 01:34:02
【问题描述】:
我刚开始使用 thrift 并创建了以下 thrift 界面。
map<string, map<string, string>> getInformationByIds(1: set<string> Ids)
如您所见,返回类型是map of maps。我想知道是否可以通过创建自定义节俭结构来提高可读性。任何方向表示赞赏。
【问题讨论】:
标签:
java
refactoring
thrift
code-readability
【解决方案1】:
虽然我很难将这与可读性联系起来,但我可以提供一个通用的建议,也可以为你解决这个问题。
使用struct 作为返回值
服务方法(目前)以大多数编程语言的方式设计1)使用可调用函数的概念:尽管它允许传递 0-N 个参数 ,您仍然被限制为最多一个返回值2):
RETVAL function( ARG1, ARG2, ..., ARGN) throws (...)
因此,在您的服务方法中使用struct 作为返回值被证明是一种非常聪明的方法。事实上,它一次解决了四个问题:
- 不再局限于 1 个返回值:根据需要添加任意数量的字段
- 可扩展:您将来可以添加更多字段而不会破坏它
- 可读性:分离方法和 retval 为您提供更清晰的代码
- 可重用性:可以轻松地为多个方法使用相同的返回结构
这有多酷?
1) 例如Golang 是一个明显的例外。
2) 我们这里不计算异常,只计算正常数据。