【问题标题】:Advantage/disadvantages of same name for multiple kind struct tags in a field字段中多种结构标签同名的优点/缺点
【发布时间】:2023-01-13 02:38:27
【问题描述】:

让我们举一些例子:

type Diff struct {
    Foo interface{} `json:"name" env:"APP_NAME" firestore:"app_name" bson:"appName"`
}

type Same struct {
    Foo interface{} `json:"name" env:"name" firestore:"name" bson:"name"`
}

Diff one 有哪些优点/缺点?我应该在他们之间使用什么?

【问题讨论】:

  • 没有优点或缺点。使用您的用例所需的内容。

标签: go tags marshalling unmarshalling


【解决方案1】:

第一个示例 json:"name" env:"name" firestore:"name" bson:"name" 的主要优点在于它在不同系统中的命名约定是一致的。这可以使代码更简单、更易于阅读,因为字段名称在所有系统中都是相同的。如果你想让你的代码库更具可读性和可维护性,这会很有用。

第一个示例的主要缺点是它不允许不同系统使用不同的命名约定,这可能会导致命名冲突或难以与某些系统集成。

第二个例子,json:"name" env:"APP_NAME" firestore:"app_name" bson:"appName",允许不同的系统使用不同的命名约定,这对于避免命名冲突或使其更容易与某些系统。但是,它会使代码更难阅读和理解,因为它需要开发人员跟踪多个不同的字段名称。

这取决于项目的要求,如果你想让你的代码库更具可读性和可维护性,你应该使用 json:"name" env:"name" firestore:"name" bson:"name"。如果你想避免命名冲突或更容易与某些系统集成,你应该使用 json:"name" env:"APP_NAME" firestore:"app_name" bson:"appName"。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-22
    • 1970-01-01
    • 2011-09-19
    • 2021-01-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多