LLMで実現されたデザインパターンの夢

GoFの「デザインパターン」の「終わりに」という章の「終わりに」という項は次のようになっています。

もっとも良い設計は、全体がたくさんのデザインパターンをぴったりとつなぎ合わせて、組み合わせてできているものである

GoFデザインパターンのコンセプトは、パターンのカタログを提示することだけではなくて、その構成を使って多くのパターンを見出してほしいというものでした。

けど、名前をつけてカタログ化するほどのパターンは、コンピュータの高性能化とネットワークの普及に応じて変化したソフトウェアアーキテクチャを整理したものが多く粒度が大き目で、GoFデザインパターンの想定した粒度のようなものはあまり共有されいません。

実際のところパターンは数多くあるものの、粒度が小さく変化も大きく、デザインパターンとして名前をつけて整理をして共有するのが難しい。

そうすると、Erich Gammaのいう「全体がたくさんのデザインパターンをぴったりとつなぎ合わせて、組み合わせてできている」を実現するのは難しい。
※ おそらく「終わりに」を書いたのはErich Gamma

そんなところにLLMです。

LLMがコードを学習して記述する仕組みをざっくり言えば、多量のコードから大小さまざまな粒度のパターンを見出してトークン化し、ユーザーのプロンプトに従って適切に並べて再現するというものです。

まさしく「全体がたくさんのデザインパターンをぴったりとつなぎ合わせて、組み合わせてできて」いますね。