Bulblub

【書評】Decoupled Drupal in Practice

February 15, 2019

P2390400

以前このブログでも書いたPreston Soさんの著書を読んだので書評と言うかレビュー的なものを書きます。

Preston Soさんについて

Decoupled Drupalの世界的なリーダーであり、 Decentralized Webや会話形 デザインの専門家でもあります。プレストンは、 Acquia Inc.(アクイア社)でリサー チ・アンド・イノベーションディレクターを務めており、イノベーションセンターである アクイアラボを率い、ネスレやジョージア州政府などのプロジェクトにて次世代の アーキテクチャの開発に貢献しています。 - DrupalCamp DEN Japan 2018 基調講演

Decoupled Drupal in Practiceについて

全6部のかなりボリュームのある内容だったので、各部ごとに含まれる章の見出しリストとコメントを書いていきます。

1.Decoupled Drupal Fundamentals

  1. The Changing Web
  2. The Server Side: From Monolithic to Decoupled CMS
  3. The Client Side: From Static to Dynamic Pages
  4. Decoupled Drupal
  5. Advantages of Decoupled Drupal
  6. Disadvantages of Decoupled Drupal

第1部1,2,3章はDecoupled Drupalの基礎として、Webの利用方法の変革とそれに伴うWeb界隈の多くの人がCMSとして認識しているモノリシックな(コンテンツとプレゼンテーションが一体化)CMSからコンテンツリポジトリ(コンテンツとプレゼンテーションが分離)としてのCMSとJavascriptフレームワークの進化の話だった。またこの中の脚注で出てくる、用語の定義としてHeadless CMSDecoupled CMSとどっちも微妙みたいな話が紹介されているけど、GUI部分が残ってることから僕はDecoupledの方が妥当かなと思った。

4章ではDecoupled CMSとしてのDrupalの話で、3つのタイプ(Fully Decoupled Drupal, Pseudo-Decoupled Drupal, Progressively Decoupled Drupal)の概念が紹介された。Pseudo-Decoupled Drupalは知らなかったんだけど、後で出てくるDecoupled Drupalの欠点を回避するためのキメラみたいな方法だなと思った。

5,6章ではDecoupled Drupalの利点と欠点が紹介され、利点はすでにいろんなところで宣伝されているので目新しいところはなかったが特に欠点については興味深い話ばかりだった。これは実践者じゃないとわからないことが多いと思うので、この部分だけでもこの本を買う価値があるなと思った。Decoupled Drupalを導入すると、ほとんど言っていいほどここ数年進化してきたDrupalのコンテンツ編集機能(レイアウト変更やインライン編集)が使えなくなるというのは目から鱗で、この本の最後の方でやはりコンテンツの編集者側からは不満や不安な声が上がっているとのことだった。これを解決しようとしているのが、Pseudo-Decoupled Drupalだけど疎結合にしたバックエンドとフロントエンドの結合度が上がってしまい、苦しさが増す感じだった。

ちなみにこの章はコードは出てこないので、Drupalを知らないエンジニアでも読めます。全体を俯瞰するのに非常に良かったです。

2.Decoupling Drupal

  1. Decoupling Drupal 8 Core
  2. Decoupling Drupal 8 with Contributed Modules
  3. Authenticating Requests in Drupal 8

ここからコード出ててくるのと手を動かせる部分が出てくるのでDrupalを知っていないとわかりにくいかも。コアモジュールとコントリビュートモジュール(JSON API, RELAXed Web Services, GraphQL)と認証方式の紹介。さらっと書いたけど、今をキャッチアップするのに良かった。Drupalエンジニアは全員読むべし。

3.Consuming and Manipulating Drupal 8

  1. Core REST
  2. Using Views with Core REST
  3. JSON API in Drupal
  4. RELAXed Web Services
  5. GraphQL in Drupal

ここもコードと画面キャプチャ出てくる。どの章も技術ごとに目的や実際の操作法が詳しく書いてあってそれぞれの概要を把握するのに良い。実際に手を動かしたりするのは必要なタイミングで行えばいいしCRUDの部分は飛ばし読みした。

最初RELAXed Web Servicesモジュールの利点とか使いどころがわからなかったけど、CouchDB互換なのでクライアントサイドでPouchDBHoodieを利用しウェブアプリのオフライン対応しやすいと知って興味が出た。GraphQLモジュールから変更を行う部分が削除された話は面白かった。

4.The Decoupled Drupal Ecosystem

  1. API-First Distributions
  2. Software Development Kits and Reference Builds

15章はDecoupled Drupal用にDrupalを改造したディストリビューション特徴と目指す方向の違いを紹介。16章はSDKといくつかのJSフレームワークでのリファレンスビルドの紹介。この中でContenta.jsを知ったけどこれがまた興味深かった。

5.Integration with Consumers

  1. React
  2. React Native
  3. Angular
  4. Vue.js
  5. Ember

コードサンプルで動かすことができる。それぞれのフレームワークは知っていたので必要になったら読めばいいかな。全てJSON APIモジュールを利用したコードだった。

6.Advanced Topics in Decoupled Drupal

  1. The REST Plug-in System
  2. Contributed Modules for Advanced Use Cases
  3. Schemas and Generated Documentation
  4. Caching
  5. The Future of Decoupled Drupal

22,23,24,25章は必要になったら読めばいいと思いつつ興味深かったので結構しっかり読んだ。

最後の26章では現時点のDecoupled Drupalと未来やアイデアについてが、各方面に配慮しつつ書いてある。ここはニュアンス含め是非読んで欲しいです。

まとめ

本書内容とは直接関係ないけど、一言で言ってDrupal規模の巨大OSSを正しくリードするのって大変だなと思った(そういう苦労を文章から端々に感じた)。内容は大満足で、Decoupled Drupalについてそのうちキャッチアップすればいいやと思っていたのでこのタイミングで体系的にかつ俯瞰出来るが非常に良かった。

ただ、技術書とはいえ洋書で言い回しが若干難しい感じだったし、分量も製本版だと520ページ換算で密度も濃かったのでズッシリきた。なので、オススメとしては第1部と最後の26章を読んで、あとは気になるところを読むのがいいと思います。

おまけ

Decoupled Drupalが出てきたように、今現在Drupalの標準とされているものもどんどん変わって行きその中には人によって割と苦痛を伴う変更も増えていく(Composer化や非jQuery化などなど)と思う。その一端としてDrupal8からそれまでコントリビュートモジュール(周辺の技術者が開発)だったものが、コア(本体・本家)に取り込まれて行きよりOpinionatedな側面を増して未来にあるべきCMSの姿を示そうとしているように感じる。その意味で他の新しい技術比較してもDrupalの未来は明るいと思ったし、仕事のツールとしても信頼できるので引き続きDrupalおよびDrupalコミュニティにコミットして行きたいと思う、そんな一冊でした。

Tags:

Tomotsugu Kaneko

Webのフロントエンドからバックエンド、プロトタイピングからプロダクションまで。定額の開発サービスも。詳しくはAboutページで。