web-dev-qa-db-ja.com

UIの表示メッセージはどこに保存する必要がありますか?

私はバックエンドの開発者であり、昨日、チームのフロントエンドの開発者と、バックエンドからの操作の結果に関する表示可能なテキストメッセージをフェッチできるようにするかどうかについてこの議論がありました。

私の主張は、これはプレゼンテーションレイヤーの決定であるため、UIのままにする必要があるというものでした。バックエンドとフロントエンド間で合意された応答コードをオンに切り替え、それに応じてテキストメッセージを表示する必要があります。このようにして、バックエンドは、UIとユーザーの間の対話を認識できません。

実際、私の会社は非常にバックエンドが重いため、ここでの実践はUIを非常に軽量に保つことです。

しかし、ここでコミュニティからの提案を参考にして、バックエンドから表示メッセージを取得するのが良い方法かどうかを理解したいと思います。

Androidフルスタック開発者(この会社の前))としての小さなキャリアの中で、UIとバックエンドの間のやり取りは、プレゼンテーションではなくデータについて厳密に行う必要があると常に信じていました。

3
Rajan Prasad

どちらかを支持する決定的な答えはないと思います。それは多くの要因に大きく依存します。それらのいくつかは客観的に答えられるかもしれませんか、ビジネス要件のために、それらのいくつかは主観的または好みの問題です。

私の頭に浮かぶこれらの要因のいくつかを以下に示します(特定の順序ではありません。いくつかのポイントは他のポイントと重複する場合があります)。

  • フロントエンドをどの程度賢く、またはばかげていますか?
  • システムの全体的なアーキテクチャは何ですか?
  • 使用しているフレームワークは、メッセージを保存/管理するためのメカニズムをすでに提供していますか?このメカニズムを使用しますか、それとも使用しないことを意図的に選択しますか?
  • ユーザーごとに異なるテキスト(翻訳など)が必要ですか?フロントエンドはユーザーの設定(言語など)を知っていますか?
  • アプリケーションに他の同様のもの(異なる通貨、税金、単位、ロゴ/画像など)がありますか?それらはバックエンド側にありますか、フロントエンド側にありますか?
  • 複数のフロントエンド(アプリとウェブサイトなど)はありますか?一貫性のある表現が必要ですか(つまり、メッセージはバックエンドに属しています)、またはテキストはフロントエンドごとに異なる必要がありますか(つまり、メッセージはフロントエンドに属しています)?
  • どのくらいの頻度でメッセージを変更しますか?これはフロントエンドまたはバックエンドのデプロイ時間によりよく一致しますか?
  • 新しいメッセージを必要とするバックエンドで新機能を開発する場合、新しいフロントエンドバージョンをデプロイしても大丈夫ですか(または他の理由ですでに必要ですか)、またはフロントエンドは変更なしにそれらの機能をサポートするのに十分な柔軟性が必要ですか?
  • バックエンド側で新機能を追加せずにユーザーインターフェイスを再設計する場合、メッセージを適宜調整するためだけに新しいバックエンドバージョンをデプロイしても問題ありませんか?
  • メッセージを分割して、バックエンド側とフロントエンド側のいくつかを見つけることは理にかなっていますか?または、場合によっては、個別の「メッセージマイクロサービス」でさえ合理的でしょうか。 (しかし、追加の複雑さやオーバーヘッド、メンテナンスの難しさなど、このようなソリューションの欠点に注意してください!)
3
siegi