Yii Framework 2.0 いま求められるRAD標準とは #phpkansai
-
Upload
hisateru-tanaka -
Category
Technology
-
view
2.985 -
download
3
Transcript of Yii Framework 2.0 いま求められるRAD標準とは #phpkansai
![Page 1: Yii Framework 2.0 いま求められるRAD標準とは #phpkansai](https://reader034.fdocuments.net/reader034/viewer/2022042615/55bb0afebb61eb67288b462a/html5/thumbnails/1.jpg)
Yii Framework 2.0いま求められるRAD標準とは
![Page 2: Yii Framework 2.0 いま求められるRAD標準とは #phpkansai](https://reader034.fdocuments.net/reader034/viewer/2022042615/55bb0afebb61eb67288b462a/html5/thumbnails/2.jpg)
たなかひさてる @tanakahisateru
Pinoco developerPHPTAL contributorFirebug translation contributorYii framework userPhpStorm user
フルスタックエンジニア(笑)
![Page 3: Yii Framework 2.0 いま求められるRAD標準とは #phpkansai](https://reader034.fdocuments.net/reader034/viewer/2022042615/55bb0afebb61eb67288b462a/html5/thumbnails/3.jpg)
RAD Rapid Application Development
![Page 4: Yii Framework 2.0 いま求められるRAD標準とは #phpkansai](https://reader034.fdocuments.net/reader034/viewer/2022042615/55bb0afebb61eb67288b462a/html5/thumbnails/4.jpg)
LAMP Linux Apache MySQL P*-lang
![Page 5: Yii Framework 2.0 いま求められるRAD標準とは #phpkansai](https://reader034.fdocuments.net/reader034/viewer/2022042615/55bb0afebb61eb67288b462a/html5/thumbnails/5.jpg)
PHP
スタートアップ インハウス・ツール
SSIのオバケ (HTML埋込みスクリプト)
2000~
![Page 6: Yii Framework 2.0 いま求められるRAD標準とは #phpkansai](https://reader034.fdocuments.net/reader034/viewer/2022042615/55bb0afebb61eb67288b462a/html5/thumbnails/6.jpg)
2006~
PHP
スタートアップ
大規模サービス
インハウス・ツール
エンタープライズ
![Page 7: Yii Framework 2.0 いま求められるRAD標準とは #phpkansai](https://reader034.fdocuments.net/reader034/viewer/2022042615/55bb0afebb61eb67288b462a/html5/thumbnails/7.jpg)
2012~
PHP
超・大規模サービス 超・エンタープライズ
IT資産 = 全企業的情報ソリューション
課題: いかに継続するか
![Page 8: Yii Framework 2.0 いま求められるRAD標準とは #phpkansai](https://reader034.fdocuments.net/reader034/viewer/2022042615/55bb0afebb61eb67288b462a/html5/thumbnails/8.jpg)
と、いう話はしませんまたそれは後のセッションで
![Page 9: Yii Framework 2.0 いま求められるRAD標準とは #phpkansai](https://reader034.fdocuments.net/reader034/viewer/2022042615/55bb0afebb61eb67288b462a/html5/thumbnails/9.jpg)
このセッションの論点は だいたいこのあたりです
PHP
スタートアップ
大規模サービス
インハウス・ツール
エンタープライズ
![Page 10: Yii Framework 2.0 いま求められるRAD標準とは #phpkansai](https://reader034.fdocuments.net/reader034/viewer/2022042615/55bb0afebb61eb67288b462a/html5/thumbnails/10.jpg)
昨今感じるWeb開発のマインド変化
![Page 11: Yii Framework 2.0 いま求められるRAD標準とは #phpkansai](https://reader034.fdocuments.net/reader034/viewer/2022042615/55bb0afebb61eb67288b462a/html5/thumbnails/11.jpg)
以前のニーズ
• 外注使ってでもとにかく早くたくさん作りなさい
• 出資者はどのアイデアが儲かるかわからないから
• ベンチャーは儲からない技術に深入りしないこと
• どうせトラフィックは徐々にしか上がらないよ
![Page 12: Yii Framework 2.0 いま求められるRAD標準とは #phpkansai](https://reader034.fdocuments.net/reader034/viewer/2022042615/55bb0afebb61eb67288b462a/html5/thumbnails/12.jpg)
現在のニーズ
• 早く作りなさい、マーケでライバルに負けないために
• ベンチャーも確実な技術を備えなさい
• ある日いきなりガチのトラフィックが来るから
• ソーシャル効果のせいで、勝負がハッキリするぞ
![Page 13: Yii Framework 2.0 いま求められるRAD標準とは #phpkansai](https://reader034.fdocuments.net/reader034/viewer/2022042615/55bb0afebb61eb67288b462a/html5/thumbnails/13.jpg)
Yii2.0の標準構成から現代的RADを学ぶ
![Page 14: Yii Framework 2.0 いま求められるRAD標準とは #phpkansai](https://reader034.fdocuments.net/reader034/viewer/2022042615/55bb0afebb61eb67288b462a/html5/thumbnails/14.jpg)
その前にYii2概要• 規約よりもオブジェクト指向設計を重視するタイプ
• DI 中心ではなく、static なサービスロケーター呼ぶラインで妥協 (Yii::$app->get(‘request’))
• Laravel の Eloquent の影響を受け、より統合された QueryBuilder/ActiveRecord を開発
• アプリケーションにテストに Codeception を使う
![Page 15: Yii Framework 2.0 いま求められるRAD標準とは #phpkansai](https://reader034.fdocuments.net/reader034/viewer/2022042615/55bb0afebb61eb67288b462a/html5/thumbnails/15.jpg)
その前にYii2概要• 世界で最も Ruby on Rails と対比される PHP フレームワーク(日本のように偏見がない)
• ビュー がテンプレートエンジンに見えない。1ファイル1ページでありながら、PHP文法を活かす高度なウィジェットが特徴
• IDE との親和性、phpdoc の記述を非常に重視
![Page 16: Yii Framework 2.0 いま求められるRAD標準とは #phpkansai](https://reader034.fdocuments.net/reader034/viewer/2022042615/55bb0afebb61eb67288b462a/html5/thumbnails/16.jpg)
現代的WebにおけるRAD 4つのポイント
• 1. 素早いプロトタイピング (前からある基本)
• 2. 開発者を課題の本質に集中させる
• 3. パフォーマンスへの対応コストをいかに減らすか
• 4. サービス内容にフレームワークを最適化させる
![Page 17: Yii Framework 2.0 いま求められるRAD標準とは #phpkansai](https://reader034.fdocuments.net/reader034/viewer/2022042615/55bb0afebb61eb67288b462a/html5/thumbnails/17.jpg)
1.素早いプロトタイピング
• スキャフォルドだけでどこまで完成イメージを共有できるか
• プログラマーだけで、ビルトインウィジェットを使って十分に UX を試作可能
• デフォルトが jQuery & Bootstrap ありの意味
![Page 18: Yii Framework 2.0 いま求められるRAD標準とは #phpkansai](https://reader034.fdocuments.net/reader034/viewer/2022042615/55bb0afebb61eb67288b462a/html5/thumbnails/18.jpg)
トピック
• Gii - Model Generator / CRUD Generator
• Client Validation
• ActiveRecord = Form Model + Query のショートカットにすぎない点を確認
![Page 19: Yii Framework 2.0 いま求められるRAD標準とは #phpkansai](https://reader034.fdocuments.net/reader034/viewer/2022042615/55bb0afebb61eb67288b462a/html5/thumbnails/19.jpg)
2.開発者を課題の本質に集中させる
• 整合性/安全性 < 簡潔さ + 書いた分だけ動く感
• 一貫性の高さ = 安定した学習曲線(コンポーネント、コンフィグ、イベントとビヘイビアなど)
• 最初は副次的な事はフレームワークにおまかせ → 気になったものから順に崩していく
![Page 20: Yii Framework 2.0 いま求められるRAD標準とは #phpkansai](https://reader034.fdocuments.net/reader034/viewer/2022042615/55bb0afebb61eb67288b462a/html5/thumbnails/20.jpg)
トピック
• Component / Application Config
• キーコンセプトhttps://github.com/yiijan/yii2/blob/master/docs/guide-ja/README.md#鍵となる概念
• ウィジェットと AssetBundle 依存チェーン
• composer-asset-plugin
![Page 21: Yii Framework 2.0 いま求められるRAD標準とは #phpkansai](https://reader034.fdocuments.net/reader034/viewer/2022042615/55bb0afebb61eb67288b462a/html5/thumbnails/21.jpg)
トピック
• ValidatorとMassive Assignmentプロテクション
• フォームウィジェットとCSRF
• Cookie Validation
• Password hash
![Page 22: Yii Framework 2.0 いま求められるRAD標準とは #phpkansai](https://reader034.fdocuments.net/reader034/viewer/2022042615/55bb0afebb61eb67288b462a/html5/thumbnails/22.jpg)
3. パフォーマンスへの対応コストを いかに減らすか
• Webサーバのスケールアウトは当たり前
• ストレージのボトルネックがどこまで想定済みか
• NoSQLへのシームレスな移行
• まず作ってから重い部分をキャッシュする
![Page 23: Yii Framework 2.0 いま求められるRAD標準とは #phpkansai](https://reader034.fdocuments.net/reader034/viewer/2022042615/55bb0afebb61eb67288b462a/html5/thumbnails/23.jpg)
トピック• キャッシュ/セッションドライバのカスタマイズ
• Read replica パターンへの対応
• MongoDB を例に ActiveRecord(Redis, ElasticSearch の ActiveRecord もね)
• Pjax + Fragment Cache
![Page 24: Yii Framework 2.0 いま求められるRAD標準とは #phpkansai](https://reader034.fdocuments.net/reader034/viewer/2022042615/55bb0afebb61eb67288b462a/html5/thumbnails/24.jpg)
4. サービス内容にフレーム ワークを最適化させる
• フレームワーク < アプリケーションの価値
• あえて薄く作られたコンポーネント
• ソースコードがドキュメントという現実への最適解
• 気になる箇所は自分でも書ける程度のボリューム感
![Page 25: Yii Framework 2.0 いま求められるRAD標準とは #phpkansai](https://reader034.fdocuments.net/reader034/viewer/2022042615/55bb0afebb61eb67288b462a/html5/thumbnails/25.jpg)
トピック
• とてもわかりやすい日本語ドキュメント https://github.com/yiijan/yii2/blob/master/docs/guide-ja/README.md
• Yii2 Advent Calendar 2014 http://qiita.com/advent-calendar/2014/yii2 日本人によるCookbookって感じです
![Page 26: Yii Framework 2.0 いま求められるRAD標準とは #phpkansai](https://reader034.fdocuments.net/reader034/viewer/2022042615/55bb0afebb61eb67288b462a/html5/thumbnails/26.jpg)
Yiiが提供するもの 現代的水準の RAD
• 素早いプロトタイピング
• 開発者を課題の本質に集中させる
• パフォーマンスへの対応コストをいかに減らすか
• サービス内容にフレームワークを最適化させる
![Page 27: Yii Framework 2.0 いま求められるRAD標準とは #phpkansai](https://reader034.fdocuments.net/reader034/viewer/2022042615/55bb0afebb61eb67288b462a/html5/thumbnails/27.jpg)
突然ですがフレームワークとは
何ですか?
![Page 28: Yii Framework 2.0 いま求められるRAD標準とは #phpkansai](https://reader034.fdocuments.net/reader034/viewer/2022042615/55bb0afebb61eb67288b462a/html5/thumbnails/28.jpg)
フレームワークとは武道である
![Page 29: Yii Framework 2.0 いま求められるRAD標準とは #phpkansai](https://reader034.fdocuments.net/reader034/viewer/2022042615/55bb0afebb61eb67288b462a/html5/thumbnails/29.jpg)
• 個々の機能(プラクティス) = 技
• 敵を倒す方法ならいくらでもあるが、武道で重要なのは技の組み合わせ = 型
• 「技」を通じて型を「体」でおぼえる
• 個別に機能を見ていると見えなかった「心」がわかる
![Page 30: Yii Framework 2.0 いま求められるRAD標準とは #phpkansai](https://reader034.fdocuments.net/reader034/viewer/2022042615/55bb0afebb61eb67288b462a/html5/thumbnails/30.jpg)
•守 : フレームワークらしい作り方を真似る
•破 : 基礎の型を応用して実戦向けの技を編み出せるようになる
•離 : フレームワークからプロダクションコードに比重が移ってここで一人前
![Page 31: Yii Framework 2.0 いま求められるRAD標準とは #phpkansai](https://reader034.fdocuments.net/reader034/viewer/2022042615/55bb0afebb61eb67288b462a/html5/thumbnails/31.jpg)
というわけで…
![Page 32: Yii Framework 2.0 いま求められるRAD標準とは #phpkansai](https://reader034.fdocuments.net/reader034/viewer/2022042615/55bb0afebb61eb67288b462a/html5/thumbnails/32.jpg)
フレームワークが武道なら Yii は近道(RAD)という武道です
PHP
スタートアップ
大規模サービス
インハウス・ツール
エンタープライズ
![Page 33: Yii Framework 2.0 いま求められるRAD標準とは #phpkansai](https://reader034.fdocuments.net/reader034/viewer/2022042615/55bb0afebb61eb67288b462a/html5/thumbnails/33.jpg)
使わなくても、Yii の心を学んでください。型を守るうちに、その真意を理解できます。Yii の心は、いまWebに生きるすべて
のPHPerにとって価値があります。