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
The High Velocity Web Framework For Java and Scala
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
yuichiro umezawa
June 28, 2016
Technology
1
2.6k
The High Velocity Web Framework For Java and Scala
2016-06-27 JJUG ナイトセミナー
yuichiro umezawa
June 28, 2016
Tweet
Share
More Decks by yuichiro umezawa
See All by yuichiro umezawa
OAuth 2.0 をかみくだく
garbagetown
22
7.9k
jjug ccc 2017 spring ccc_g1
garbagetown
8
13k
Other Decks in Technology
See All in Technology
Data Hubグループ 紹介資料
sansan33
PRO
0
2.7k
Embedded SREの終わりを設計する 「なんとなく」から計画的な自立支援へ
sansantech
PRO
3
2.5k
20260204_Midosuji_Tech
takuyay0ne
1
160
Contract One Engineering Unit 紹介資料
sansan33
PRO
0
13k
AIエージェントを開発しよう!-AgentCore活用の勘所-
yukiogawa
0
170
こんなところでも(地味に)活躍するImage Modeさんを知ってるかい?- Image Mode for OpenShift -
tsukaman
0
160
OWASP Top 10:2025 リリースと 少しの日本語化にまつわる裏話
okdt
PRO
3
820
M&A 後の統合をどう進めるか ─ ナレッジワーク × Poetics が実践した組織とシステムの融合
kworkdev
PRO
1
470
仕様書駆動AI開発の実践: Issue→Skill→PRテンプレで 再現性を作る
knishioka
2
670
Red Hat OpenStack Services on OpenShift
tamemiya
0
120
制約が導く迷わない設計 〜 信頼性と運用性を両立するマイナンバー管理システムの実践 〜
bwkw
3
970
学生・新卒・ジュニアから目指すSRE
hiroyaonoe
2
640
Featured
See All Featured
Designing for Performance
lara
610
70k
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
86
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
55
3.2k
Everyday Curiosity
cassininazir
0
130
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
67
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
1
130
YesSQL, Process and Tooling at Scale
rocio
174
15k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.2k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
brightonSEO & MeasureFest 2025 - Christian Goodrich - Winning strategies for Black Friday CRO & PPC
cargoodrich
3
100
Ethics towards AI in product and experience design
skipperchong
2
200
Are puppies a ranking factor?
jonoalderson
1
2.7k
Transcript
The High Velocity Web Framework For Java and Scala 2016-06-27
JJUG φΠτηϛφʔ 1
ࣗݾհ w കᖒ༤Ұ !HBSCBHFUPXO w גࣜձࣾ%54 w ໟαΠτ༧ཧ 4"4USVUT
w 7*4"ൃڅࢧԉ 1MBZ w ΦϜχνϟωϧϏοάσʔλ )BEPPQ w ՝֎׆ಈ w 8&# %#13&44WPMدߘ w %FWFMPQFST4VNNJUొஃ 2
ࣗݾհ w 1MBZ'SBNFXPSLυΩϡϝϯτ༁ 3
ࣗݾհ 4 ࠷ۙ·ͨ ୟ͍͍ͯ·͢ʂ
໔ࣄ߲ w 1MBZ*4/05l+BWBz'SBNFXPSL w 1MBZl8&#zϑϨʔϜϫʔΫ w 1MBZ+BWBͰͳ͍Կ͔ w 1MBZجຊతʹ4DBMB w
͝ར༻ܭըతʹ 5
࣍ w 1MBZͷྺ࢙ w 1MBZͷಛ w 1MBZͷ͍ํ w 1MBZͷརܽ w
·ͱΊ 6
Ξϯέʔτ w Ͳͷ8FCϑϨʔϜϫʔΫΛ͍ͬͯ·͔͢ʁ ☑ 4FBTBS 4"4USVUT 44USVUT 5FFEB FUD
☑ 4USVUT ☑ 4USVUT ☑ 4QSJOH'SBNFXPSL 4QSJOH.7$ FUD ☑ +BWB&& +4' +"934 FUD ☑ 1MBZ1MBZ 7
Ξϯέʔτ w 1MBZ'SBNFXPSLʹ͍ͭͯ ΄ͱΜͲͳʹΒͳ͍ झຯͰͬͨ͜ͱ͕͋Δ ࣄͰͬͨ͜ͱ͕͋Δ શʹϚελʔ͍ͯ͠Δ 8
Playͷྺ࢙ 9 (͜͜Ͱ5ܦաͩͱ͍͍ײ͡)
Playͷྺ࢙ 10 ~2009 2010 2011 2012 2013 2014 2015 2016
Play1 1.0 1.1 1.2 1.3/1.4 1.4.2 Play2 2.0 2.1/2.2 2.3 2.4 2.5.4 ༁Λ࢝Ίͨͷ ͜ͷࠒ
ͦͷଞͷྺ࢙ 11 ~2009 2010 2011 2012 2013 2014 2015 2016
Seasar2 2.4.40 2.4.43 2.4.45 2.4.46 2.4.47 2.4.48 EoL Struts 1.3.10 EoL Struts2 2.1.8 2.2.1.1 2.3.1.1 2.3.8 2.3.16 2.3.20 2.3.24.1 2.5 Spring 3.0 3.1 3.2 4.0 4.1 4.2 4.3 Java EE 6 7 Rails 2.3 3.0 3.1 3.2 4.0 4.1 5.0beta
पลͷྺ࢙ 12 ~2009 2010 2011 2012 2013 2014 2015 2016
Java 6 7 8 IE 8 9 10 11 iPhone 3GS 4 4S 5 5S 6 6S SE AWS EMR VPC RDS Route53 ౦ژ Ϧʔδϣϯ Dynamo DB Redshift Kinesis Aurora Lambda API Gateway ؖࠃ Ϧʔδϣϯ
Play1ͷྺ࢙ 13
2009~2011 14 ~2009 2010 2011 2012 2013 2014 2015 2016
Play1 1.0 1.1 1.2 1.3/1.4 1.4.2 Seasar2 2.4.40 2.4.43 2.4.45 2.4.46 2.4.47 2.4.48 EoL Struts 1.3.10 EoL Rails 2.3 3.0 3.1 3.2 4.0 4.1 5.0beta Java 6 7 8 IE 8 9 10 11
2009~2011 w +BWBͱ4"4USVUTͰ*&ରԠͳͲ w 3BJMTઈௐ w +BWBͷఀײ w 4ػೳՃఀࢭ w
0SBDMFʹΑΔ4VOͷങऩ w +BWBʹ3BJMTΛʂ ˠ 1MBZ 15
Play1 w ;FOHVMBSJUZ چ;FOFYJUZ w (VJMMBVNF#PSU !HVJMMBVNFCPSU w
+BWB w +BWB༻ w (SPPWZςϯϓϨʔτ w 1MBZίϯιʔϧ 1ZUIPOεΫϦϓτ w JWZ 16
Play1 17 ݪจ: http://guillaumebort.tumblr.com/post/558830013/why-there-is-no-servlets-in-play ༁: http://ikeike443.hatenablog.com/entry/20120107/p1 ཁ ʮ8&#εςʔτϨε͔ͩΒ αʔϒϨοτΊͨʯ
Play1 w +BWBͰͳ͍Կ͔ w HSPPWZςϯϓϨʔτ w QZUIPOεΫϦϓτ w ׂΓͬͨύοέʔδ໊ w
QMBZ QMBZEC QMBZNWD FUD w ৼΓͬͨΫϥε໊ w +BWBKBWB 'KBWB FUD w ྫ֎Λܧঝͨ͠Γ w ϦϑϨΫγϣϯόΠτίʔυૢ࡞Λଟ༻ 18
Play1 w +BWBͷඇ߹ཧͳ׳शػೳෆͷઓ w Γա͗ײ͋Δֶ͕Ϳ͖ͱ͜Ζଟ͍ 19
w ͦͯ͠1MBZ Play1 20 ݪจ: https://groups.google.com/forum/#!msg/play-framework/jNyoIWv_xGQ/URpYquncn2oJ ཁ ʮ͜Ε͔ΒϦΞϧλΠϜ 8&#͔ͩΒඇಉظʹ͢Δʯ ༁:
https://playframework.com/documentation/ja/2.0.x/Philosophy
Play2ͷྺ࢙ 21 (ਫΛҿΉ)
2012~ 22 ~2009 2010 2011 2012 2013 2014 2015 2016
Play2 2.0 2.1/2.2 2.3 2.4 2.5.4 Spring 3.0 3.1 3.2 4.0 4.1 4.2 4.3 Java EE 6 7 Java 6 7 8 iPhone 3GS 4 4S 5 5S 6 6S SE AWS EMR VPC RDS Route53 ౦ژ Ϧʔδϣϯ Dynamo DB Redshift Kinesis Aurora Lambda API Gateway ؖࠃ Ϧʔδϣϯ
2012~ w ϑϨʔϜϫʔΫͷੈަ w 4USVUT&0- w 4FBTBS&0- w +BWBͷ෮׆ w
+BWB 4QSJOH +BWB&& w ΫϥυϞόΠϧͷຊ֨Խ w +BWB.7$ϑϨʔϜϫʔΫͷઌʂ ˠ 1MBZ 23
Play2 w ถ-JHIUCFOE چ5ZQFTBGF w +BNFT3PQFS !KSPQFS ˠ
(SFH.FUIWJO !HNFUIWJO w 4DBMB w 4DBMB+BWB༻ w 4DBMBςϯϓϨʔτ w "DUJWBUPSίϯιʔϧ w TCU 24 1MBZ(SFH͕ 5FDI-FBEʹ +BNFT-BHPN ޙड़ ʹઐ೦
Play2 w 4DBMBͰશ໘తʹॻ͖͠ w ॳػೳ͕ෆेͰ࣭ෆ҆ఆ w ลΓ͔Β࣭͕҆ఆ w όʔδϣϯΞοϓຖʹେͳมߋ w
"LLBΛ౷߹ w 3FBDUJWF1MBUGPSNͷҰ෦ʹ 25
Reactive Platform 26 https://www.lightbend.com/products/lightbend-reactive-platform
Akka w ฏߦࢄॲཧϑϨʔϜϫʔΫ w ΞΫλʔϞσϧ w "LLB4USFBNT w "LLBʹΑΔ3FBDUJWF4USFBNT࣮ w
1MBZͷετϦʔϜॲཧʹར༻ w "LLB)551 w "LLB4USFBNʹΑΔ൚༻)551ϑϨʔϜϫʔΫ w 1MBZͷ)551ج൫ʹͳΔ༧ఆ 27 +%,ʹ 3FBDUJWF4USFBNT ͕ೖΔ༧ఆ
Lagom w ϚΠΫϩαʔϏεϑϨʔϜϫʔΫ w 1MBZ্Ͱಈ࡞ w $234 ίϚϯυΫΤϦ w
$PNNBOEBOE2VFSZ3FTQPOTJCJMJUZ4FHSFHBUJPO w FWFOUTPVSDJOH w DJSDVJUCSFBLFS w +BWB"1* w কདྷతʹ4DBMB"1*ެ։༧ఆ 28
Playͷಛ 29 (͜͜Ͱ15ܦաͩͱ͍͍ײ͡)
Playͷಛ w 8FCϑϨʔϜϫʔΫ w ϗοτϦϩʔυ w εΩʔϚཧ w ϑϧελοΫ w
Ϟδϡʔϧ w +BWB4DBMB"1* w ඇಉظॲཧ w FUD 30
WebϑϨʔϜϫʔΫ w 4FSWMFU"1*ඇґଘ w 4FSWMFUίϯςφͰ جຊతʹ ಈ࡞͠ͳ͍ w ΈࠐΈ/FUUZͰಈ࡞ 31
WebϑϨʔϜϫʔΫ w εςʔτϨεΞʔΩςΫνϟ w αʔόଆηογϣϯͳ͠ʂ w ΫϥΠΞϯτଆ$PPLJFηογϣϯ w ҉߸Խ͞Εͨ,#·Ͱͷจࣈྻ w
'MBTIείʔϓఏڙ w ΦϒδΣΫτΩϟογϡ$BDIF"1*ͰରԠ 32 εέʔϥϒϧ
ϗοτϦϩʔυ w αʔόΛ࠶ىಈͤͣʹ։ൃ w ϦΫΤετຖʹιʔείʔυͷߋ৽ΛνΣοΫ w ΈࠐΈ&$+ͰίϯύΠϧ w Ϋϥεϩʔμࠩ͠ସ͑ 33
ϗοτϦϩʔυ w +BWB4DBMBιʔεҎ֎੩తݕࠪ w Ξηοτ w $P⒎FF4DSJQU -&44 w ϏϡʔςϯϓϨʔτ
w ϧʔςΟϯά w σʔλϕʔεεΩʔϚ 34
εΩʔϚཧ w &WPMVUJPOT w 3BJMTͷ%#ϚΠάϨʔγϣϯͱ΄΅ಉ͡ 35 Άͪͬͱԡͯ͠ εΩʔϚߋ৽ʂ
ϑϧελοΫ w 8FC։ൃʹඞཁͳػೳΛσϑΥϧτఏڙ w .7$ w 03. w 8FC4PDLFU w
8FCαʔϏεΫϥΠΞϯτ w +40/ 9.- w $BDIF w +PC w 5FTU w FUD 36
Ϟδϡʔϧ w ͦͷଞͷศརͳػೳΛϞδϡʔϧͰఏڙ w "VUIFOUJDBUJPOBOE"VUIPSJ[BUJPO !HBLV[[[[͞Μ w 'MZXBZ !UPUPUPTIJ͞Μ
w 4BTT w 4DBMJLF+%#$ !TFSBUDI͞Μ w 4XBHHFS w 5IZNFMFBG w FUD 37
Java/Scala API w 1MBZ w 4DBMB"1*ϞδϡʔϧͰαϙʔτ w 1MBZ w ωΠςΟϒαϙʔτ
w +BWB"1* w QMBZNWDύοέʔδ w 4DBMB"1* w QMBZBQJNWDύοέʔδ 38 1MBZͰ QMBZKBWBBQJ QMBZTDBMBBQJ ʹมߋ༧ఆʂ
ඇಉظॲཧ w 1MBZ w ϦΫΤετ͝ͱʹεϨουΛׂΓͯΔಉظॲཧ w /FUUZ $PNNPOT+BWBqPXͰܧଓΛ࣮ w 1MBZ
w ϦΫΤετΛ"LLB"DUPSʹҕৡ͢Δඇಉظॲཧ w 1MBZͰετϦʔϜॲཧΛ"LLB4USFBNTʹஔ w 1MBZ Ͱ/FUUZΛ"LLB)551ʹஔ༧ఆ 39 ࠓޙ "LLBͱͷ ౷߹͕ਐΉ
Playͷ͍ํ 40 2.4/Java (͜͜Ͱ20ܦաͩͱ͍͍ײ͡)
Play ͷ͍ํ w 1MBZΛΠϯετʔϧ͢Δ w ϓϩδΣΫτΛ࡞Δ w ΞϓϦέʔγϣϯΛॻ͘ w Ϟσϧ
w Ϗϡʔ w ίϯτϩʔϥ w ϧʔςΟϯά 41
Πϯετʔϧ w લఏ w +%, w खॱ w "DUJWBUPSͷ[JQΛμϯϩʔυ͢Δ w
IUUQTQMBZGSBNFXPSLDPNEPXOMPBE w ҙͷॴʹల։͢Δ w 1"5)Λ௨͢ 42
ϓϩδΣΫτ࡞ w ςϯϓϨʔτΛ୳ͯ͠ϓϩδΣΫτΛ࡞Δ 43 BDUJWBUPSOFXʹ ϓϩδΣΫτ໊ͱ ςϯϓϨʔτ໊Λ͢
ϓϩδΣΫτ࡞ w BDUJWBUPSίϯιʔϧʹೖͬͯىಈ͢Δ 44 SVOͷલʹldz νϧμ Λ ͚ΔͱιʔεΛࢹͯ͠ ஞ࣍ίϯύΠϧ
ϓϩδΣΫτ࡞ w MPDBMIPTUʹΞΫηε 45
Activator UI w ࠇ͍ը໘͕ۤखͳਓ͚ 46 (6*ͰϓϩδΣΫτ࡞ ϏϧυىಈςετͳͲ
IDE w *OUFMMJ+*%&"Ͱ։͚ͩ͘ 47 &DMJQTFগ͠ ख͕ؒඞཁ
ΞϓϦέʔγϣϯ࡞ w 1MBZͷσΟϨΫτϦߏ 48
ΞϓϦέʔγϣϯ࡞ w 1MBZͷσΟϨΫτϦߏ 49 ΞϓϦέʔγϣϯιʔε֨ೲ༻ NPEFMTBTTFUT͜͜ʹ֨ೲ͢Δ ઃఆϑΝΠϧ֨ೲ༻ ެ։Ξηοτ֨ೲ༻ ςετιʔε֨ೲ༻
ΞϓϦέʔγϣϯྫ w ϢʔβҰཡදࣔը໘ 50
Ϟσϧ w NPEFMT6TFS 51 ຊདྷσʔλϕʔε͔Β औಘ͢ΔॲཧͷϞοΫ࣮ Q
Ϗϡʔ w BQQWJFXTMJTUTDBMBIUNM w ઌ಄ߦʹҾใΛهड़͢Δ w b!b͔Β࢝·Δߦ4DBMBͷίʔυ w WJFXTIUNMMJTUUFNQMBUFTDBMBʹίϯύΠϧ͞ΕΔ 52
4DBMB
ίϯτϩʔϥ w DPOUSPMMFST"QQMJDBUJPO w ςϯϓϨʔτ໊SFOEFSͰϏϡʔΛϨϯμϦϯάͰ͖Δ 53 WJFXTIUNM ͷ JNQPSUΛ Εͣʹʂ
ϧʔςΟϯά w DPOGSPVUFT w ϧʔςΟϯάใΛҰݩཧ w SPVUFS3PVUFTTDBMBʹίϯύΠϧ͞ΕΔ 54 ΞΫγϣϯʹ)551ϦΫΤετ ΛϚοϐϯά͢Δ
ಈ࡞֬ೝ w MPDBMIPTUVTFSTʹΞΫηε 55 αʔόΛ࠶ىಈͤͣʹ ػೳΛՃʂ
JSON w +40/Λฦ͢Α͏ίϯτϩʔϥΛมߋ 56
ಈ࡞֬ೝ w MPDBMIPTUVTFSTʹΞΫηε 57 αʔόΛ࠶ىಈͤͣʹ ػೳΛมߋʂ
ͦͷଞͷػೳ w υΩϡϝϯτΛࢀর 58 ຊޠͰ Ұ෦ ಡΊ·͢ʂ
Playͷར/ܽ 59 (͜͜Ͱ30ܦաͩͱ͍͍ײ͡)
Play1 w ར w ҆ఆੑɻେ͖ͳ༷มߋͳ͍ݟࠐΈ w ܰշͳ։ൃ w ܽ w
+BWBͰͳ͍Կ͔ w όΠτίʔυૢ࡞ʹΑΔ༧ظ͠ͳ͍ಈ࡞ w ਐԽͷݶք w αϙʔτମ੍ 60 -PNCPLͱͷ ૬ੑ͕ѱ͍Β͍͠
Play2 w ར w 4DBMB8FCϑϨʔϜϫʔΫͷσϑΝΫτελϯμʔυ w ϦΞΫςΟϒͷઌਐతͳऔΓΈ w -JHIUCFOEࣾͷαϙʔτ w
ܽ w ԼҐඇޓੑ w 4DBMBͱ1MBZํͷɻै͢Δ֮ޛΛ w ίϯύΠϧ w ۚͷؙ ߴ͍Ϛγϯ Ͱ֓Ͷղܾ 61
·ͱΊ 62
·ͱΊ w 1MBZͷྺ࢙ w 1MBZͱ1MBZ͕͋Δ w 1MBZͷಛ w 4FSWMFU"1*ඇґଘ w
4FBTBS 4USVUT͔ΒͷҠߦͦΕͳΓʹେม w εςʔτϨε w Ϋϥυ࣌ڧ੍Ϊϓε w ϗοτϦϩʔυ w αʔό࠶ىಈෆཁʂ 63 ґଘੑΛՃͨ͠߹ TCUSFMPBE͕ඞཁQ
·ͱΊ w 1MBZͷ͍ํ w ؆୯Πϯετʔϧ w ϞσϧϏϡʔίϯτϩʔϥϧʔςΟϯά w 1MBZͷརܽ w
1MBZ҆ఆܰշ w +BWBʹର͢Δઓͷྺ࢙ w 1MBZ҆৺ઌਐత w ϦΞΫςΟϒͷઌۦ͚ w ۀͰͷ͝ར༻ܭըతʹʂ 64
Enjoy Play !! 65
Thank you :-) 66