私はGoでチャットアプリケーションを作成し始めていて、JSONを扱う最善の方法が何か不思議です。私は別の記事を読んだので、クライアントが送信するすべてのアクションに対して異なるタイプを作成する必要があるようです。GoでのJSONのベストプラクティス
NewMessage
DeleteMessage
EditMessage
私の理解するには、私はこれらのアクションに合わせ3種類を作成する必要があります。
は、3つのアクションがあるとしましょう。このような何か:
type Message struct {
Action string `json:"action"`
Data map[string]*json.RawMessage `json:"data"`
}
type MessageMeta struct {
UserId int `json:"user_id"`
ChannelID int `json:"channel_id"`
}
type NewMessageAction struct {
MessageMeta
Message string `json:"message"`
}
type EditMessageAction struct {
MessageMeta
MessageId int `json:"message_id"`
Message string `json:"message"`
}
type DeleteMessageAction struct {
MessageMeta
MessageId int `json:"message_id"`
}
私はNode.jsの世界から来た(私は2つを比較する必要はありませんが)私にあるすべてのアクションの種類を作成し、維持するために少しも冗長と思われます。何百ものアクションがある場合はどうなりますか?