2009年10月20日火曜日

Liferay Portal 5.2 システム管理者本のレビュー(の紹介)


[From Open4Dev - Piergiorgio Lucidi's Website - Journal - Liferay Portal 5.2 Systems Development Book Review]

以前、Alfrescoの開発者向け書籍のレビューをご紹介した、Piergiorgio Lucidi氏が『Liferay Portal 5.2 Systems Development Book』のレビューをBlogに投稿していたので、こちらも簡単にご紹介したいと思います。


弊社でもLiferayを使った案件が動いており、キャッチアップのために同書を読もうとしはじめていたところなのでちょうど良かったです。(読後に自分なりのレビューを書くのが本筋だとは思うのですが、そこまでこぎ着けることができるかどうかはまだわかりません)


以下、簡単にまとめてみたいと思います。語学力、読解力、表現力などの問題で、元記事の意図から離れている部分もあるかもしれませんが、ご容赦ください。


全体的な感想



  • 開発者向けのリファレンスとして使える書籍である。特にポートレットのカスタマイズについては。


  • Javaのソースコード中心の説明であるためシステム管理者には向かない。


  • JSR-286の解説が充実している。


  • しかしその他のMVCフレームワークベースのポートレット開発についてのフォローには不足が感じられる。


各章の概要と感想



  • 1章、「Liferayのフレームワークとアーキテクチャの紹介」は、機能概要や各種標準規格、カスタマイズに利用できる拡張点の列挙などで構成されている。


  • 2章、「JSR-286の活用」は、JSR-286ポートレットの開発に必要な情報が網羅され、他のポートレットコンテナ向けの開発にも適用できる内容になっている。


  • 3章、「拡張環境の利用」は、開発環境のセットアップ手順を説明している。他のエンタープライズオープンソース製品に比べLiferayの開発環境はセッティングが難しいためこの章は非常に役に立つ。


  • 4章、「Strutsポートレットの体験」は、StrutsブリッジやLiferayのライブラリを使ったポートレットの作成方法を説明している。一般の開発者はStrutsのポートレットにはあまり興味がないんじゃないかと思う。


  • 5章、「ページの管理」は、Liferayの標準ポートレットを拡張する方法が説明されている。Strutsブリッジの理解が必須となる。この章は例が豊富である。


  • 6章、「WYSIWYGエディタのカスタマイズ」は、エディタなどの個別機能の拡張方法を説明している。この章を読むとLiferayの限界、のようなものが見えてくるように思う。ポータルのフレームワーク、というにはここで取り扱われる拡張の方法はトリッキーでわかりづらい。ヘルパ類やAPIを組み合わせるというよりは具体的なロジックをソース上で追いかける必要がある。


  • 7章、「CMS、WCMとしての利用」も、APIや標準規格によらない内容になっている。Liferayライブラリの特定の要素の利用方法を直接学んでいく形式である。ソースコードが多すぎるし、過度に製品に依存した内容になっていると思われる。


  • 8章、「パーソナライズコミュニティの構築」は、コミュニティ機能の拡張方法を説明している。UGCサイトの構築方法を知ることができる。基本的なポータル機能を拡張したい開発者はこの章も読んでおく必要がある。


  • 9章、「レイアウトテンプレートとテーマの開発」は、カスタムレイアウトの作成方法を説明している。レイアウトをいじりたい場合は他のポートレット製品でも似たような手順を踏む必要がある。


  • 10章、「ソーシャルオフィスの構築」は、SVNからソーシャルポートレットを入手してそれをカスタマイズするという手順で進められる。ユーザプロフィールなどのソーシャルオフィス構築に必要そうな機能の実装方法が理解できる。


  • 11章、「ステージングとパブリッシング」は、WCMコンポーネントによるワークフローの基本を説明している。カスタマイズの方法も理解できるようになっている。ステージングの機構についてとても良い説明がなされている。


  • 12章、「Common APIの利用」は、具体例をともなったAPIの紹介記事になっている。Solr、Terracotta、SharePointとの連携など。しかし、記述の深さが十分でなく、紹介されているAPIも断片的であるように思う。


(文責 Ishii Akinori IT-Coordinator)