デザイナーとして、私はパワーとシンプルさのバランスに対応するインターフェースを提供するのが好きです。たとえば、LINQの設計者は、ドット表記とクエリ表記の両方を提供しているため、この原則に従っていると思います。前者はより強力ですが、後者は読みやすく、理解しやすいです。LINQの私の評価に同意できない場合は、とにかく私のポイントを確認してみてください。LINQは単なる例であり、私の投稿はLINQに関するものではありません。
私はこの原理を「ダイヤル可能な力」と呼んでいます。しかし、私は他の人がそれを何と呼んでいるのか知りたいです。確かに「KISS」は一般的な用語だと言う人もいます。しかし、私はKISSをスーパーセット、つまり「消費主義」の実践と見なしています。再び私の例としてLINQを使用すると、私の見解では、ドット表記よりもクエリ表記を常に使用しようとするプログラマーのチームがKISSを実践しています。したがって、LINQの設計者は「ダイヤル可能な電力」を実践しましたが、LINQの消費者はKISSを実践しました。二人は一緒に美しい音楽を作ります。
編集別の例を挙げましょう。2つの使用を可能にする2つの署名を持つロギングツールを想像してみてください。
void Write(string message);
void Write(Func<string> messageCallback);
2つの署名の目的は、次のニーズを満たすことです。
//Every-day "simple" usage, nothing special.
myLogger.Write("Something Happened" + error.ToString() );
//This is performance critical, do not call ToString() if logging is
//disabled.
myLogger.Write( () => { "Something Happened" + error.ToString() });
消費者はシンプルなインターフェイスまたは強力なインターフェイスを選択できるため、これらの過負荷があることは「ダイヤル可能な電力」を表します。KISSを愛する消費者は、ほとんどの場合、より単純な署名を使用し、電力が必要なときに「忙しい」外観の署名を許可します。強力な署名を使用すると、コードのパフォーマンスが重要であることがリーダーに通知されるため、これは自己文書化にも役立ちます。ロガーに強力な署名しかない場合、「ダイヤル可能なパワー」はありません。
つまり、これは完全に一周します。自分の「ダイヤル可能なパワー」のコインがまだ存在しない場合は、それを維持できてうれしいですが、このプラクティスの明確な指定が欠けていると思わずにはいられません。
ps関連しているが、「ダイヤル可能な電力」と同じではない別の例は、Scott Meyerの原則であり、「インターフェイスを正しく使いやすく、誤って使いにくいようにする」というものです。