Description
Python madeのエンタープライズCMS Ploneは15年の歴史を持ちます。 本講演では、USのPyCon2016におけるCris Ewing (Plone Foundation所属)のキーノート講演"Adaptation in OSS" を日本語で再現し、15年の進化と適応がどのようにPlone5に結実したかをご紹介します。
Abstract
本講演は、Plone FoundationのCris EwingによるPyCon (US) 2016 キーノート講演 "Adaptation in OSS" を日本語で再現するものです。
1. イントロダクション (適応の定義と種類)
これはPythonで作られたオープンソースCMS Ploneとコミュニティについての誕生から現在に至るまでのAdaptation =「適応」の物語です。適応とは、生物の形態が環境の変化に応じて変わることです。このトークではPloneの適応を生物界になぞらえて「擬似適応」「収斂進化(しゅうれんしんか)」「比喩的な意味での適応」という3つに分けてお話します。
2. Ploneの誕生と普及
進化のはじまりは誕生から。前段としてPloneがどのようにして生まれたのかをお話します。
内容は以下ととなります。 - Ploneを支えるミドルウェアZope誕生の経緯 - Zopeのキーとなるアイデア - トラバーサルとオブジェクトパブリッシング - CMFの登場 - Ploneの誕生 - Ploneコミュニティの成長
3. Ploneに訪れた変化
Ploneは広く普及するのと同時にいくつか大きな問題を抱えていました。これらに対応することが後の適応につながりました。
ここでの内容は以下となります。 - そもそもCMSの目的とは何か - Plone の抱えていた問題点 - ウェブ経由でのカスタマイズ(TTW) - TTW との決別 - さらなる問題の顕現とコミュニティの対応
4. 適応を果たしたPlone5
この結果、進化の過程を経て適応を果たしたPlone5が生まれました。その適応の内容とはどのようなものなのか。おもに技術的な面をお話します。
内容は以下になります。
- 擬似適応 - plone.apiのファサードパターンとZCAのアダプターパターン * plone.apiのファサードパターン
plone.api はソフトウェア設計における「ファサード・パターン」の優れた事例です。 このファサードにより クリーンかつモダンで完全にPythonicなプラグインが書けるようになりました!
- Zope Component Architectureのアダプターパターン
ZCAに実装されたデザインパターンのひとつがアダプターパターンです。このデザインパターンはPloneのような大規模で複雑なシステムで有効で、数々の厄介な問題を解決するために役立っています。
- 収斂進化 - オブジェクトパブリッシングの問題への対処
Ploneはアダプターを採用することで、オブジェクトパブリッシングがよりシンプルになり、カスタマイズしやすくなっています。
比喩的な意味での適応 - Diazoによるテーミング
Plone5のテーマは、HTMLレイアウトとCSS、JavaScriptに加えてコンテンツをどこに配置するかを記述したDiazoのルールファイルで構成されています。最近のHTMLフレームワークをPloneに組み込むことに何ら問題はありません。
実際にPlone5のテーミングのデモを行います。
5. さいごに
適応の考え方はWebシステムだけに限ったものではありません。このパワフルなコンセプトは他のソフトウェアプロジェクトでも使えるものです。Webの世界は休みなく変化していますが、Ploneはその適応力で将来に置いてもその独自の地位を確保し続けるものと思います。