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
yuichiro umezawa
June 28, 2016
Technology
2.6k
1
Share
The High Velocity Web Framework For Java and Scala
2016-06-27 JJUG ナイトセミナー
yuichiro umezawa
June 28, 2016
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
14k
Other Decks in Technology
See All in Technology
Pythonでベイズモデリング
soogie
0
170
TypeScriptはどのようにどこまで推論できるのか ─ とにかく as は禁止で
ypresto
1
350
権限管理設計を完全に理解した
rsugi
1
180
RubyでRuby拡張を書いたらRubyより35倍速になったってどういうこと??
kazuho
3
570
キャリア25年目にしてTypeScript に出会うまで - 「型」を通じて振り返るプログラミング言語遍歴 / Meeting TypeScript After 25 Years in Tech - Looking Back at My Programming Language Journey Through "Types"
bitkey
PRO
2
190
情シスがMCP環境導入時に打ちのめされる認可の崖
oidfj
0
280
インプロセスQAのための要因から捉えるプロジェクトリスクマネジメントnano #1 開発リソース効率状態への対処 #jasstnano
barus_qa
0
230
なぜ、IAMロールのプリンシパルに*による部分マッチングが使えないのか? / 20260518-ssmjp-iam-role-principal
opelab
3
150
Claude Code で使える DuckDB Skills を試してみた / DuckDB Skills and Claude Code
masahirokawahara
2
2.1k
LookerとADKで作る社内AIエージェント
chanyou0311
0
300
最新技術を"今は選ばない"という技術選定
leveragestech
PRO
0
380
TSKaigi 2026 - enumよ、さようなら
teamlab
PRO
2
390
Featured
See All Featured
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
300
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.5k
We Are The Robots
honzajavorek
0
230
The Cult of Friendly URLs
andyhume
79
6.9k
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.7k
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
2
4k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.4k
Designing Powerful Visuals for Engaging Learning
tmiket
1
370
BBQ
matthewcrist
89
10k
世界の人気アプリ100個を分析して見えたペイウォール設計の心得
akihiro_kokubo
PRO
70
39k
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
170
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