ez publish 2012年4月勉強会 - ez publish設計ベストプラクティス

Post on 07-Jul-2015

496 Views

Category:

Documents

5 Downloads

Preview:

Click to see full reader

DESCRIPTION

今回の課題は、「eZ Publishの案件を成功させるベストプラクティス」となります。

TRANSCRIPT

   

eZ Publish 設計ベストプラクティス〜案件成功の道〜

   

ご挨拶

● サニエ エリック● twitter/identica : @ericsagnes● サイト http://clina.jp/

   

CMS を理解する

   

CMS を理解する

● CMS とは?

   

CMS を理解する

● CMS とは?● コンテンツ管理システム

   

CMS を理解する

● CMS とは?● コンテンツ管理システム● なら、コンテンツとは?

   

コンテンツとは?

● ウェブページ● ユーザ

   

コンテンツとは?

● ウェブページ● ユーザ● … 製作側の視点

   

コンテンツとは?

● クライアントからの視点なら

   

コンテンツとは?

● 商品● 書籍● 動物● イベント● 航空券● 設備● 動画● 。。。

   

管理とは?

● 目的があるから管理をする● その目的はシステムそれぞれ

   

管理の目的

● コンテンツを見つけやすくする● コンテンツ読み込みにアクセスを制限する● コンテンツ書き込みにアクセスを制限する● 認証ワークフローを設定する● 製作ワークフローを設定する● コンテンツを構造化する● コンテンツを簡単に追加できる● など

   

ニーズを理解する

● システムのニーズは?

   

ニーズを理解する

● システムのニーズは?● 仕様書でまとめられたニーズだけじゃない

   

ニーズを理解する

● 三手先を読む● これからのニーズを予想する● 新機能が開発しやすい● 冗長化に対応できる● 組織変更に対応できる● 。。。

   

ニーズを理解する

● クライアントのニーズは変わるもの!● 仕様変更は覚悟の上!● 適応性と柔軟性は神の贈り物!

   

eZ Publish を理解する

   

eZ Publish を理解する

● eZ Publish は CMS

   

eZ Publish を理解する

● eZ Publish は CMS● でありながらフレームワーク( CMF )

   

eZ Publish を理解する

● eZ Publish は CMS● でありながらフレームワーク( CMF )● 標準機能が多い!(多すぎ?)

   

eZ Publish を理解する

● eZ Publish は CMS● でありながらフレームワーク( CMF )● 標準機能が多い!(多すぎ?)● 柔軟性豊か!

   

eZ Publish を理解する

● eZ Publish は CMS● でありながらフレームワーク( CMF )● 標準機能が多い!(多すぎ?)● 柔軟性豊か!● でもドキュメントが少ない。。。(日本語だとほぼない)

   

eZ Publish を理解する

● なんでも実装できます

   

eZ Publish を理解する

● なんでも実装できます● だけど同じコストで実装でません

   

eZ に向いてる案件

● 進化するシステム● 特殊な機能が必要なシステム● システム連動が必要なシステム● イントラネット

   

eZ に向いてる案件

● 進化するシステム● 特殊な機能が必要なシステム● システム連動が必要なシステム● イントラネット● コーポレートサイトは eZ Webin で秒殺

   

設計ステップ1必要機能をリストアップする

   

必要機能をリストアップする

● マルチサイト● 多言語● ワークフロー● ユーザ組織● 権限● コンテンツタイプ(コンテンツクラス)● 。。。

   

ポイント

● できるだけ汎用的にまとめる● 機能をカテゴリわけする

   

設計ステップ 2サイト構造

   

コンテンツクラスの設計

● とても大事なステップ!● パフォーマンス、運用、適応性に影響する● システムの基盤になる

   

コンテンツクラスの設計

● クラスの切り分け● 属性のデータタイプ● 新データタイプが必要?

   

コンテンツ構造の設計

● 親子関係● 関連関係● 固定コンテンツ● 運用コンテンツ● バーチャルコンテンツ● セクション

   

イベントサイトの例

   

機能大盛サイトの例

   

ポイント

● 運用の負担をできるだけ下げる● simple is best!● 関連属性を有効的に使う● セクションでコンテンツクラスを再利用● 自動化できるものは自動化する!

   

設計ステップ 3ネイティブ機能とカスタム機能

   

ネイティブ機能

● eZ Publish には豊富な標準機能● ドキュメントされてない機能もあります !?● ネイティブ機能はしっかりテストされています● だけどネイティブテンプレートに無駄と古いコードが多い

● GUI や設定ファイルだけで使えるものが多い

   

カスタム機能

● コンテンツクラスとテンプレートは必ず● eZ Publish の標準コードを一切触らないでほとんどの機能を実装できる

● エクステンションベース● テンプレート言語も拡張できる!!● eZ Publish API と eZ Components を使える

   

ポイント

● カスタム機能はコストかかります● できるだけネイティブ機能で実装する● カスタム機能は汎用に作って、再利用と機能変更を楽にする

   

設計ステップ 4エクステンション設計

   

エクステンションでできる事

● テンプレート、デザイン● 設定● 翻訳● テンプレート言語拡張● カーネル機能オーバーライド!● ほぼすべての標準機能を上書きできます

   

エクステンションの切り分け

● 汎用デザイン(再利用できる場合)● デザイン● 機能● テンプレートオペレーター(マイクロ言語)

   

エクステンションの切り分けの例

   

テンプレート

● テンプレートオーバライド、カスタムテンプレートビューとセクションでテンプレートを分解する

● =>再利用ができる● =>テンプレート数は減る● =>デバグはしやすい

   

実装レベル

● テンプレート● オペレーター● PHP クラス● =>テンプレートで 5行以上の再利用できるロジックはオペレーターにする

● =>できるだけ PHP クラスにコードを移す● =>実装が早い、デバッグは簡単、テンプレートはわかりやすい、可能性が広がる

   

ライブラリー

● eZ Components は使える!カスタム CMS まで作れる

● eZ Publish の autoload 機能で外部ライブラリーを利用するのは簡単( include 必要無い)

● API ( JSON 、 REST )で外部システムと連動するのも簡単

   

ポイント

● 修正とデバッグを忘れない!● 有効的にエクステンションをわける● テンプレートはできるだけ簡単に● eZ Components や外部ライブラリは使う● 再利用できそうなエクステンションは再利用しやすい様に作る

   

設計ステップ 5権限設計

   

ポイント

● ロールは組み合わせるもの!● 再利用できるロールは再利用します● セクションとサブツリー制限を有効的に使う● 匿名ユーザは複数できます● ユーザには必要以上な権限をあげません● ロールはユーザグループにも、ユーザ単独でつけれる

● 一つのユーザは複数のグループに属する可能

   

まとめ

   

まとめ

● eZ の柔軟性と適応性をフールに使って、開発時間を短くして進化に対応するシステムを作れる

● ステップ 1 とステップ 2 はとても重要!● 再利用できるエクステンションを作って、これからのプロジェクトをさらに早く

   

まとめ

● 開発側を忘れない、”急げば回れ”わかりやすさとデバッグは何よりも大事

● 運用側を忘れない、できるだけ苦労させない(自動化)できるだけ失敗させない(権限)

● 見る側を忘れない、パーフォマンスはわすれないキャッシュはしっかり設定するもの

   

質問

top related