Slide 1

Slide 1 text

΋͏஌Βͳ͍ͱ͸ݴΘͤͳ͍! Play Framework͸͡ΊͷҰา JJUG CCC 2016 Spring #jjug_ccc #ccc_m62 ͠ΐ͜@sd_ts1017

Slide 2

Slide 2 text

͓஌Βͤ ͜ͷεϥΠυ͸SpeakerDeckʹެ։ࡁͰ͢ɻ https://goo.gl/wQfpk4 ϝϞ͍ͨ͠ํɺݟ͑ͮΒ͍ํ͸
 దٓͦͪΒΛ֬͝ೝ͍ͩ͘͞ɻ

Slide 3

Slide 3 text

Who am I? • ͠ΐ͜(@sd_ts1017) • PHP(Laravel)/Scala࢖͍ • ݩJavaΤϯδχΞ • dots.ঁࢠ෦ एঁক • Geek Women JapanӡӦ

Slide 4

Slide 4 text

ࠓ೔࿩͢͜ͱ 1. Play Framework ͷ֓ཁ 2. Play Framework ͷಛ௃ 3. ʮ͸͡ΊͷҰาʯΛ౿Έग़͢ 4. Spring Frameworkͱͷൺֱ

Slide 5

Slide 5 text

ࠓ೔࿩͞ͳ͍͜ͱ 1. Play Frameworkಋೖ࣌ʹݕ౼͢΂͖͜ͱ 2. Play FrameworkΛಋೖͨ࣌͠ͷTips ↑΋ͬͱόϦόϦ࡞ͬͯΔํʹฉ͖͍ͨ

Slide 6

Slide 6 text

͓٬͞Μௐࠪ

Slide 7

Slide 7 text

ීஈ࢖͍ͬͯΔݴޠ 1. Java 2. Scala 3. ͲͪΒͰ΋ͳ͍

Slide 8

Slide 8 text

Λ ஌͍ͬͯ·͔͢ʁ 1. ஌͍ͬͯΔ 2. ஌Βͳ͍

Slide 9

Slide 9 text

৮ͬͨ͜ͱ͕͋Γ·͔͢ʁ 1. ͋Δ 2. ͳ͍ Λ

Slide 10

Slide 10 text

࢓ࣄͰ࢖͍ͬͯ·͔͢ʁ 1. ࢖͍ͬͯΔ 2. ࢖͍ͬͯͳ͍ Λ

Slide 11

Slide 11 text

Ͳͷ͘Β͍ཧղ͍ͯ͠·͔͢ʁ Λ 1. ʮJavaͱScala޲͚ϑϨʔϜϫʔΫʯͬͯҐ 2. νϡʔτϦΞϧͷϨϕϧͳΒΘ͔ΔΑ 3. Կͱͳ͘ಛ௃Θ͔ΔΑ 4. Ұ௨Γڭ͑ΒΕ·͢Α

Slide 12

Slide 12 text

͋Γ͕ͱ͏͍͟͝·͢ʂ

Slide 13

Slide 13 text

ຊ୊

Slide 14

Slide 14 text

1.Play Frameworkͷ֓ཁ

Slide 15

Slide 15 text

Play Frameworkͱ͸ • ”The High Velocity(=ߴ଎) Web Framework” • Java, Scala޲͚WebϑϨʔϜϫʔΫ • ݱࡏͷόʔδϣϯ͸2.5.3 • 2007೥ʹ෹Zenexity͕ࣾ։ൃˠ2008/5ʹެ։ ˠݱࡏɺLightbend͕ࣾ։ൃ

Slide 16

Slide 16 text

ಋೖࣄྫ • Scala×Play FrameworkͰಋೖ͍ͯ͠Δ֤ࣾ

Slide 17

Slide 17 text

Play޲͍͍ͯΔਓ ✓ JVMϢʔβ ✓ ܕ҆શɾؔ਺ܕϓϩάϥϛϯάେ޷͖ʂ ✓ େن໛ͳνʔϜͰ։ൃ͍ͯ͠Δ ✓ ϑϧελοΫͳϑϨʔϜϫʔΫΛٻΊ͍ͯΔ

Slide 18

Slide 18 text

2. Play Frameworkͷಛ௃

Slide 19

Slide 19 text

ಛ௃ ✓ ඇಉظϓϩάϥϛϯά ✓ ܕ҆શੑ΁ͷϑΥʔΧε ✓ Java/ScalaͷωΠςΟϒαϙʔτ ✓ ڧྗͳϏϧυγεςϜ ✓ σʔλετΞͱϞσϧͷ౷߹

Slide 20

Slide 20 text

• Play͸AkkaΛωΠςΟϒαϙʔτ • AkkaɿJava/ScalaͰར༻ՄೳͳΞΫλʔϞσ ϧΛద༻ͨ͠εέʔϥϏϦςΟ΍଱ো֐ੑʹ ༏Εͨฒߦॲཧ͕ॻ͚ΔϥΠϒϥϦ • ΞΫλʔϞσϧɿฒྻ౓͕ߴ͍γεςϜΛѻ ͏Ϟσϧͱͯ͠ݱ࣌఺Ͱ࠷ྑ ඇಉظϓϩάϥϛϯά

Slide 21

Slide 21 text

ܕ҆શੑ΁ͷϑΥʔΧε • ίϯύΠϥ͕ίʔυͷ͋Δ෦෼ΛνΣοΫͰ͖Δɺ ੩తܕ෇͚ݴޠΛબΜͰ͍Δ • Play 2.x͔ΒScalaϕʔεͷςϯϓϨʔτΤϯδϯ Twirlʢͱ͎͋ΔʣΛ࠾༻ • ׬શʹίϯύΠϧ͕ߦΘΕΔ͜ͱͰɺςϯϓϨʔ τɾϧʔτϑΝΠϧͷύοέʔδԽɾ࠶ར༻͕༰ қ && ࣮ߦ࣌ͷύϑΥʔϚϯε޲্͕ݟࠐΊΔ

Slide 22

Slide 22 text

Java/ScalaͷωΠςΟϒαϙʔτ • Play 1.x͸JavaͷΈαϙʔτ • Scala͸Play 2.x͔Βαϙʔτɻ1.xܥ͸֎෦Ϟ δϡʔϧऔΓࠐΈ͕ඞཁ • ScalaωΠςΟϒαϙʔτ౳Λཧ༝ʹ1.xܥͱ 2.xܥ͸େ͖͘ҧ͏

Slide 23

Slide 23 text

ڧྗͳϏϧυγεςϜ • Play 1.xͰ͸PythonϕʔεͷεΫϦϓτ͕ఏڙ ͞Ε͍ͯͨ • Play 2.x͔ΒSBTΛPlayʹ౷߹͠ɺΧελϚΠ ζ͕؆୯ʹͳͬͨ • SBTಋೖʹΑΓɺ։ൃதͰ΋ϥΠϒίϯύΠϧ ΍ϦϩʔσΟϯά͕Մೳʹʂ

Slide 24

Slide 24 text

σʔλετΞͱϞσϧͷ౷߹ • σʔλετΞͷϞσϧ͸ଟ༷Խ͍ͯ͠ΔͷͰ ͦΕΒΛந৅Խ͢Δͷ͸΄ͱΜͲෆՄೳ • ࠷খݶͷϔϧύʔΛఏڙ • ಛʹཁٻΛ࣋ͨͳ͍Ϣʔβʔ޲͚ʹRelational Database Access Libraryͱͯ͠Ebean, JPA, AnormΛಉࠝ

Slide 25

Slide 25 text

3. ʮ͸͡ΊͷҰาʯΛ౿Έग़͢

Slide 26

Slide 26 text

ʮ͸͡ΊͷҰาʯΛ౿Έग़͢ • ஌͍ͬͯΔ͚ͩͰ͸ٕज़͸਎ʹ͔ͭͳ͍ʢࣗռ • ࣮ࡍʹखΛಈ͔ͯ͠ɺPlay Framework΁ͷ
 ཧղΛਂΊ·͠ΐ͏ • ʢ͜ͷεϥΠυ௨Γʹૢ࡞͢Ε͹Ͱ͖·͢ʣ

Slide 27

Slide 27 text

͸͡ΊͷҰา 1. ʢલఏ৚݅ʣJDK1.8ΛΠϯετʔϧ 2. Lightened ActivatorΛΠϯετʔϧ͠ىಈ 3. Play FrameworkͷϓϩδΣΫτΛ࡞Δ 4. ϓϩδΣΫτΛ࣮ߦ͢Δ

Slide 28

Slide 28 text

JavaͷόʔδϣϯΛ֬ೝ͢Δɻ java version “1.8.x_xx”ͱදࣔ͞ΕΕ͹ෆཁ JDK1.8Ҏ߱ΛΠϯετʔϧ $ java -version java version "1.8.0_66" Java(TM) SE Runtime Environment (build 1.8.0_66-b17) Java HotSpot(TM) 64-Bit Server VM (build 25.66-b17, mixed mode) $ java -version

Slide 29

Slide 29 text

Lightened ActivatorΛΠϯετʔϧ 1. Play Framework ެࣜHP͔Βμ΢ϯϩʔυ

Slide 30

Slide 30 text

2. μ΢ϯϩʔυͨ͠ZIPΛల։͢Δ 3. activatorΛىಈ Lightened ActivatorΛΠϯετʔϧ $ cd <ల։ͨ͠σΟϨΫτϦ>¥bin $ activator ui

Slide 31

Slide 31 text

4. Lightened Activator͕ىಈͨ͜͠ͱΛ֬ೝ Lightened ActivatorΛΠϯετʔϧ

Slide 32

Slide 32 text

σϞ ϓϩδΣΫτ࡞੒ͯ͠ΈΔ

Slide 33

Slide 33 text

1. Activatorͷࠨଆϝχϡʔ͔ΒSeedΛબ୒ Play FrameworkͷϓϩδΣΫτΛ࡞Δ

Slide 34

Slide 34 text

2. Create a new appͰ“Play Java Seed”Λબ୒ Play FrameworkͷϓϩδΣΫτΛ࡞Δ

Slide 35

Slide 35 text

3. Activator ͷӈԼͰద౰ͳσΟϨΫτϦΛࢦఆ ͠ɺ“Create app”Λԡ͢ Play FrameworkͷϓϩδΣΫτΛ࡞Δ

Slide 36

Slide 36 text

4. ࡞੒͞ΕΔͷΛ଴ͭ Play FrameworkͷϓϩδΣΫτΛ࡞Δ

Slide 37

Slide 37 text

5. ϓϩδΣΫτ࡞੒׬ྃʂ Play FrameworkͷϓϩδΣΫτΛ࡞Δ

Slide 38

Slide 38 text

ϓϩδΣΫτΛ࣮ߦ͢Δ 1. ࠨଆϝχϡʔʹ͋Δ”Run”Λԡ͢

Slide 39

Slide 39 text

ϓϩδΣΫτΛ࣮ߦ͢Δ 2. “Run”Λԡ͢

Slide 40

Slide 40 text

ϓϩδΣΫτΛ࣮ߦ͢Δ 3. ࣮ߦΛ֬ೝ͢Δ

Slide 41

Slide 41 text

ϓϩδΣΫτΛ࣮ߦ͢Δ 4. ࣮ߦ͞Εͨ͜ͱΛ֬ೝ

Slide 42

Slide 42 text

Congratulations!! Congratulations!

Slide 43

Slide 43 text

4. Spring Frameworkͱͷൺֱ

Slide 44

Slide 44 text

Java͸SpringͰ͢ΑͶ… • ࠓճͷJJUG CCC͚ͩͰ4ηογϣϯ͋Δ • Play͸2012೥Ҏདྷ1ηογϣϯ΋ͳ͔ͬͨ • ͦΜͳJavaΤϯδχΞʹ΋஌ͬͯ΄͍͠
 JavaͷϑϨʔϜϫʔΫʮPlay Frameworkʯ

Slide 45

Slide 45 text

SpringΑΓPlay͕͓͢͢Ίͳॴ 1. ։ൃͷੜ࢈ੑ • Play͸։ൃதͰ΋ϦϩʔσΟϯάɾϥΠϒί ϯύΠϧ͕Մೳʂ • Spring͸มߋΛݟΕΔঢ়ଶʹͳΔ·Ͱʹ࣌ ֻ͕͔ؒΔ

Slide 46

Slide 46 text

SpringΑΓPlay͕͓͢͢Ίͳॴ 2. ϊϯϒϩοΩϯάI/O • Play͸׬શʹϊϯϒϩοΩϯάI/OͳͷͰϚΠΫϩαʔϏ εԽʹ޲͍͍ͯΔ • SpringͰ͸Reactive Spring Frameworkͷจ຺Ͱϊϯϒϩ οΩϯάI/O͸࣮ݱՄೳɻ • ࢀߟɿJJUG CCC 2015 FallʮReactive WebΞϓϦέʔ γϣϯ - ͦͯ͠Spring 5΁ʯ

Slide 47

Slide 47 text

SpringΑΓPlay͕͓͢͢Ίͳॴ 3. ॳ৺ऀͰ΋ೖΓ΍͍͢ • Play͸TutorialͷγφϦΦ͕ॆ࣮͍ͯ͠Δɻ Akka΍ElasticSearchͳͲͱͷ࿈ܞ΋TutorialԽ • ʮࠇ͍ը໘ۤखʯʮԿͰάάΕ͹͍͍͔Θ͔ Βͳ͍ʯʮͲͷϑΝΠϧͷ͜ͱΛݴ͍ͬͯΔͷ ͔Θ͔Βͳ͍ʯॳֶऀʹ޷ධͰͨ͠

Slide 48

Slide 48 text

Tutorial͸͜Μͳײ͡Ͱ͢

Slide 49

Slide 49 text

PlayΑΓSpring͕͓͢͢Ίͳॴ 1. ར༻ਓޱ͕ଟ͍෼৘ใ͕ଟ͍ • Qiitaͷ౤ߘ਺͸Playͷ̎ഒ 2. ԼҐޓ׵ੑ͕͋Δ • Play͸όʔδϣϯ͝ͱʹେ෯ͳมߋ͕͔͔Δ 3. Java΁ͷ௥ै͕ૣ͍

Slide 50

Slide 50 text

·ͱΊ

Slide 51

Slide 51 text

Play FrameworkͲ͏Ͱ͔͢ʁ • JavaΤϯδχΞ͕ܕ҆શ΍ΔͳΒPlay/Scala! • JavaΤϯδχΞ͕ؔ਺ܕ΍ΔͳΒPlay/Scalaʂ • ·ͣ͸࡞ͬͨΞϓϦͰνϡʔτϦΞϧ • ͦͷޙ͸Activatorʹ͋ΔTutorial͔Β޷͖ͳ΋ ͷΛʢHello Akka, Play Example FormͳͲ)

Slide 52

Slide 52 text

Λ ஌͍ͬͯ·͔͢ʁ 1. ஌͍ͬͯΔ 2. ஌Βͳ͍

Slide 53

Slide 53 text

Ͳͷ͘Β͍ཧղ͍ͯ͠·͔͢ʁ Λ 1. ʮJavaͱScala޲͚ϑϨʔϜϫʔΫʯͬͯҐ 2. νϡʔτϦΞϧͷϨϕϧͳΒΘ͔ΔΑ 3. Կͱͳ͘ಛ௃Θ͔ΔΑ 4. Ұ௨Γڭ͑ΒΕ·͢Α

Slide 54

Slide 54 text

ࢀߟࢿྉ • http://www.slideshare.net/brikis98/nodejs-vs- play-framework-with-japanese-subtitles • http://www.slideshare.net/sifue/akka-39611889 • https://www.playframework.com/ • https://www.quora.com/What-is-the-current- webstack-LinkedIn-uses/answer/Yevgeniy- Brikman

Slide 55

Slide 55 text

͸͡ΊͷҰาɺ ౿Έग़͠·ͤΜ͔ʁ ΋͏஌Βͳ͍ͱ͸ݴΘͤͳ͍!Play Framework͸͡ΊͷҰา