43
SpringBoot ででで でででで WEB ででででで 2016/11/18 Spring Day 2016 #jsug でででで (@terahide27) ROOM4-5

Spring bootで学ぶ初めてのwebアプリ開発

Embed Size (px)

Citation preview

Page 1: Spring bootで学ぶ初めてのwebアプリ開発

SpringBoot で学ぶ初めての WEB アプリ開発2016/11/18

Spring Day 2016 #jsugてらひで (@terahide27)

ROOM4-5

Page 2: Spring bootで学ぶ初めてのwebアプリ開発

てらひで@terahide27

某不動産サービスを営む IT会社でインフラからサービスの開発・運用までを見守るお仕事Java/Groovy/RoR/PHPCSP/CSPO/CSMTDD/TOCfE/アニメ / 酒 / ラーメン

Page 3: Spring bootで学ぶ初めてのwebアプリ開発

深夜アニメのカバレッジ90%http://gigazine.net/news/20160910-anime-2016autumn/

Page 4: Spring bootで学ぶ初めてのwebアプリ開発

今日お話しすること• SpringBoot のチュートリアルを実際に触りながら以下の話を進めます• Web の歴史• 今の Web (モダン Web )

Page 5: Spring bootで学ぶ初めてのwebアプリ開発

持って帰ってもらいたいこと• SpringBoot はチュートリアルが充実• SpringBoot のチュートリアルは進めやすい• SpringBoot は怖くない

Page 6: Spring bootで学ぶ初めてのwebアプリ開発

Web の歴史ー 誕生 ー

Page 7: Spring bootで学ぶ初めてのwebアプリ開発

黎明期の Web

http://pc.mogeringo.com/archives/44396

Request

Response

「 xx 」がみたい

「 xx 」を返却

Page 8: Spring bootで学ぶ初めてのwebアプリ開発

SpringMVCチュートリアル

Page 9: Spring bootで学ぶ初めてのwebアプリ開発

ね?簡単でしょ?

Page 10: Spring bootで学ぶ初めてのwebアプリ開発

家庭にパソコンが普及

http://blog.goo.ne.jp/nekotop_001/e/831d371079595e0a0b26aa3485acf189

Windows95 の発売

Page 11: Spring bootで学ぶ初めてのwebアプリ開発

http://pc.mogeringo.com/archives/44396写真提供:ペイレスイメージズ

携帯電話の普及20 世紀終盤〜 21 世紀初頭

Page 12: Spring bootで学ぶ初めてのwebアプリ開発

持ち運ぶ

Page 13: Spring bootで学ぶ初めてのwebアプリ開発

企業間連携 API

http://pc.mogeringo.com/archives/44396

SOAPSimple Object Access Protocol

写真提供:ペイレスイメージズ

Page 14: Spring bootで学ぶ初めてのwebアプリ開発

API - 各ベンダ -

e.g. Google Maps

Page 15: Spring bootで学ぶ初めてのwebアプリ開発

2007

Page 16: Spring bootで学ぶ初めてのwebアプリ開発

スマートフォン

Page 17: Spring bootで学ぶ初めてのwebアプリ開発

http://pc.mogeringo.com/archives/44396

写真提供:ペイレスイメージズ

画面を返す画面からデータへ

データを返す

Page 18: Spring bootで学ぶ初めてのwebアプリ開発

REST• API の設計様式として普及• アクセスするリソースに対してURL を定形化

• リソースへの操作はメソッドで指定• 多くの場合 JSON を返却

Page 19: Spring bootで学ぶ初めてのwebアプリ開発

REST

http://pc.mogeringo.com/archives/44396

Request (GET /xx/1)

Response ({name:”xx”,value:”xx”...})

「 xx 」を取得

json を返却

Page 20: Spring bootで学ぶ初めてのwebアプリ開発

REST

http://pc.mogeringo.com/archives/44396

Request (POST /xxs/1)

Response ({status:”success”})

「 xx 」を保存

json を返却

Page 21: Spring bootで学ぶ初めてのwebアプリ開発

RESTful Web Service with SpringMVC

チュートリアル

Page 22: Spring bootで学ぶ初めてのwebアプリ開発

ね?簡単でしょ?

Page 23: Spring bootで学ぶ初めてのwebアプリ開発

スマートフォン

Page 24: Spring bootで学ぶ初めてのwebアプリ開発

双方向通信

Page 25: Spring bootで学ぶ初めてのwebアプリ開発

偉大な先達は知恵を絞った• ロングポーリング• Comet( ロングコネクション )• WebSocket

Page 26: Spring bootで学ぶ初めてのwebアプリ開発

WebSocketチュートリアル

Page 27: Spring bootで学ぶ初めてのwebアプリ開発

ね?簡単でしょ?

Page 28: Spring bootで学ぶ初めてのwebアプリ開発

Spring Data JPA

チュートリアル

Page 29: Spring bootで学ぶ初めてのwebアプリ開発

ね?簡単でしょ?

Page 30: Spring bootで学ぶ初めてのwebアプリ開発

現在〜ちょっとだけ未来

Page 31: Spring bootで学ぶ初めてのwebアプリ開発

スマートフォン

Page 32: Spring bootで学ぶ初めてのwebアプリ開発

http://pc.mogeringo.com/archives/44396

Page 33: Spring bootで学ぶ初めてのwebアプリ開発

Reactive• 即応性• 対障害性• 弾力性• メッセージ駆動

Page 34: Spring bootで学ぶ初めてのwebアプリ開発

再掲:黎明期の Web

http://pc.mogeringo.com/archives/44396

Request

Response

「 xx 」がみたい

「 xx 」を返却

Page 35: Spring bootで学ぶ初めてのwebアプリ開発

Web におけるメッセージ駆動• X 従来:ブロッキング(同期通信)• O ノンブロッキング(非同期)

Page 36: Spring bootで学ぶ初めてのwebアプリ開発

まわりを見れば• Javascript node.js• Java JavaFX• Java(Scala) Play framework ( Netty ) • Ruby Volt• PHP React• etc.

Page 37: Spring bootで学ぶ初めてのwebアプリ開発

Spring は?• Spring 5 (Java 9) でサポート• Play framework と同様に内部で Netty を使用(非 Servlet化)

Page 38: Spring bootで学ぶ初めてのwebアプリ開発

使い方

http://www.slideshare.net/movmov/20160622-jsug-fromspringframework43to50

Spring Framework 4.3 から 5.0 へ スペシャル サンクス!本橋さん!

Page 39: Spring bootで学ぶ初めてのwebアプリ開発

まとめ• Spring を覚えることで最新の技術要素も怖くなくなる• Spring を覚えるためにSpringBoot のチュートリアルは進めやす

• SpringBoot は恐くない

Page 40: Spring bootで学ぶ初めてのwebアプリ開発

ぜひ帰ったらチュートリアルにトライしてみてください

Page 41: Spring bootで学ぶ初めてのwebアプリ開発
Page 42: Spring bootで学ぶ初めてのwebアプリ開発

ご参考• 意外と知らない Web の歴史

• https://www.internetacademy.jp/special/history.html• de:code2016 セッション「モダン Web: たった今と、ほんの少し未来の話」フォローアップ

• https://blogs.msdn.microsoft.com/osamum/2016/06/06/the-modern-web-now-and-little-future-story/

• Wikipedia Websocket• https://ja.wikipedia.org/wiki/WebSocket

• リアクティブ宣言• http://www.reactivemanifesto.org/ja

Page 43: Spring bootで学ぶ初めてのwebアプリ開発

Happy Spring Day !