SlideShare a Scribd company logo
1 of 54
Download to read offline
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 はとても重要!
    ●
        再利用できるエクステンションを作って、これ
        からのプロジェクトをさらに早く



                     
まとめ
    ●
        開発側を忘れない、
        ”急げば回れ”
        わかりやすさとデバッグは何よりも大事
    ●
        運用側を忘れない、
        できるだけ苦労させない(自動化)
        できるだけ失敗させない(権限)
    ●
        見る側を忘れない、
        パーフォマンスはわすれない
        キャッシュはしっかり設定するもの
                   
質問




     

More Related Content

What's hot

WebStormでできること
WebStormでできることWebStormでできること
WebStormでできることkamiyam .
 
リレーショナルデータベースとの上手な付き合い方
リレーショナルデータベースとの上手な付き合い方リレーショナルデータベースとの上手な付き合い方
リレーショナルデータベースとの上手な付き合い方Mikiya Okuno
 
XPagesDay2013 【B-4】 Dojo 徹底解剖! ~ XPages で Dojo を有効活用するには ~
XPagesDay2013 【B-4】 Dojo 徹底解剖! ~ XPages で Dojo を有効活用するには ~XPagesDay2013 【B-4】 Dojo 徹底解剖! ~ XPages で Dojo を有効活用するには ~
XPagesDay2013 【B-4】 Dojo 徹底解剖! ~ XPages で Dojo を有効活用するには ~Atsushi Ono
 
XPagesDay 2014【B 1】最新のモバイル ui を瞬時に作成 〜x controlsのご紹介〜
XPagesDay 2014【B 1】最新のモバイル ui を瞬時に作成 〜x controlsのご紹介〜XPagesDay 2014【B 1】最新のモバイル ui を瞬時に作成 〜x controlsのご紹介〜
XPagesDay 2014【B 1】最新のモバイル ui を瞬時に作成 〜x controlsのご紹介〜Mitsuru Katoh
 
リレーショナルデータベースとの上手な付き合い方 long version
リレーショナルデータベースとの上手な付き合い方 long version リレーショナルデータベースとの上手な付き合い方 long version
リレーショナルデータベースとの上手な付き合い方 long version Mikiya Okuno
 
XPages Day 2013 [B-3] XPages開発を始める Notes技術者のためのWeb技術概論
XPages Day 2013 [B-3] XPages開発を始める Notes技術者のためのWeb技術概論XPages Day 2013 [B-3] XPages開発を始める Notes技術者のためのWeb技術概論
XPages Day 2013 [B-3] XPages開発を始める Notes技術者のためのWeb技術概論賢次 海老原
 
某rss収集アプリ
某rss収集アプリ某rss収集アプリ
某rss収集アプリ一希 大田
 
日曜プログラマーが
1週間くらいで通信対戦ゲームを作ってみた
日曜プログラマーが
1週間くらいで通信対戦ゲームを作ってみた日曜プログラマーが
1週間くらいで通信対戦ゲームを作ってみた
日曜プログラマーが
1週間くらいで通信対戦ゲームを作ってみたYuusuke Takeuchi
 
とあるギークのキーボード遍歴
とあるギークのキーボード遍歴とあるギークのキーボード遍歴
とあるギークのキーボード遍歴Mikiya Okuno
 
PHPerのための(不遇に負けない)Selenium入門 @ FuelPHP&CodeIgniter ユーザの集い #9
PHPerのための(不遇に負けない)Selenium入門 @ FuelPHP&CodeIgniter ユーザの集い #9PHPerのための(不遇に負けない)Selenium入門 @ FuelPHP&CodeIgniter ユーザの集い #9
PHPerのための(不遇に負けない)Selenium入門 @ FuelPHP&CodeIgniter ユーザの集い #9Hiroshi Toda
 
短期間+大規模ゲーム開発でも破綻しないHTML・SCSS
短期間+大規模ゲーム開発でも破綻しないHTML・SCSS短期間+大規模ゲーム開発でも破綻しないHTML・SCSS
短期間+大規模ゲーム開発でも破綻しないHTML・SCSSShogo Iwano
 
TypeScript x Bot Framework
TypeScript x Bot FrameworkTypeScript x Bot Framework
TypeScript x Bot FrameworkKazumi IWANAGA
 
Mtcafe tokyo 2013_spring_okuwaki
Mtcafe tokyo 2013_spring_okuwakiMtcafe tokyo 2013_spring_okuwaki
Mtcafe tokyo 2013_spring_okuwakiTomohiro Okuwaki
 
JS で Bot つくろうぜ! ~刮目せよ!、これがMSのBot Framewok だ!!~
JS で Bot つくろうぜ! ~刮目せよ!、これがMSのBot Framewok だ!!~JS で Bot つくろうぜ! ~刮目せよ!、これがMSのBot Framewok だ!!~
JS で Bot つくろうぜ! ~刮目せよ!、これがMSのBot Framewok だ!!~Osamu Monoe
 
GUI アプリケーションにおける MVC
GUI アプリケーションにおける MVCGUI アプリケーションにおける MVC
GUI アプリケーションにおける MVCYu Nobuoka
 
Web development fundamental_v2
Web development fundamental_v2Web development fundamental_v2
Web development fundamental_v2Takuya Kumagai
 
はじめよう TypeScript - 入門から実践まで - 素の JavaScript とはさようなら!
はじめよう TypeScript - 入門から実践まで - 素の JavaScript とはさようなら!はじめよう TypeScript - 入門から実践まで - 素の JavaScript とはさようなら!
はじめよう TypeScript - 入門から実践まで - 素の JavaScript とはさようなら!Jun-ichi Sakamoto
 

What's hot (19)

WebStormでできること
WebStormでできることWebStormでできること
WebStormでできること
 
リレーショナルデータベースとの上手な付き合い方
リレーショナルデータベースとの上手な付き合い方リレーショナルデータベースとの上手な付き合い方
リレーショナルデータベースとの上手な付き合い方
 
XPagesDay2013 【B-4】 Dojo 徹底解剖! ~ XPages で Dojo を有効活用するには ~
XPagesDay2013 【B-4】 Dojo 徹底解剖! ~ XPages で Dojo を有効活用するには ~XPagesDay2013 【B-4】 Dojo 徹底解剖! ~ XPages で Dojo を有効活用するには ~
XPagesDay2013 【B-4】 Dojo 徹底解剖! ~ XPages で Dojo を有効活用するには ~
 
XPagesDay 2014【B 1】最新のモバイル ui を瞬時に作成 〜x controlsのご紹介〜
XPagesDay 2014【B 1】最新のモバイル ui を瞬時に作成 〜x controlsのご紹介〜XPagesDay 2014【B 1】最新のモバイル ui を瞬時に作成 〜x controlsのご紹介〜
XPagesDay 2014【B 1】最新のモバイル ui を瞬時に作成 〜x controlsのご紹介〜
 
リレーショナルデータベースとの上手な付き合い方 long version
リレーショナルデータベースとの上手な付き合い方 long version リレーショナルデータベースとの上手な付き合い方 long version
リレーショナルデータベースとの上手な付き合い方 long version
 
XPages Day 2013 [B-3] XPages開発を始める Notes技術者のためのWeb技術概論
XPages Day 2013 [B-3] XPages開発を始める Notes技術者のためのWeb技術概論XPages Day 2013 [B-3] XPages開発を始める Notes技術者のためのWeb技術概論
XPages Day 2013 [B-3] XPages開発を始める Notes技術者のためのWeb技術概論
 
某rss収集アプリ
某rss収集アプリ某rss収集アプリ
某rss収集アプリ
 
日曜プログラマーが
1週間くらいで通信対戦ゲームを作ってみた
日曜プログラマーが
1週間くらいで通信対戦ゲームを作ってみた日曜プログラマーが
1週間くらいで通信対戦ゲームを作ってみた
日曜プログラマーが
1週間くらいで通信対戦ゲームを作ってみた
 
とあるギークのキーボード遍歴
とあるギークのキーボード遍歴とあるギークのキーボード遍歴
とあるギークのキーボード遍歴
 
PHPerのための(不遇に負けない)Selenium入門 @ FuelPHP&CodeIgniter ユーザの集い #9
PHPerのための(不遇に負けない)Selenium入門 @ FuelPHP&CodeIgniter ユーザの集い #9PHPerのための(不遇に負けない)Selenium入門 @ FuelPHP&CodeIgniter ユーザの集い #9
PHPerのための(不遇に負けない)Selenium入門 @ FuelPHP&CodeIgniter ユーザの集い #9
 
短期間+大規模ゲーム開発でも破綻しないHTML・SCSS
短期間+大規模ゲーム開発でも破綻しないHTML・SCSS短期間+大規模ゲーム開発でも破綻しないHTML・SCSS
短期間+大規模ゲーム開発でも破綻しないHTML・SCSS
 
TypeScript x Bot Framework
TypeScript x Bot FrameworkTypeScript x Bot Framework
TypeScript x Bot Framework
 
Mtcafe tokyo 2013_spring_okuwaki
Mtcafe tokyo 2013_spring_okuwakiMtcafe tokyo 2013_spring_okuwaki
Mtcafe tokyo 2013_spring_okuwaki
 
TypeScript 独習会
TypeScript 独習会TypeScript 独習会
TypeScript 独習会
 
JS で Bot つくろうぜ! ~刮目せよ!、これがMSのBot Framewok だ!!~
JS で Bot つくろうぜ! ~刮目せよ!、これがMSのBot Framewok だ!!~JS で Bot つくろうぜ! ~刮目せよ!、これがMSのBot Framewok だ!!~
JS で Bot つくろうぜ! ~刮目せよ!、これがMSのBot Framewok だ!!~
 
jQuery 対応ライブラリと TypeScript
jQuery 対応ライブラリと TypeScriptjQuery 対応ライブラリと TypeScript
jQuery 対応ライブラリと TypeScript
 
GUI アプリケーションにおける MVC
GUI アプリケーションにおける MVCGUI アプリケーションにおける MVC
GUI アプリケーションにおける MVC
 
Web development fundamental_v2
Web development fundamental_v2Web development fundamental_v2
Web development fundamental_v2
 
はじめよう TypeScript - 入門から実践まで - 素の JavaScript とはさようなら!
はじめよう TypeScript - 入門から実践まで - 素の JavaScript とはさようなら!はじめよう TypeScript - 入門から実践まで - 素の JavaScript とはさようなら!
はじめよう TypeScript - 入門から実践まで - 素の JavaScript とはさようなら!
 

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

eZ Publish 2012年5月勉強会 - サイトアクセス
eZ Publish 2012年5月勉強会 - サイトアクセスeZ Publish 2012年5月勉強会 - サイトアクセス
eZ Publish 2012年5月勉強会 - サイトアクセスericsagnes
 
Intalio japan special cloud workshop
Intalio japan special cloud workshopIntalio japan special cloud workshop
Intalio japan special cloud workshopDaisuke Sugai
 
concrete5で社内システムのお話し
concrete5で社内システムのお話しconcrete5で社内システムのお話し
concrete5で社内システムのお話しTao Sasaki
 
Eclipse xtext 紹介
Eclipse xtext 紹介Eclipse xtext 紹介
Eclipse xtext 紹介Akira Tanaka
 
eZ Publish 2012年7月勉強会 - 権限システム
eZ Publish 2012年7月勉強会 - 権限システムeZ Publish 2012年7月勉強会 - 権限システム
eZ Publish 2012年7月勉強会 - 権限システムericsagnes
 
2012 05-19第44回cocoa勉強会発表資料
2012 05-19第44回cocoa勉強会発表資料2012 05-19第44回cocoa勉強会発表資料
2012 05-19第44回cocoa勉強会発表資料OCHI Shuji
 
20140924 mt cloud_handson_seminar
20140924 mt cloud_handson_seminar20140924 mt cloud_handson_seminar
20140924 mt cloud_handson_seminarSix Apart
 
エンジニアの為のWordPress入門 〜WordPressはWebAppプラットフォームです〜
エンジニアの為のWordPress入門 〜WordPressはWebAppプラットフォームです〜エンジニアの為のWordPress入門 〜WordPressはWebAppプラットフォームです〜
エンジニアの為のWordPress入門 〜WordPressはWebAppプラットフォームです〜Yuji Nojima
 
空のテンプレートから始めるWindows 8 ストアアプリ
空のテンプレートから始めるWindows 8 ストアアプリ空のテンプレートから始めるWindows 8 ストアアプリ
空のテンプレートから始めるWindows 8 ストアアプリAkira Hatsune
 
ソーシャルコンテンツマネジメント
ソーシャルコンテンツマネジメントソーシャルコンテンツマネジメント
ソーシャルコンテンツマネジメントAkinori Ishii
 
とあるメーカーのRedmine活用事例
とあるメーカーのRedmine活用事例とあるメーカーのRedmine活用事例
とあるメーカーのRedmine活用事例agileware_jp
 
『これからの.NETアプリケーション開発』セミナー .NET用アプリケーション フレームワーク Open 棟梁 概説
『これからの.NETアプリケーション開発』セミナー .NET用アプリケーション フレームワーク Open 棟梁 概説『これからの.NETアプリケーション開発』セミナー .NET用アプリケーション フレームワーク Open 棟梁 概説
『これからの.NETアプリケーション開発』セミナー .NET用アプリケーション フレームワーク Open 棟梁 概説Daisuke Nishino
 
Contao Open Source CMS / 3.3と、その向こう
Contao Open Source CMS / 3.3と、その向こうContao Open Source CMS / 3.3と、その向こう
Contao Open Source CMS / 3.3と、その向こうTakahiro Kambe
 
ここが変わったTizen sdk2.0alpha
ここが変わったTizen sdk2.0alphaここが変わったTizen sdk2.0alpha
ここが変わったTizen sdk2.0alphaHiroshi Sakate
 
楽天がCloud foundryを選んだ理由
楽天がCloud foundryを選んだ理由楽天がCloud foundryを選んだ理由
楽天がCloud foundryを選んだ理由Rakuten Group, Inc.
 
地方企業がソーシャルゲーム開発を成功させるための10のポイント
地方企業がソーシャルゲーム開発を成功させるための10のポイント地方企業がソーシャルゲーム開発を成功させるための10のポイント
地方企業がソーシャルゲーム開発を成功させるための10のポイントKentaro Matsui
 
ゼロからのプログラミングRails講座 Codeanywhere版
ゼロからのプログラミングRails講座 Codeanywhere版ゼロからのプログラミングRails講座 Codeanywhere版
ゼロからのプログラミングRails講座 Codeanywhere版DIVE INTO CODE Corp.
 
rails 管理画面作成gem Typus解説
rails 管理画面作成gem Typus解説rails 管理画面作成gem Typus解説
rails 管理画面作成gem Typus解説baban ba-n
 
DataEngConf NYC’18 セッションサマリー #2
DataEngConf NYC’18 セッションサマリー #2DataEngConf NYC’18 セッションサマリー #2
DataEngConf NYC’18 セッションサマリー #2gree_tech
 

Similar to eZ Publish 2012年4月勉強会 - eZ Publish設計ベストプラクティス (20)

eZ Publish 2012年5月勉強会 - サイトアクセス
eZ Publish 2012年5月勉強会 - サイトアクセスeZ Publish 2012年5月勉強会 - サイトアクセス
eZ Publish 2012年5月勉強会 - サイトアクセス
 
Intalio japan special cloud workshop
Intalio japan special cloud workshopIntalio japan special cloud workshop
Intalio japan special cloud workshop
 
concrete5で社内システムのお話し
concrete5で社内システムのお話しconcrete5で社内システムのお話し
concrete5で社内システムのお話し
 
Eclipse xtext 紹介
Eclipse xtext 紹介Eclipse xtext 紹介
Eclipse xtext 紹介
 
eZ Publish 2012年7月勉強会 - 権限システム
eZ Publish 2012年7月勉強会 - 権限システムeZ Publish 2012年7月勉強会 - 権限システム
eZ Publish 2012年7月勉強会 - 権限システム
 
2012 05-19第44回cocoa勉強会発表資料
2012 05-19第44回cocoa勉強会発表資料2012 05-19第44回cocoa勉強会発表資料
2012 05-19第44回cocoa勉強会発表資料
 
20140924 mt cloud_handson_seminar
20140924 mt cloud_handson_seminar20140924 mt cloud_handson_seminar
20140924 mt cloud_handson_seminar
 
エンジニアの為のWordPress入門 〜WordPressはWebAppプラットフォームです〜
エンジニアの為のWordPress入門 〜WordPressはWebAppプラットフォームです〜エンジニアの為のWordPress入門 〜WordPressはWebAppプラットフォームです〜
エンジニアの為のWordPress入門 〜WordPressはWebAppプラットフォームです〜
 
空のテンプレートから始めるWindows 8 ストアアプリ
空のテンプレートから始めるWindows 8 ストアアプリ空のテンプレートから始めるWindows 8 ストアアプリ
空のテンプレートから始めるWindows 8 ストアアプリ
 
ソーシャルコンテンツマネジメント
ソーシャルコンテンツマネジメントソーシャルコンテンツマネジメント
ソーシャルコンテンツマネジメント
 
とあるメーカーのRedmine活用事例
とあるメーカーのRedmine活用事例とあるメーカーのRedmine活用事例
とあるメーカーのRedmine活用事例
 
『これからの.NETアプリケーション開発』セミナー .NET用アプリケーション フレームワーク Open 棟梁 概説
『これからの.NETアプリケーション開発』セミナー .NET用アプリケーション フレームワーク Open 棟梁 概説『これからの.NETアプリケーション開発』セミナー .NET用アプリケーション フレームワーク Open 棟梁 概説
『これからの.NETアプリケーション開発』セミナー .NET用アプリケーション フレームワーク Open 棟梁 概説
 
Contao Open Source CMS / 3.3と、その向こう
Contao Open Source CMS / 3.3と、その向こうContao Open Source CMS / 3.3と、その向こう
Contao Open Source CMS / 3.3と、その向こう
 
ここが変わったTizen sdk2.0alpha
ここが変わったTizen sdk2.0alphaここが変わったTizen sdk2.0alpha
ここが変わったTizen sdk2.0alpha
 
楽天がCloud foundryを選んだ理由
楽天がCloud foundryを選んだ理由楽天がCloud foundryを選んだ理由
楽天がCloud foundryを選んだ理由
 
地方企業がソーシャルゲーム開発を成功させるための10のポイント
地方企業がソーシャルゲーム開発を成功させるための10のポイント地方企業がソーシャルゲーム開発を成功させるための10のポイント
地方企業がソーシャルゲーム開発を成功させるための10のポイント
 
ゼロからのプログラミングRails講座 Codeanywhere版
ゼロからのプログラミングRails講座 Codeanywhere版ゼロからのプログラミングRails講座 Codeanywhere版
ゼロからのプログラミングRails講座 Codeanywhere版
 
rails 管理画面作成gem Typus解説
rails 管理画面作成gem Typus解説rails 管理画面作成gem Typus解説
rails 管理画面作成gem Typus解説
 
DataEngConf NYC’18 セッションサマリー #2
DataEngConf NYC’18 セッションサマリー #2DataEngConf NYC’18 セッションサマリー #2
DataEngConf NYC’18 セッションサマリー #2
 
Djangoのススメ
DjangoのススメDjangoのススメ
Djangoのススメ
 

More from ericsagnes

eZ Publish勉強会2013年6月「best practices」
eZ Publish勉強会2013年6月「best practices」eZ Publish勉強会2013年6月「best practices」
eZ Publish勉強会2013年6月「best practices」ericsagnes
 
eZ publish勉強会2013年4月「easy cmsエクステンションの紹介」
eZ publish勉強会2013年4月「easy cmsエクステンションの紹介」eZ publish勉強会2013年4月「easy cmsエクステンションの紹介」
eZ publish勉強会2013年4月「easy cmsエクステンションの紹介」ericsagnes
 
eZ Publish勉強会5月「eZ Find」
eZ Publish勉強会5月「eZ Find」eZ Publish勉強会5月「eZ Find」
eZ Publish勉強会5月「eZ Find」ericsagnes
 
eZ Publish勉強会10月〜Wysiwygエディター〜
eZ Publish勉強会10月〜Wysiwygエディター〜eZ Publish勉強会10月〜Wysiwygエディター〜
eZ Publish勉強会10月〜Wysiwygエディター〜ericsagnes
 
eZ Publish勉強会9月〜テンプレート言語〜
eZ Publish勉強会9月〜テンプレート言語〜eZ Publish勉強会9月〜テンプレート言語〜
eZ Publish勉強会9月〜テンプレート言語〜ericsagnes
 
eZ Publish 2012年8月勉強会 - テンプレートオーバーライド
eZ Publish 2012年8月勉強会 - テンプレートオーバーライドeZ Publish 2012年8月勉強会 - テンプレートオーバーライド
eZ Publish 2012年8月勉強会 - テンプレートオーバーライドericsagnes
 

More from ericsagnes (6)

eZ Publish勉強会2013年6月「best practices」
eZ Publish勉強会2013年6月「best practices」eZ Publish勉強会2013年6月「best practices」
eZ Publish勉強会2013年6月「best practices」
 
eZ publish勉強会2013年4月「easy cmsエクステンションの紹介」
eZ publish勉強会2013年4月「easy cmsエクステンションの紹介」eZ publish勉強会2013年4月「easy cmsエクステンションの紹介」
eZ publish勉強会2013年4月「easy cmsエクステンションの紹介」
 
eZ Publish勉強会5月「eZ Find」
eZ Publish勉強会5月「eZ Find」eZ Publish勉強会5月「eZ Find」
eZ Publish勉強会5月「eZ Find」
 
eZ Publish勉強会10月〜Wysiwygエディター〜
eZ Publish勉強会10月〜Wysiwygエディター〜eZ Publish勉強会10月〜Wysiwygエディター〜
eZ Publish勉強会10月〜Wysiwygエディター〜
 
eZ Publish勉強会9月〜テンプレート言語〜
eZ Publish勉強会9月〜テンプレート言語〜eZ Publish勉強会9月〜テンプレート言語〜
eZ Publish勉強会9月〜テンプレート言語〜
 
eZ Publish 2012年8月勉強会 - テンプレートオーバーライド
eZ Publish 2012年8月勉強会 - テンプレートオーバーライドeZ Publish 2012年8月勉強会 - テンプレートオーバーライド
eZ Publish 2012年8月勉強会 - テンプレートオーバーライド
 

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

  • 1. eZ Publish 設計ベストプラクティス 〜案件成功の道〜    
  • 2. ご挨拶 ● サニエ エリック ● twitter/identica : @ericsagnes ● サイト http://clina.jp/    
  • 4. CMS を理解する ● CMS とは?    
  • 5. CMS を理解する ● CMS とは? ● コンテンツ管理システム    
  • 6. CMS を理解する ● CMS とは? ● コンテンツ管理システム ● なら、コンテンツとは?    
  • 7. コンテンツとは? ● ウェブページ ● ユーザ    
  • 8. コンテンツとは? ● ウェブページ ● ユーザ ● … 製作側の視点    
  • 9. コンテンツとは? ● クライアントからの視点なら    
  • 10. コンテンツとは? ● 商品 ● 書籍 ● 動物 ● イベント ● 航空券 ● 設備 ● 動画   ● 。。。  
  • 11. 管理とは? ● 目的があるから管理をする ● その目的はシステムそれぞれ    
  • 12. 管理の目的 ● コンテンツを見つけやすくする ● コンテンツ読み込みにアクセスを制限する ● コンテンツ書き込みにアクセスを制限する ● 認証ワークフローを設定する ● 製作ワークフローを設定する ● コンテンツを構造化する ● コンテンツを簡単に追加できる ● など    
  • 13. ニーズを理解する ● システムのニーズは?    
  • 14. ニーズを理解する ● システムのニーズは? ● 仕様書でまとめられたニーズだけじゃない    
  • 15. ニーズを理解する ● 三手先を読む ● これからのニーズを予想する ● 新機能が開発しやすい ● 冗長化に対応できる ● 組織変更に対応できる ● 。。。    
  • 16. ニーズを理解する ● クライアントのニーズは変わるもの! ● 仕様変更は覚悟の上! ● 適応性と柔軟性は神の贈り物!    
  • 18. eZ Publish を理解する ● eZ Publish は CMS    
  • 19. eZ Publish を理解する ● eZ Publish は CMS ● でありながらフレームワーク( CMF )    
  • 20. eZ Publish を理解する ● eZ Publish は CMS ● でありながらフレームワーク( CMF ) ● 標準機能が多い!(多すぎ?)    
  • 21. eZ Publish を理解する ● eZ Publish は CMS ● でありながらフレームワーク( CMF ) ● 標準機能が多い!(多すぎ?) ● 柔軟性豊か!    
  • 22. eZ Publish を理解する ● eZ Publish は CMS ● でありながらフレームワーク( CMF ) ● 標準機能が多い!(多すぎ?) ● 柔軟性豊か! ● でもドキュメントが少ない。。。 (日本語だとほぼない)    
  • 23. eZ Publish を理解する ● なんでも実装できます    
  • 24. eZ Publish を理解する ● なんでも実装できます ● だけど同じコストで実装でません    
  • 25. eZ に向いてる案件 ● 進化するシステム ● 特殊な機能が必要なシステム ● システム連動が必要なシステム ● イントラネット    
  • 26. eZ に向いてる案件 ● 進化するシステム ● 特殊な機能が必要なシステム ● システム連動が必要なシステム ● イントラネット ● コーポレートサイトは eZ Webin で秒殺    
  • 27. 設計ステップ1 必要機能をリストアップする    
  • 28. 必要機能をリストアップする ● マルチサイト ● 多言語 ● ワークフロー ● ユーザ組織 ● 権限 ● コンテンツタイプ(コンテンツクラス) ● 。。。    
  • 29. ポイント ● できるだけ汎用的にまとめる ● 機能をカテゴリわけする    
  • 30. 設計ステップ 2 サイト構造    
  • 31. コンテンツクラスの設計 ● とても大事なステップ! ● パフォーマンス、運用、適応性に影響する ● システムの基盤になる    
  • 32. コンテンツクラスの設計 ● クラスの切り分け ● 属性のデータタイプ ● 新データタイプが必要?    
  • 33. コンテンツ構造の設計 ● 親子関係 ● 関連関係 ● 固定コンテンツ ● 運用コンテンツ ● バーチャルコンテンツ ● セクション    
  • 36. ポイント ● 運用の負担をできるだけ下げる ● simple is best! ● 関連属性を有効的に使う ● セクションでコンテンツクラスを再利用 ● 自動化できるものは自動化する!    
  • 37. 設計ステップ 3 ネイティブ機能とカスタム機能    
  • 38. ネイティブ機能 ● eZ Publish には豊富な標準機能 ● ドキュメントされてない機能もあります !? ● ネイティブ機能はしっかりテストされています ● だけどネイティブテンプレートに無駄と古い コードが多い ● GUI や設定ファイルだけで使えるものが多い    
  • 39. カスタム機能 ● コンテンツクラスとテンプレートは必ず ● eZ Publish の標準コードを一切触らないでほと んどの機能を実装できる ● エクステンションベース ● テンプレート言語も拡張できる!! ● eZ Publish API と eZ Components を使える    
  • 40. ポイント ● カスタム機能はコストかかります ● できるだけネイティブ機能で実装する ● カスタム機能は汎用に作って、再利用と機能変 更を楽にする    
  • 41. 設計ステップ 4 エクステンション設計    
  • 42. エクステンションでできる事 ● テンプレート、デザイン ● 設定 ● 翻訳 ● テンプレート言語拡張 ● カーネル機能オーバーライド! ● ほぼすべての標準機能を上書きできます    
  • 43. エクステンションの切り分け ● 汎用デザイン(再利用できる場合) ● デザイン ● 機能 ● テンプレートオペレーター(マイクロ言語)    
  • 45. テンプレート ● テンプレートオーバライド、 カスタムテンプレートビューと セクションでテンプレートを分解する ● =>再利用ができる ● =>テンプレート数は減る ● =>デバグはしやすい    
  • 46. 実装レベル ● テンプレート ● オペレーター ● PHP クラス ● =>テンプレートで 5 行以上の再利用できるロ ジックはオペレーターにする ● =>できるだけ PHP クラスにコードを移す ● =>実装が早い、デバッグは簡単、テンプレー トはわかりやすい、可能性が広がる    
  • 47. ライブラリー ● eZ Components は使える!カスタム CMS まで 作れる ● eZ Publish の autoload 機能で外部ライブラ リーを利用するのは簡単( include 必要無い) ● API ( JSON 、 REST )で外部システムと連動 するのも簡単    
  • 48. ポイント ● 修正とデバッグを忘れない! ● 有効的にエクステンションをわける ● テンプレートはできるだけ簡単に ● eZ Components や外部ライブラリは使う ● 再利用できそうなエクステンションは再利用し やすい様に作る    
  • 49. 設計ステップ 5 権限設計    
  • 50. ポイント ● ロールは組み合わせるもの! ● 再利用できるロールは再利用します ● セクションとサブツリー制限を有効的に使う ● 匿名ユーザは複数できます ● ユーザには必要以上な権限をあげません ● ロールはユーザグループにも、ユーザ単独でつ けれる   ● 一つのユーザは複数のグループに属する可能  
  • 52. まとめ ● eZ の柔軟性と適応性をフールに使って、 開発時間を短くして 進化に対応するシステムを作れる ● ステップ 1 とステップ 2 はとても重要! ● 再利用できるエクステンションを作って、これ からのプロジェクトをさらに早く    
  • 53. まとめ ● 開発側を忘れない、 ”急げば回れ” わかりやすさとデバッグは何よりも大事 ● 運用側を忘れない、 できるだけ苦労させない(自動化) できるだけ失敗させない(権限) ● 見る側を忘れない、 パーフォマンスはわすれない キャッシュはしっかり設定するもの    
  • 54. 質問