構文ではなく設計の話。現在はブロックチェーンに関連する情報を取得するAPIをGraphQLで実装しているが、そのデータ構造の設計でどうするのが正解かわからずに進めている部分がある。
それは設定関連。具体的にはチェーンに対するデータ構造なのだが、「Chain」というタイプを定義した時に、「ID」というフィールドを定義するのはいい。「name」というフィールドもOK。ここまでは異論はないかと思う。
ではユーザーが設定する値はどうか。それもデフォルト値がある場合。例えば「confirmations」を表すフィールドとして、設定値は「confirmationsSetting」、デフォルト値は「confirmationsDefaultValue」みたいなフィールドとして「Chain」に追加すべきなのか。
それとも新しく「ChainSetting」というタイプを定義すべきなのか。新しく「ChainSetting」というタイプを定義した場合は、「defaultValue」というフィールドはそこに追加すべきなのか。
結局現在の作りから変更が少なくなる手法をとってしまいがち。ベストプラクティスもよくわからず、っていうのが現状……。
誰か教えて。
コメント