33
Yii Framework 2.0 いま求められるRAD標準とは

Yii Framework 2.0 いま求められるRAD標準とは #phpkansai

Embed Size (px)

Citation preview

Page 1: Yii Framework 2.0 いま求められるRAD標準とは #phpkansai

Yii Framework 2.0いま求められるRAD標準とは

Page 2: Yii Framework 2.0 いま求められるRAD標準とは #phpkansai

たなかひさてる @tanakahisateru

Pinoco developerPHPTAL contributorFirebug translation contributorYii framework userPhpStorm user

フルスタックエンジニア(笑)

Page 3: Yii Framework 2.0 いま求められるRAD標準とは #phpkansai

RAD Rapid Application Development

Page 4: Yii Framework 2.0 いま求められるRAD標準とは #phpkansai

LAMP Linux Apache MySQL P*-lang

Page 5: Yii Framework 2.0 いま求められるRAD標準とは #phpkansai

PHP

スタートアップ インハウス・ツール

SSIのオバケ (HTML埋込みスクリプト)

2000~

Page 6: Yii Framework 2.0 いま求められるRAD標準とは #phpkansai

2006~

PHP

スタートアップ

大規模サービス

インハウス・ツール

エンタープライズ

Page 7: Yii Framework 2.0 いま求められるRAD標準とは #phpkansai

2012~

PHP

超・大規模サービス 超・エンタープライズ

IT資産 = 全企業的情報ソリューション

課題: いかに継続するか

Page 8: Yii Framework 2.0 いま求められるRAD標準とは #phpkansai

と、いう話はしませんまたそれは後のセッションで

Page 9: Yii Framework 2.0 いま求められるRAD標準とは #phpkansai

このセッションの論点は だいたいこのあたりです

PHP

スタートアップ

大規模サービス

インハウス・ツール

エンタープライズ

Page 10: Yii Framework 2.0 いま求められるRAD標準とは #phpkansai

昨今感じるWeb開発のマインド変化

Page 11: Yii Framework 2.0 いま求められるRAD標準とは #phpkansai

以前のニーズ

• 外注使ってでもとにかく早くたくさん作りなさい

• 出資者はどのアイデアが儲かるかわからないから

• ベンチャーは儲からない技術に深入りしないこと

• どうせトラフィックは徐々にしか上がらないよ

Page 12: Yii Framework 2.0 いま求められるRAD標準とは #phpkansai

現在のニーズ

• 早く作りなさい、マーケでライバルに負けないために

• ベンチャーも確実な技術を備えなさい

• ある日いきなりガチのトラフィックが来るから

• ソーシャル効果のせいで、勝負がハッキリするぞ

Page 13: Yii Framework 2.0 いま求められるRAD標準とは #phpkansai

Yii2.0の標準構成から現代的RADを学ぶ

Page 14: Yii Framework 2.0 いま求められるRAD標準とは #phpkansai

その前にYii2概要• 規約よりもオブジェクト指向設計を重視するタイプ

• DI 中心ではなく、static なサービスロケーター呼ぶラインで妥協 (Yii::$app->get(‘request’))

• Laravel の Eloquent の影響を受け、より統合された QueryBuilder/ActiveRecord を開発

• アプリケーションにテストに Codeception を使う

Page 15: Yii Framework 2.0 いま求められるRAD標準とは #phpkansai

その前にYii2概要• 世界で最も Ruby on Rails と対比される PHP フレームワーク(日本のように偏見がない)

• ビュー がテンプレートエンジンに見えない。1ファイル1ページでありながら、PHP文法を活かす高度なウィジェットが特徴

• IDE との親和性、phpdoc の記述を非常に重視

Page 16: Yii Framework 2.0 いま求められるRAD標準とは #phpkansai

現代的WebにおけるRAD 4つのポイント

• 1. 素早いプロトタイピング (前からある基本)

• 2. 開発者を課題の本質に集中させる

• 3. パフォーマンスへの対応コストをいかに減らすか

• 4. サービス内容にフレームワークを最適化させる

Page 17: Yii Framework 2.0 いま求められるRAD標準とは #phpkansai

1.素早いプロトタイピング

• スキャフォルドだけでどこまで完成イメージを共有できるか

• プログラマーだけで、ビルトインウィジェットを使って十分に UX を試作可能

• デフォルトが jQuery & Bootstrap ありの意味

Page 18: Yii Framework 2.0 いま求められるRAD標準とは #phpkansai

トピック

• Gii - Model Generator / CRUD Generator

• Client Validation

• ActiveRecord = Form Model + Query のショートカットにすぎない点を確認

Page 19: Yii Framework 2.0 いま求められるRAD標準とは #phpkansai

2.開発者を課題の本質に集中させる

• 整合性/安全性 < 簡潔さ + 書いた分だけ動く感

• 一貫性の高さ = 安定した学習曲線(コンポーネント、コンフィグ、イベントとビヘイビアなど)

• 最初は副次的な事はフレームワークにおまかせ → 気になったものから順に崩していく

Page 20: Yii Framework 2.0 いま求められるRAD標準とは #phpkansai

トピック

• 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

トピック

• ValidatorとMassive Assignmentプロテクション

• フォームウィジェットとCSRF

• Cookie Validation

• Password hash

Page 22: Yii Framework 2.0 いま求められるRAD標準とは #phpkansai

3. パフォーマンスへの対応コストを いかに減らすか

• Webサーバのスケールアウトは当たり前

• ストレージのボトルネックがどこまで想定済みか

• NoSQLへのシームレスな移行

• まず作ってから重い部分をキャッシュする

Page 23: Yii Framework 2.0 いま求められるRAD標準とは #phpkansai

トピック• キャッシュ/セッションドライバのカスタマイズ

• Read replica パターンへの対応

• MongoDB を例に ActiveRecord(Redis, ElasticSearch の ActiveRecord もね)

• Pjax + Fragment Cache

Page 24: Yii Framework 2.0 いま求められるRAD標準とは #phpkansai

4. サービス内容にフレーム ワークを最適化させる

• フレームワーク < アプリケーションの価値

• あえて薄く作られたコンポーネント

• ソースコードがドキュメントという現実への最適解

• 気になる箇所は自分でも書ける程度のボリューム感

Page 25: Yii Framework 2.0 いま求められるRAD標準とは #phpkansai

トピック

• とてもわかりやすい日本語ドキュメント 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

Yiiが提供するもの 現代的水準の RAD

• 素早いプロトタイピング

• 開発者を課題の本質に集中させる

• パフォーマンスへの対応コストをいかに減らすか

• サービス内容にフレームワークを最適化させる

Page 27: Yii Framework 2.0 いま求められるRAD標準とは #phpkansai

突然ですがフレームワークとは

何ですか?

Page 28: Yii Framework 2.0 いま求められるRAD標準とは #phpkansai

フレームワークとは武道である

Page 29: Yii Framework 2.0 いま求められるRAD標準とは #phpkansai

• 個々の機能(プラクティス) = 技

• 敵を倒す方法ならいくらでもあるが、武道で重要なのは技の組み合わせ = 型

• 「技」を通じて型を「体」でおぼえる

• 個別に機能を見ていると見えなかった「心」がわかる

Page 30: Yii Framework 2.0 いま求められるRAD標準とは #phpkansai

•守 : フレームワークらしい作り方を真似る

•破 : 基礎の型を応用して実戦向けの技を編み出せるようになる

•離 : フレームワークからプロダクションコードに比重が移ってここで一人前

Page 31: Yii Framework 2.0 いま求められるRAD標準とは #phpkansai

というわけで…

Page 32: Yii Framework 2.0 いま求められるRAD標準とは #phpkansai

フレームワークが武道なら Yii は近道(RAD)という武道です

PHP

スタートアップ

大規模サービス

インハウス・ツール

エンタープライズ

Page 33: Yii Framework 2.0 いま求められるRAD標準とは #phpkansai

使わなくても、Yii の心を学んでください。型を守るうちに、その真意を理解できます。Yii の心は、いまWebに生きるすべて

のPHPerにとって価値があります。