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