(この記事は長いので前半と後半に分けました)
先週、僕たちは Drupal 8 に向けた「Web サービスおよびコンテクスト コア(WSCCI: Web Services and Context Core)」イニシアチブのスプリント(プロジェクトのテーマを決めてグループで開発や討議を行う数日程度の催し)を Acquia のオフィスで開いた。これは Drupal の将来にとって大事なスプリントだった。このブログ記事では、そこで議論したこと、合意したことを「高所」から見た概観を紹介しよう。スプリントの参加者たちはそれぞれ今後のブログ記事でもっと技術的な詳細を提示してくれるだろう。
全般的に言えば、広範囲にわたる、経験レベル、スキル セット、視点が議論に出された。このスプリントの目的は、このイニシアチブの対象範囲をはっきりと定めること、そして、僕たちが何を達成したいのか、それはなぜか、というポイントについて合意に至ること、また、それを達成するための明確なプランを立てることだった。
参加者は以下のとおり:
- “Crell”ことラリー ガーフィールド(Larry Garfield)。WSCCI イニシアチブのリード アーキテクト(「設計リーダー」とも「イニシアチブの設立リーダー」とも解釈可)
- “sun”ことダニエル クトヴィーン(Daniel Kudwien)。Drupal コアのトップ コントリビューター
- “fabpot”ことファビエン ポタンスィエ(Fabien Potencier)。Symfony プロジェクトの開発リーダー
- “EclipseGc”ことクリス ヴァンダーウォーター(Kris Vanderwater)および“neclimdul”ことジェームズ ギリランド(James Gilliland)。WSCCI に属するプラグイン システムの開発と実装を促進。
- “heyrocker”ことグレッグ ダンラップ(Greg Dunlap)。Drupal 8 の「設定マネージメント」イニシアチブ リーダー
- モシュ ワイツマン(Moshe Weitzman)。長年にわたる Drupal コア コントリビューター
- “webchick”ことアンジェラ バイロン(Angela Byron)。コミュニティーの世話役、Drupal 7 コア コーメンテナー
- “rfay”ことランディー フェイ(Randy Fay)、“beejeebus”ことジャスティン ランダル(Justin Randall)、“effulgentsia”ことアレックス ブロンステイン(Alex Bronstein)。外部からの視点で分別ある意見を言ってくれるコア開発者たち。
- ドリース バイテルト(Dries Buytaert)。僕。プロジェクト リーダー
対象範囲
ラリー ガーフィールドの思い描いた WSCCI イニシアチブが設けられたのは、もともと、Drupal の Web サービスと柔軟なページ レイアウト機能に取り組むためだ。そして、そのどちらも Drupal コアに対して著しい変更を求めるであろうことがわかった。しかし、オンラインで合意に至るのは難しかった。そこで 3 日間集まって、自分たちが実際に何を達成したいのか、そのためにはどうすればいいかを具体化してみようと決めたのだった。
そのスプリントで、僕たちはまず、WSCCI が解決しようとしていたすべての問題を互いに関連付けてみた。その問題とは次のようなものだった:多重ページ レイアウト、ブロック管理用 UI/UX の改良、ページの部分レンダリング(ESI、AHAH)、コンテクストに基づいたブロック(contextual blocks)、配信コールバック / URL ごとの応答タイプ切り替え、プラグイン システム / スワップ可能なサブシステム、ブートストラップの遅延読み込み(サブシステムを PSR-0 クラスに切り替える)、Web サービス構築用のインフラ構造、依存性注入(dependency injection)などなど。
このあと、各自がこれらのなかから 3 つを選んで順に投票できる場を設けた。これらのうち、いちばん重要なものはどれなのかを明らかにしてみるためだ。
この投票を行っている最中にすぐ、2 つのことがはっきりした。
- WSCCI の下にまとめられていた項目群は実際のところ、少なくとも 3 つに分けられる主要な分野にまたがっていた。それは、Web サービス、より堅牢(けんろう)な ESI ベースのレイアウト(Panels をよりパワフルにしたものだと考えればわかりやすい)、そして、もっとゆったりとつながったフレームワークになるよう、僕たちの基底ツールセット(underlying toolset)を整理することだ。
- Drupal への RESTful コールをサポートし、他のすべてのことを可能にする基底アーキテクチャー(underlying architecture)。それがフォーカスを当てるべきもっとも重要なことだと見なされた。