この「優雅な劣化」という言葉についてよく耳にします。
例えば 、
"An application server should gracefully degrage when it is under heavy load "
"Graceful degradation of user interfaces.... "
この用語は私にとって抽象的なもののように見えます。それが意味するものの具体的な例はありますか?
この「優雅な劣化」という言葉についてよく耳にします。
例えば 、
"An application server should gracefully degrage when it is under heavy load "
"Graceful degradation of user interfaces.... "
この用語は私にとって抽象的なもののように見えます。それが意味するものの具体的な例はありますか?
回答:
ここではいくつかの例を示します。
「劣化」モードのアプリケーションは通常、内部または外部の問題により、限られた機能セットへのアクセスを提供します。たとえば、アプリケーションが2つの異なるデータソースに接続するとします。これらのいずれかが失敗しても、実行を継続することは可能ですが、利用できないリソースに関連するすべての視覚(またはバックエンド)機能を無効にすることができます。
具体的な例:アプリケーションには2つのデータソースがあり、1つは人を保存し、もう1つはアカウントを保存します。アカウントデータベースに障害が発生した場合でも、アプリケーションのパフォーマンスが低下している場合は、アカウントとやり取りしなくても、新しいユーザーを作成できます。
ユーザーインターフェイスに関しては、これは一般に、一部の機能が無効になっていることをユーザーに明確に示し、ユーザーが何かが利用できない理由について暗闇に取り残されないように警告メッセージを表示することを意味します。
また、フォールトトレラントシステムに関連するウィキペディアのエントリがあります。
技術の進歩により、常にすべてのターゲットオーディエンスによってサポートされない可能性のあるアプリケーションへの変更が常に行われています。そのようなシナリオでは、利用可能な最善のものを構築することをエミュレートするグレースフルデグラデーションに遭遇しますが、アップグレードしていないか、システムがサポートしていない可能性のある人のためのフェイルセーフもあります。
主要な例の1つは、画像がブロックされているかオフになっている場合に役立つ属性<img>
を持つタグalt
です。これらは、画像の意味のあるコンテキストを提供します(もちろん指定する場合のみ)。
私が考えることができる別の例は、エラーまたは使用できない場合のスタイルシートであり、ブラウザはページを表示/表示するための独自の汎用バージョンを提供します。
重い負荷について述べたように、ヒットがしきい値を超えた場合に何をすべきかを注意深く計画する必要があります。特定の機能を無効にするか、重要ではないサービスを一時停止して、息抜きをします。このすべては、ユーザーが知っているように、あなたは優雅な劣化をセットアップするのに役立ちますサーバーが応答に時間がかかる場合がありますX事によりまたはXサービスは時間かそこらのために利用できないでしょう