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

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

Upload: ericsagnes

Post on 07-Jul-2015

496 views

Category:

Documents


5 download

DESCRIPTION

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

TRANSCRIPT

Page 1: eZ Publish 2012年4月勉強会 - eZ Publish設計ベストプラクティス

   

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

Page 2: eZ Publish 2012年4月勉強会 - eZ Publish設計ベストプラクティス

   

ご挨拶

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

Page 3: eZ Publish 2012年4月勉強会 - eZ Publish設計ベストプラクティス

   

CMS を理解する

Page 4: eZ Publish 2012年4月勉強会 - eZ Publish設計ベストプラクティス

   

CMS を理解する

● CMS とは?

Page 5: eZ Publish 2012年4月勉強会 - eZ Publish設計ベストプラクティス

   

CMS を理解する

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

Page 6: eZ Publish 2012年4月勉強会 - eZ Publish設計ベストプラクティス

   

CMS を理解する

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

Page 7: eZ Publish 2012年4月勉強会 - eZ Publish設計ベストプラクティス

   

コンテンツとは?

● ウェブページ● ユーザ

Page 8: eZ Publish 2012年4月勉強会 - eZ Publish設計ベストプラクティス

   

コンテンツとは?

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

Page 9: eZ Publish 2012年4月勉強会 - eZ Publish設計ベストプラクティス

   

コンテンツとは?

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

Page 10: eZ Publish 2012年4月勉強会 - eZ Publish設計ベストプラクティス

   

コンテンツとは?

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

Page 11: eZ Publish 2012年4月勉強会 - eZ Publish設計ベストプラクティス

   

管理とは?

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

Page 12: eZ Publish 2012年4月勉強会 - eZ Publish設計ベストプラクティス

   

管理の目的

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

Page 13: eZ Publish 2012年4月勉強会 - eZ Publish設計ベストプラクティス

   

ニーズを理解する

● システムのニーズは?

Page 14: eZ Publish 2012年4月勉強会 - eZ Publish設計ベストプラクティス

   

ニーズを理解する

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

Page 15: eZ Publish 2012年4月勉強会 - eZ Publish設計ベストプラクティス

   

ニーズを理解する

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

Page 16: eZ Publish 2012年4月勉強会 - eZ Publish設計ベストプラクティス

   

ニーズを理解する

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

Page 17: eZ Publish 2012年4月勉強会 - eZ Publish設計ベストプラクティス

   

eZ Publish を理解する

Page 18: eZ Publish 2012年4月勉強会 - eZ Publish設計ベストプラクティス

   

eZ Publish を理解する

● eZ Publish は CMS

Page 19: eZ Publish 2012年4月勉強会 - eZ Publish設計ベストプラクティス

   

eZ Publish を理解する

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

Page 20: eZ Publish 2012年4月勉強会 - eZ Publish設計ベストプラクティス

   

eZ Publish を理解する

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

Page 21: eZ Publish 2012年4月勉強会 - eZ Publish設計ベストプラクティス

   

eZ Publish を理解する

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

Page 22: eZ Publish 2012年4月勉強会 - eZ Publish設計ベストプラクティス

   

eZ Publish を理解する

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

Page 23: eZ Publish 2012年4月勉強会 - eZ Publish設計ベストプラクティス

   

eZ Publish を理解する

● なんでも実装できます

Page 24: eZ Publish 2012年4月勉強会 - eZ Publish設計ベストプラクティス

   

eZ Publish を理解する

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

Page 25: eZ Publish 2012年4月勉強会 - eZ Publish設計ベストプラクティス

   

eZ に向いてる案件

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

Page 26: eZ Publish 2012年4月勉強会 - eZ Publish設計ベストプラクティス

   

eZ に向いてる案件

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

Page 27: eZ Publish 2012年4月勉強会 - eZ Publish設計ベストプラクティス

   

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

Page 28: eZ Publish 2012年4月勉強会 - eZ Publish設計ベストプラクティス

   

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

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

Page 29: eZ Publish 2012年4月勉強会 - eZ Publish設計ベストプラクティス

   

ポイント

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

Page 30: eZ Publish 2012年4月勉強会 - eZ Publish設計ベストプラクティス

   

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

Page 31: eZ Publish 2012年4月勉強会 - eZ Publish設計ベストプラクティス

   

コンテンツクラスの設計

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

Page 32: eZ Publish 2012年4月勉強会 - eZ Publish設計ベストプラクティス

   

コンテンツクラスの設計

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

Page 33: eZ Publish 2012年4月勉強会 - eZ Publish設計ベストプラクティス

   

コンテンツ構造の設計

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

Page 34: eZ Publish 2012年4月勉強会 - eZ Publish設計ベストプラクティス

   

イベントサイトの例

Page 35: eZ Publish 2012年4月勉強会 - eZ Publish設計ベストプラクティス

   

機能大盛サイトの例

Page 36: eZ Publish 2012年4月勉強会 - eZ Publish設計ベストプラクティス

   

ポイント

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

Page 37: eZ Publish 2012年4月勉強会 - eZ Publish設計ベストプラクティス

   

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

Page 38: eZ Publish 2012年4月勉強会 - eZ Publish設計ベストプラクティス

   

ネイティブ機能

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

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

Page 39: eZ Publish 2012年4月勉強会 - eZ Publish設計ベストプラクティス

   

カスタム機能

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

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

Page 40: eZ Publish 2012年4月勉強会 - eZ Publish設計ベストプラクティス

   

ポイント

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

Page 41: eZ Publish 2012年4月勉強会 - eZ Publish設計ベストプラクティス

   

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

Page 42: eZ Publish 2012年4月勉強会 - eZ Publish設計ベストプラクティス

   

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

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

Page 43: eZ Publish 2012年4月勉強会 - eZ Publish設計ベストプラクティス

   

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

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

Page 44: eZ Publish 2012年4月勉強会 - eZ Publish設計ベストプラクティス

   

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

Page 45: eZ Publish 2012年4月勉強会 - eZ Publish設計ベストプラクティス

   

テンプレート

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

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

Page 46: eZ Publish 2012年4月勉強会 - eZ Publish設計ベストプラクティス

   

実装レベル

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

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

Page 47: eZ Publish 2012年4月勉強会 - eZ Publish設計ベストプラクティス

   

ライブラリー

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

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

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

Page 48: eZ Publish 2012年4月勉強会 - eZ Publish設計ベストプラクティス

   

ポイント

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

Page 49: eZ Publish 2012年4月勉強会 - eZ Publish設計ベストプラクティス

   

設計ステップ 5権限設計

Page 50: eZ Publish 2012年4月勉強会 - eZ Publish設計ベストプラクティス

   

ポイント

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

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

Page 51: eZ Publish 2012年4月勉強会 - eZ Publish設計ベストプラクティス

   

まとめ

Page 52: eZ Publish 2012年4月勉強会 - eZ Publish設計ベストプラクティス

   

まとめ

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

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

Page 53: eZ Publish 2012年4月勉強会 - eZ Publish設計ベストプラクティス

   

まとめ

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

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

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

Page 54: eZ Publish 2012年4月勉強会 - eZ Publish設計ベストプラクティス

   

質問