Drupalモジュールは「インストール」ではなく「応用」するもの:適応可能な設計の考え方

Dries and Logo
目次

この記事は Dries Buytaert 氏の公式ブログ「dri.es」の翻訳記事です。Driesブログの記事一覧よりすべての翻訳記事をご覧いただけます。

長年にわたって、私は何十もの小さなサイト固有のDrupalモジュールを構築してきました。それらのどれもDrupal.orgには公開していません。

ふと思います。Drupalエコシステム全体で、こうしたモジュールはどれだけ存在するのでしょうか?おそらくたくさんあるはずです。

例えば、最近このブログのコンテンツをオープンソース化しました。投稿をMarkdownファイルとしてエクスポートし、GitHubで公開したのです。そのために、Claude Codeを使って2つのカスタムDrupalモジュールを構築しました。1つはHTMLをMarkdownに変換するもの、もう1つはコンテンツをMarkdown付きのYAMLとしてエクスポートするものです。

どちらのモジュールにも、私がClaude Codeに明示的に説明したアーキテクチャの選択とアルゴリズムが組み込まれています。どちらもユニットテストがあり、本番環境で使用されてきました。しかし、どちらも私のサイトでしか動きません。

これらは私の特定のコンテンツモデルとフィールド名に基づいて構築されています。例えば、エクスポートモジュールは`field_summary`や`field_image`といったフィールドが存在することを前提としています。Drupal.orgにコントリビュートしたい気持ちはありますが、サイト固有のコードを再利用可能なものにするのは大変な作業です。

Drupal.orgでは、コントリビュートモジュールは誰にでも動作することが期待されます。つまり、私のコンテンツモデルを抽象化し、私が使わない設定オプションを追加し、私が遭遇しないエッジケースに対応し、テストしていないセットアップをドキュメント化する必要があります。

「汎用化の税金」が存在します。すべての可能なサイトに対応できるほど柔軟なコードにするためのコストです。Drupalには常にコントリビューションの強い文化がありましたが、この税金のせいで多くの有用なコードがプライベートのままになっています。私のブログだけでも、現在のモデルではおそらくDrupal.orgに公開されることのない10個のカスタムモジュールがあります。

汎用化作業は非常に価値があり、それを行うメンテナーは大いに評価されるべきです。しかし、それはハードルが高く、多くの有用なコードがそのハードルを越えることはありません。

そこで考えました。Drupal.orgに別のカテゴリーのコントリビュートコードがあったらどうでしょうか?

それを「適応可能なモジュール」と呼びましょう。名前よりもアイデアの方が重要ですが。

コンセプトはシンプルです。実際のサイトで実際の問題を解決する、テスト済みで動作するコードを、明示的に出発点として共有するのです。これらのモジュールをインストールするわけではありません。もちろん、そのまま動作することも期待しません。代わりに、AIがコードを読み、そこに埋め込まれた設計上の決定を理解して、あなたのために適応させます。もちろん人間も同じことができます。

実際には、Claude Codeに私のMarkdownエクスポートモジュールを見せて、こうプロンプトを出すことを意味します。
「これと似たものが必要だけど、私のサイトでは通常のBodyフィールドの代わりにParagraphsを使っている」。あるいは「画像フィールドではなくメディアフィールドに画像を保存している」。AIはコードを読み、アプローチを理解し、あなたのセットアップに合わせたバージョンを生成します。

このワークフローは、人間がすべての適応作業をしなければならなかった時代には意味がありませんでした。しかし、AIが経済性を変えました。AIはコードを読み、それが何をするかを理解し、新しいコンテキストに合わせて作り変えることが得意です。適応の機械的な作業は、安価で信頼性の高いものになりつつあります。

重要なのは、コードに埋め込まれた設計上の決定です。アーキテクチャ、アルゴリズム、トレードオフ。それらは人間である私たちから生まれました。AIが機械的な適応を処理するとしても、共有する価値があります。

これは、エンジニアリングが向かっている方向と一致しています。開発者として、私たちは構文やボイラープレートに費やす時間を減らし、問題を理解し、アーキテクチャの選択を行い、トレードオフを検討することに多くの時間を費やすようになります。私たちの技術は、コードを書くことからコードを形作ることへとシフトしています。そして、それを書くAIエージェントを指揮することへと。適応可能なモジュールは、その未来に合致しています。

誰にでも動作するモジュールは今でも重要です。Drupalの成功は常にそれに依存するでしょう。しかし、共有する価値のある唯一の種類ではないかもしれません。すべてを誰のためにも汎用化する従来のコントリビューションモデルは、AIがコンテキスト固有のコードをオンデマンドで生成できる時代には、小さなユーティリティモジュールにとってはあまり意味がありません。

独自の意見を持ち、サイト固有のモジュールは、常にプライベートリポジトリに存在してきました。新しいのは、AIがそれらを共有する価値のあるものにしたということです。私のサイトでしか動作しないコードが、AIがあなたのサイトに適応できるようになれば、有用な出発点になります。

これをさらに探求するために、Drupal.orgにイシューを作成しました。皆さんの意見をぜひ聞かせてください。

(草稿をレビューしてくれたphenaproxima、Tim Lehnen、Gábor Hojtsy、Wim Leersに感謝します。)

By Dries Buytaert

追伸:LinkedInまたはDrupal.orgでのディスカッションにもご参加ください。

この記事は「Adaptable Drupal modules: code meant to be adapted, not installed」(投稿日:2025-12-18)の翻訳記事です。

カテゴリ