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
1
2.5k
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.6k
jjug ccc 2017 spring ccc_g1
garbagetown
8
13k
Other Decks in Technology
See All in Technology
Oracle Autonomous Database:サービス概要のご紹介
oracle4engineer
PRO
1
7.1k
再考 アクターモデル/ reconsider actor model
ytake
0
360
DroidKaigi 2024 たすけて!ViewModel
mhidaka
5
940
持続可能なソフトウェア開発を支える『GitHub CI/CD実践ガイド』
tmknom
7
1.4k
Road to Single Activity
yurihondo
2
240
OR学会2024秋_短期収益と将来のオフ方策評価性能を考慮したクーポン割当方策混合比の決定
recruitengineers
PRO
4
460
言葉は感情の近似値である。その感情と言葉の誤差を最小化しよう ~コミュニケーションにおけるアナログ/デジタル変換の課題に立ち向かう~
nktamago
0
230
Jetpack Compose Modifier 徹底解説 / Jetpack Compose Modifier
wiroha
0
200
ロリポップ! for Gamersを支えるインフラ/lolipop for gamers infrastructure
takumakume
0
130
社内の学びの場・コミュニティ形成とエンジニア同士のリレーションシップ構築/devreljapan2024
nishiuma
3
290
Tricentisにおけるテスト自動化へのAI活用ご紹介/20240910Shunsuke Katakura
shift_evolve
0
200
GC24 Recap: Interface Internals
task4233
0
140
Featured
See All Featured
Building Flexible Design Systems
yeseniaperezcruz
325
38k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
24
610
Debugging Ruby Performance
tmm1
72
12k
Speed Design
sergeychernyshev
22
430
Infographics Made Easy
chrislema
239
18k
A better future with KSS
kneath
235
17k
Unsuck your backbone
ammeep
667
57k
10 Git Anti Patterns You Should be Aware of
lemiorhan
653
58k
Intergalactic Javascript Robots from Outer Space
tanoku
268
26k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
41
6.5k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
278
13k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
363
22k
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