Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
play2stub さらっと概要
Search
Satoshi Kobayashi
February 21, 2015
Technology
0
310
play2stub さらっと概要
play2stub の概要を少し作成しました。処理イメージのページを中心に御覧ください。
Satoshi Kobayashi
February 21, 2015
Tweet
Share
Other Decks in Technology
See All in Technology
100 名超が参加した日経グループ横断の競技型 AWS 学習イベント「Nikkei Group AWS GameDay」の紹介/mediajaws202411
nikkei_engineer_recruiting
1
170
誰も全体を知らない ~ ロールの垣根を超えて引き上げる開発生産性 / Boosting Development Productivity Across Roles
kakehashi
1
230
Taming you application's environments
salaboy
0
190
アジャイルでの品質の進化 Agile in Motion vol.1/20241118 Hiroyuki Sato
shift_evolve
0
170
インフラとバックエンドとフロントエンドをくまなく調べて遅いアプリを早くした件
tubone24
1
430
Can We Measure Developer Productivity?
ewolff
1
150
Shopifyアプリ開発における Shopifyの機能活用
sonatard
4
250
SSMRunbook作成の勘所_20241120
koichiotomo
3
160
Amplify Gen2 Deep Dive / バックエンドの型をいかにしてフロントエンドへ伝えるか #TSKaigi #TSKaigiKansai #AWSAmplifyJP
tacck
PRO
0
390
New Relicを活用したSREの最初のステップ / NRUG OKINAWA VOL.3
isaoshimizu
3
620
BLADE: An Attempt to Automate Penetration Testing Using Autonomous AI Agents
bbrbbq
0
320
なぜ今 AI Agent なのか _近藤憲児
kenjikondobai
4
1.4k
Featured
See All Featured
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
27
840
Code Reviewing Like a Champion
maltzj
520
39k
What's in a price? How to price your products and services
michaelherold
243
12k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
33
1.9k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
44
6.8k
The Pragmatic Product Professional
lauravandoore
31
6.3k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
0
97
StorybookのUI Testing Handbookを読んだ
zakiyama
27
5.3k
Into the Great Unknown - MozCon
thekraken
32
1.5k
Code Review Best Practice
trishagee
64
17k
The Language of Interfaces
destraynor
154
24k
Gamification - CAS2011
davidbonilla
80
5k
Transcript
play2stub さらっと概要 @scova0731 as of 2015.02.21
play2stub のユースケース play2stubの役割がわかりにくいということで軽く文書化。 ✓ クライアント開発時のスタブサーバとして ✓ あるリクエストにはあるJSONを返す、特定のHTMLを描画して返す。 ✓ Aeromock さんに出発点は似てそうですが、もっと簡易で、Play
Framework に 依存。 ✓ プロキシっぽいサーバとして ✓ クライアントからのJSONでのリクエストを、更に内部の API サーバに経由し、 レスポンスをそのまま返したい場合 ✓ 一方、認証やHTML生成、HTTPヘッダーの修正などもおこないたい
play2stub を使うメリット 1. 前提知識は Play だけ。Play 環境のためのツール。 Play Framework に大部分を依存しているので、独自
感が薄い 2. とりあえずダミーレスポンスをおいて、クライアント開発を並行に進められる。ダミーのレスポンスは段階的 に本実装に置き換えていける 3. 簡単で冗長な部分が設定のみでよくなる 4. Filter、Processor、Renderer など処理の各所を変更可 (次ページ) 5. play2stub 自体が Play のプラグインに過ぎないので、使えない部分は普通にコードを書けばいいという安 心感 6. メンバーが多い時にコードに一定の規律を与えられるという副作用
処理イメージ Web Server (Play) HTML JSON Controller play2stub Controller Before
Filter After Filter Processor Param Injector API Server (Play) Template Resolver ・・・ Device Aware Template Resolver Renderer Handlebars Template Processor JSON Processor Proxy Processor Add Special Header Form to JSON Error Pages Rendering JSON 特定のエラーの場合 (Forbidden)に、 エラーページを描画する 例えばヘッダーを加えたりとか、 フォームの値は、すべて JSONに置換 したりとか。 たとえば、モバイルの場合にテンプ レートを分けることができる テンプレートで、 QueryStringやURL の情報を使えるようにする サーブレット的な発想。 Before Filter で Request を変更したり(イミュー タブルなので実際にはコピーすることになりそうですが )し、Processor で Result を作成、その後に After Filter で Result を改変したりする。 your play app. play2stub 特別なリクエストは特別なコード を書く。ここから部分的に Processorだけ呼んだり等も可能 開発時には、 Proxyを経由せずに Template/JSONで直接返せる (もとも とのstubの由来) 開発時には、 Proxyを経由せずに Template/JSONで直接返せる
Getting Started とりあえず動かしてみましょう。 $ git clone
[email protected]
:bizreach/play2-stub.git $ cd play2-stub/src/test/play2-sample1-stub
$ ./activator run http://localhost:9000/ にアクセス! - conf/routes をチェック - conf/application.conf をチェック
FAQ Q. 実績は?継続してメンテされるの? A. BizReach の新サービス中の複数の Play サーバで利用されています。しばらくは継 続的に更新されるのではないかと。 Q.
中を見てみたんですが・・・ A. はい、微妙です。テストコードはなく、可読性が低い箇所も。。