デビッド・ウィーラー:コンピュータ科学のどんな問題も、さらなる間接性のレイヤーで解決できる。
最近、これが非常に理にかなっていることに気付きました。なぜでしょうか?
私自身の理解は次のとおりです:
- 最初に書いたコードは特定の問題を解決するためのものであり、特定の状況に対応しています。
- 徐々に特定の状況が増えてくると、元のコードを変更するとますます複雑になり、変更できなくなります。
- 問題を小さくするために、最下層(最初の特定の問題を解決するコード)を抽象化し、インターフェースを公開して上位レイヤーに適応させます。上位レイヤーの適応とは、異なる種類の特定の問題を下位レイヤーのインターフェースに適応させることです。これにより、さらに 1 つのレイヤーが追加されたことになります。
- ステップ 3 の利点は何でしょうか?下位レイヤーのコード変更が少なくなり、上位レイヤーの適応によって、適応ロジックのみが存在するため、コードの隔離と相互影響の減少が実現されます。もし適応レイヤーで問題が発生し、ステップ 2 で述べた問題が発生した場合は、ステップ 3 を続けることでさらに 1 つのレイヤーが追加されます。このように、問題を 1 つずつ解決していくことができます。
- 現実とこの論理は非常に似ています。最初のコードは固定的に書かれていて、変更が難しくなります。そのため、パラメータや設定を分離して柔軟に設定できるようにすると良いです。
少しの洞察ですが、確かに理にかなっています。