Play1
w +BWBͰͳ͍Կ͔
w HSPPWZςϯϓϨʔτ
w QZUIPOεΫϦϓτ
w ׂΓͬͨύοέʔδ໊
w QMBZ
QMBZEC
QMBZNWD
FUD
w ৼΓͬͨΫϥε໊
w +BWBKBWB
'KBWB
FUD
w ྫ֎Λܧঝͨ͠Γ
w ϦϑϨΫγϣϯόΠτίʔυૢ࡞Λଟ༻
18
Slide 19
Slide 19 text
Play1
w +BWBͷඇ߹ཧͳ׳शػೳෆͷઓ
w Γա͗ײ͋Δֶ͕Ϳ͖ͱ͜Ζଟ͍
19
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
ؖࠃ
Ϧʔδϣϯ
Slide 23
Slide 23 text
2012~
w ϑϨʔϜϫʔΫͷੈަ
w 4USVUT&0-
w 4FBTBS&0-
w +BWBͷ෮׆
w +BWB
4QSJOH
+BWB&&
w ΫϥυϞόΠϧͷຊ֨Խ
w +BWB.7$ϑϨʔϜϫʔΫͷઌʂ
ˠ 1MBZ
23
Slide 24
Slide 24 text
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
ޙड़
ʹઐ೦
Slide 25
Slide 25 text
Play2
w 4DBMBͰશ໘తʹॻ͖͠
w ॳػೳ͕ෆेͰ࣭ෆ҆ఆ
w ลΓ͔Β࣭͕҆ఆ
w όʔδϣϯΞοϓຖʹେͳมߋ
w "LLBΛ౷߹
w 3FBDUJWF1MBUGPSNͷҰ෦ʹ
25
Akka
w ฏߦࢄॲཧϑϨʔϜϫʔΫ
w ΞΫλʔϞσϧ
w "LLB4USFBNT
w "LLBʹΑΔ3FBDUJWF4USFBNT࣮
w 1MBZͷετϦʔϜॲཧʹར༻
w "LLB)551
w "LLB4USFBNʹΑΔ൚༻)551ϑϨʔϜϫʔΫ
w 1MBZͷ)551ج൫ʹͳΔ༧ఆ
27
+%,ʹ
3FBDUJWF4USFBNT
͕ೖΔ༧ఆ
Slide 28
Slide 28 text
Lagom
w ϚΠΫϩαʔϏεϑϨʔϜϫʔΫ
w 1MBZ্Ͱಈ࡞
w $234 ίϚϯυΫΤϦ
w $PNNBOEBOE2VFSZ3FTQPOTJCJMJUZ4FHSFHBUJPO
w FWFOUTPVSDJOH
w DJSDVJUCSFBLFS
w +BWB"1*
w কདྷతʹ4DBMB"1*ެ։༧ఆ
28
Slide 29
Slide 29 text
Playͷಛ
29
(͜͜Ͱ15ܦաͩͱ͍͍ײ͡)
Slide 30
Slide 30 text
Playͷಛ
w 8FCϑϨʔϜϫʔΫ
w ϗοτϦϩʔυ
w εΩʔϚཧ
w ϑϧελοΫ
w Ϟδϡʔϧ
w +BWB4DBMB"1*
w ඇಉظॲཧ
w FUD
30
Slide 31
Slide 31 text
WebϑϨʔϜϫʔΫ
w 4FSWMFU"1*ඇґଘ
w 4FSWMFUίϯςφͰ جຊతʹ
ಈ࡞͠ͳ͍
w ΈࠐΈ/FUUZͰಈ࡞
31
Slide 32
Slide 32 text
WebϑϨʔϜϫʔΫ
w εςʔτϨεΞʔΩςΫνϟ
w αʔόଆηογϣϯͳ͠ʂ
w ΫϥΠΞϯτଆ$PPLJFηογϣϯ
w ҉߸Խ͞Εͨ,#·Ͱͷจࣈྻ
w 'MBTIείʔϓఏڙ
w ΦϒδΣΫτΩϟογϡ$BDIF"1*ͰରԠ
32
εέʔϥϒϧ
Slide 33
Slide 33 text
ϗοτϦϩʔυ
w αʔόΛ࠶ىಈͤͣʹ։ൃ
w ϦΫΤετຖʹιʔείʔυͷߋ৽ΛνΣοΫ
w ΈࠐΈ&$+ͰίϯύΠϧ
w Ϋϥεϩʔμࠩ͠ସ͑
33
Slide 34
Slide 34 text
ϗοτϦϩʔυ
w +BWB4DBMBιʔεҎ֎੩తݕࠪ
w Ξηοτ
w $P⒎FF4DSJQU
-&44
w ϏϡʔςϯϓϨʔτ
w ϧʔςΟϯά
w σʔλϕʔεεΩʔϚ
34
Slide 35
Slide 35 text
εΩʔϚཧ
w &WPMVUJPOT
w 3BJMTͷ%#ϚΠάϨʔγϣϯͱ΄΅ಉ͡
35
Άͪͬͱԡͯ͠
εΩʔϚߋ৽ʂ
Slide 36
Slide 36 text
ϑϧελοΫ
w 8FC։ൃʹඞཁͳػೳΛσϑΥϧτఏڙ
w .7$
w 03.
w 8FC4PDLFU
w 8FCαʔϏεΫϥΠΞϯτ
w +40/
9.-
w $BDIF
w +PC
w 5FTU
w FUD
36
Slide 37
Slide 37 text
Ϟδϡʔϧ
w ͦͷଞͷศརͳػೳΛϞδϡʔϧͰఏڙ
w "VUIFOUJDBUJPOBOE"VUIPSJ[BUJPO !HBLV[[[[͞Μ
w 'MZXBZ !UPUPUPTIJ͞Μ
w 4BTT
w 4DBMJLF+%#$ !TFSBUDI͞Μ
w 4XBHHFS
w 5IZNFMFBG
w FUD
37
Slide 38
Slide 38 text
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
ʹมߋ༧ఆʂ
Slide 39
Slide 39 text
ඇಉظॲཧ
w 1MBZ
w ϦΫΤετ͝ͱʹεϨουΛׂΓͯΔಉظॲཧ
w /FUUZ$PNNPOT+BWBqPXͰܧଓΛ࣮
w 1MBZ
w ϦΫΤετΛ"LLB"DUPSʹҕৡ͢Δඇಉظॲཧ
w 1MBZͰετϦʔϜॲཧΛ"LLB4USFBNTʹஔ
w 1MBZ
Ͱ/FUUZΛ"LLB)551ʹஔ༧ఆ
39
ࠓޙ
"LLBͱͷ
౷߹͕ਐΉ
Slide 40
Slide 40 text
Playͷ͍ํ
40
2.4/Java
(͜͜Ͱ20ܦաͩͱ͍͍ײ͡)
Slide 41
Slide 41 text
Play ͷ͍ํ
w 1MBZΛΠϯετʔϧ͢Δ
w ϓϩδΣΫτΛ࡞Δ
w ΞϓϦέʔγϣϯΛॻ͘
w Ϟσϧ
w Ϗϡʔ
w ίϯτϩʔϥ
w ϧʔςΟϯά
41
Slide 42
Slide 42 text
Πϯετʔϧ
w લఏ
w +%,
w खॱ
w "DUJWBUPSͷ[JQΛμϯϩʔυ͢Δ
w IUUQTQMBZGSBNFXPSLDPNEPXOMPBE
w ҙͷॴʹల։͢Δ
w 1"5)Λ௨͢
42
Slide 43
Slide 43 text
ϓϩδΣΫτ࡞
w ςϯϓϨʔτΛ୳ͯ͠ϓϩδΣΫτΛ࡞Δ
43
BDUJWBUPSOFXʹ
ϓϩδΣΫτ໊ͱ
ςϯϓϨʔτ໊Λ͢
Slide 44
Slide 44 text
ϓϩδΣΫτ࡞
w BDUJWBUPSίϯιʔϧʹೖͬͯىಈ͢Δ
44
SVOͷલʹldz νϧμ
Λ
͚ΔͱιʔεΛࢹͯ͠
ஞ࣍ίϯύΠϧ
Slide 45
Slide 45 text
ϓϩδΣΫτ࡞
w MPDBMIPTUʹΞΫηε
45
Slide 46
Slide 46 text
Activator UI
w ࠇ͍ը໘͕ۤखͳਓ͚
46
(6*ͰϓϩδΣΫτ࡞
ϏϧυىಈςετͳͲ
Slide 47
Slide 47 text
IDE
w *OUFMMJ+*%&"Ͱ։͚ͩ͘
47
&DMJQTFগ͠
ख͕ؒඞཁ
Slide 48
Slide 48 text
ΞϓϦέʔγϣϯ࡞
w 1MBZͷσΟϨΫτϦߏ
48
Slide 49
Slide 49 text
ΞϓϦέʔγϣϯ࡞
w 1MBZͷσΟϨΫτϦߏ
49
ΞϓϦέʔγϣϯιʔε֨ೲ༻
NPEFMTBTTFUT͜͜ʹ֨ೲ͢Δ
ઃఆϑΝΠϧ֨ೲ༻
ެ։Ξηοτ֨ೲ༻
ςετιʔε֨ೲ༻
Slide 50
Slide 50 text
ΞϓϦέʔγϣϯྫ
w ϢʔβҰཡදࣔը໘
50
Slide 51
Slide 51 text
Ϟσϧ
w NPEFMT6TFS
51
ຊདྷσʔλϕʔε͔Β
औಘ͢ΔॲཧͷϞοΫ࣮
Q
Slide 52
Slide 52 text
Ϗϡʔ
w BQQWJFXTMJTUTDBMBIUNM
w ઌ಄ߦʹҾใΛهड़͢Δ
w b!b͔Β࢝·Δߦ4DBMBͷίʔυ
w WJFXTIUNMMJTUUFNQMBUFTDBMBʹίϯύΠϧ͞ΕΔ
52
4DBMB
Slide 53
Slide 53 text
ίϯτϩʔϥ
w DPOUSPMMFST"QQMJDBUJPO
w ςϯϓϨʔτ໊SFOEFSͰϏϡʔΛϨϯμϦϯάͰ͖Δ
53
WJFXTIUNMͷ
JNQPSUΛ
Εͣʹʂ
Slide 54
Slide 54 text
ϧʔςΟϯά
w DPOGSPVUFT
w ϧʔςΟϯάใΛҰݩཧ
w SPVUFS3PVUFTTDBMBʹίϯύΠϧ͞ΕΔ
54
ΞΫγϣϯʹ)551ϦΫΤετ
ΛϚοϐϯά͢Δ
Slide 55
Slide 55 text
ಈ࡞֬ೝ
w MPDBMIPTUVTFSTʹΞΫηε
55
αʔόΛ࠶ىಈͤͣʹ
ػೳΛՃʂ
Slide 56
Slide 56 text
JSON
w +40/Λฦ͢Α͏ίϯτϩʔϥΛมߋ
56
Slide 57
Slide 57 text
ಈ࡞֬ೝ
w MPDBMIPTUVTFSTʹΞΫηε
57
αʔόΛ࠶ىಈͤͣʹ
ػೳΛมߋʂ
Slide 58
Slide 58 text
ͦͷଞͷػೳ
w υΩϡϝϯτΛࢀর
58
ຊޠͰ
Ұ෦
ಡΊ·͢ʂ
Slide 59
Slide 59 text
Playͷར/ܽ
59
(͜͜Ͱ30ܦաͩͱ͍͍ײ͡)
Slide 60
Slide 60 text
Play1
w ར
w ҆ఆੑɻେ͖ͳ༷มߋͳ͍ݟࠐΈ
w ܰշͳ։ൃ
w ܽ
w +BWBͰͳ͍Կ͔
w όΠτίʔυૢ࡞ʹΑΔ༧ظ͠ͳ͍ಈ࡞
w ਐԽͷݶք
w αϙʔτମ੍
60
-PNCPLͱͷ
૬ੑ͕ѱ͍Β͍͠
Slide 61
Slide 61 text
Play2
w ར
w 4DBMB8FCϑϨʔϜϫʔΫͷσϑΝΫτελϯμʔυ
w ϦΞΫςΟϒͷઌਐతͳऔΓΈ
w -JHIUCFOEࣾͷαϙʔτ
w ܽ
w ԼҐඇޓੑ
w 4DBMBͱ1MBZํͷɻै͢Δ֮ޛΛ
w ίϯύΠϧ
w ۚͷؙ ߴ͍Ϛγϯ
Ͱ֓Ͷղܾ
61
Slide 62
Slide 62 text
·ͱΊ
62
Slide 63
Slide 63 text
·ͱΊ
w 1MBZͷྺ࢙
w 1MBZͱ1MBZ͕͋Δ
w 1MBZͷಛ
w 4FSWMFU"1*ඇґଘ
w 4FBTBS
4USVUT͔ΒͷҠߦͦΕͳΓʹେม
w εςʔτϨε
w Ϋϥυ࣌ڧ੍Ϊϓε
w ϗοτϦϩʔυ
w αʔό࠶ىಈෆཁʂ
63
ґଘੑΛՃͨ͠߹
TCUSFMPBE͕ඞཁQ
Slide 64
Slide 64 text
·ͱΊ
w 1MBZͷ͍ํ
w ؆୯Πϯετʔϧ
w ϞσϧϏϡʔίϯτϩʔϥϧʔςΟϯά
w 1MBZͷརܽ
w 1MBZ҆ఆܰշ
w +BWBʹର͢Δઓͷྺ࢙
w 1MBZ҆৺ઌਐత
w ϦΞΫςΟϒͷઌۦ͚
w ۀͰͷ͝ར༻ܭըతʹʂ
64