Address
:
[go:
up one dir
,
main page
]
Include Form
Remove Scripts
Accept Cookies
Show Images
Show Referer
Rotate13
Base64
Strip Meta
Strip Title
Session Cookies
More Web Proxy on the site http://driver.im/
Submit Search
BEAR.Sunday $app
•
15 likes
•
3,569 views
Akihito Koriyama
about the application of BEAR.Sunday PHP web framework.
Read less
Read more
1 of 31
Download now
Download to read offline
More Related Content
BEAR.Sunday $app
1.
BEAR.Sunday $app BEAR.Sunday meetup
#1 17/Feb/2013 (Sun)
2.
ソフトウエアの原則
3.
依存関係逆転の原則 • 具体的な実装に依存してはいけない • 抽象に依存する •
NG スタティックコール × 実クラスに依存 • NG サービスロケーター キーで取得できる実装に依存 http://www.flickr.com/photos/rgidra/4256316243/
4.
生成使用分離の原則 • オブジェクトは生成するか利用するかのどち らかで、どちらも同時にしてはいけない •
オブジェクトの使用 は抽象 を取り扱う 使用 抽象 • オブジェクトの生成 は具象 を取り扱う 生成 具象
5.
デメテルの原則 • 最小知識の原則 • 必要のないオブジェクトは受け取らない •
NG $c = $obj->getB()->getC(); • OK $c = $obj->getB()->publicC
6.
Tell, Don t
ask. • OK $dog->walk(); • OK $model->render(); • NG $renderer->set($model- >name)->render();
7.
Solution ?
8.
DI + AOP
9.
インターフェイスとクラスを束縛します
10.
@Injectを付けたメソッドに注入されます
11.
束縛の集合がモジュールです
12.
モジュールはモジュールを利用できます
13.
実行モードに応じて束縛は変わります APIならJSON出力、Devなら詳細なログ...
14.
振る舞い モードに応じて振る舞いを変えるのでなく
NG
15.
構成 モードに応じて振るを変えます
OK 修正に閉じ、変更に開いています(OCP)
16.
AOP Aspect Oriented Programming
17.
注釈と横断的関心時を束縛
18.
注釈を解釈 ここでは「クラスに@Dbと注釈がある」& 「”on”で始まっている」メソッドにはDBを セットするDBインジェクターを束縛 してい
束縛 ます。 DBインジェクターはメソッドによっ てmaster/slaveを選択しDBオブジェクトを注 入します。 利用側、被利用側ともにDB取得 の関心が分離されています。
19.
モードに応じた構成で全てが束縛され...
Dependency + Aspects
20.
インジェクターでアプリケーションを取得します
21.
アプリケーションは依存を持ちます
22.
依存も依存を持ちます
23.
依存の依存..と取得を続け
24.
巨大な”アプリケーションオブジェクトグラフ”を得ます
25.
アプリケーションはシリアライズ可能で
26.
リクエストを超え再利用されます。 アノテーションと束縛を使った膨大なオブジェクトコ ンストラクションコストは原理的にほとんどなくなり ます。
27.
コンストラクタはリクエストを超えて1度しかコールさ れず、そのときプロパティに代入した値はキャッシュ されます。 構成に応じたコードはコンストラクタ、そうでないも のはメソッドと区別できます。
28.
アプリケーションはスクリプトでも取得できます
29.
他のシステムからの利用が容易です より長期間の運用を可能にします
30.
アプリケーションスクリプトでサービスを記述
自由な構成が可能です
31.
アプリケーションオブジェクトまとめ • DI/AOPでOOP原則に従う • アプリケーションは1つの変数、巨大な
オブジェクトグラフ • スクリプトから準備なしに取得できる • アプリケーションスクリプトでサービス を記述
Download