DIARY :: AROUND THE CORNER :: 20140630002
翻訳「Drupal 8: Hello OOP, Hello world!」:補足 1
DIARY :: AROUND THE CORNER :: 20140630002
当ページでは、当方による翻訳「翻訳「Drupal 8: Hello OOP, Hello world!」」に関して、Drupal、Drupal における開発の概要、及び、その中での原文の位置付けについて補足説明を行っています。
原文「Drupal 8: Hello OOP, Hello world! 」の著者 effulgentsia 氏 は、今回ここで翻訳させていただいたブログポストを、主に Drupal 7 で module 開発経験を有するプログラマを対象読者として書いています。そこで、Drupal についてはまだそれ程ご存知でない方のために、予備知識として、Drupal、Drupal における開発の概要、及び、その中での原文の位置付けについて簡単に触れておきます。Drupal は、CMS であるともに Web アプリケーション開発フレームワークでもあるとも言われていますが、その内部構造を非常におおざっぱに捉えると(外部のデータベースを除くと)、汎用的な Web 情報処理基盤としての「Drupal core(Drupal core components)」、それと連携しつつ具体的な仕事をする「module」と「theme」という 3 つの構成要素から成り立っています(そして、もちろん、それらそれぞれは、さらに複数の構成要素から成り立っています)。「Drupal core」はリクエストに対してレスポンスを行うための一連のワークフローをバックグランドで遂行し、その過程で、「module」は主にビジネスロジック面(機能面)についての仕事を、「theme」は主にプレゼンテーション面(表示面)についての仕事を、それぞれが Drupal core や他の module・theme と連携しつつ担当することになっています。パソコンソフトに喩えるなら、Drupal core が「Operating System」、module が「utility software」や「application software」、theme が GUI を担当する各種の「window system」のような存在・役割であるとイメージすれば、やや強引ですがわかりやすいかもしれません。そのような Drupal の構造において、具体的なサイト開発・アプリケーション開発は、module 開発を中心として行われていくことになります。ですから、effulgentsia 氏の原文は、Drupal 8 における module 開発の考え方をその背景から解説することで、Drupal 8 におけるサイト開発・アプリケーション開発の考え方の基本中の基本を提示しているわけです。具体的には、「Hello」モジュールというサンプルコードを題材に、次のような 2 段階の構成により論理展開しています。(1)現バージョンである「Drupal 7 上での開発」における問題点を指摘する
(2)その問題点を解決する解として、新バージョンである「Drupal 8 上での開発」を、その導入背景から解説する
そこでの主題は、「Hello OOP, Hello world!」というタイトルが示すように、Drupal への OOP(objerct-oriented programming)の導入 〜 Hello OOP.
であり、それがもたらすであろうDrupal の内部世界と外部世界との遭遇・接近 〜 Hello World.
です。後者にはさらに 2 つの側面があり、第 1 には、Drupal の内部のコードが Drupal の外部の世界でも利用可能となる、という側面であり、第 2 には、Drupal の外部のコードが Drupal の内部の世界でも利用可能となる、という側面です。原文で焦点が当てられているのは第 1 の側面ですが、第 2 の側面は、Drupal 8 のルーティングのために、Symfony2 という、Drupal とは別の Web アプリケーション・フレームワークのコードが利用されていることで既に現実化しています。Drupal はバージョンが上がるごとに毎回その内部構造が大きく変化するということを繰り返してきましたが、特に今後実施されるであろう Drupal 7 から Drupal 8 へのバージョンアップはこれまで以上の大きな変化になると言われています。私も、自身が開発した Drupal 7 用 module を Drupal 8(8.0-dev)へと対応させてみた ところ、それを実感させられました。それに対して、原文は、上記のような構成により、新バージョンへの移行に伴う開発者の技術的・心理的障壁を低減するとともに、その合理性・必然性・可能性を提示することで、開発者のコミットメントを高め、開発者をより強く動機付けるものとなっています。TAG 1 :: DIARY :: AROUND THE CORNER :: Drupal
ARCHIVES 201406