Slide 1

Slide 1 text

8FC"1*ͷ ઃܭͱߏங JO1MBZGSBNFXPSL4DBMB Ϋϥεϝιουגࣜձࣾɹ࿨ా༞հ #dots_meetup

Slide 2

Slide 2 text

• ձࣾ֓ཁ • Ϋϥεϝιουגࣜձࣾ • ʮ͢΂ͯͷਓʑͷ૑଄׆ಈʹߩݙ͠ଓ͚Δʯ • ࣄۀ಺༰ • "84ίϯαϧςΟϯά • ϞόΠϧΞϓϦ։ൃ • Ϗοάσʔλ෼ੳ • %FWFMPQFST*0ͷϒϩά 2 ձࣾ঺հ

Slide 3

Slide 3 text

• ໊લɿ࿨ా༞հ • ܦྺ • ೥݄ɿ۝भେֶେֶӃଔ • ೥݄ɿෆಈ࢈޲͚Ϋϥ΢υαʔϏεͷ։ൃձࣾ΁ೖࣾ • 8JDLU +BWB Ͱ8FCΞϓϦͷ։ൃɾอकӡ༻ • ೥݄ɿΫϥεϝιουגࣜձࣾ΁ೖࣾ • ϞόΠϧΞϓϦͷ"1*։ൃΛ୲౰ 3 ࣗݾ঺հ

Slide 4

Slide 4 text

ࠓ೔͸ɺϞόΠϧΞϓϦͷόοΫΤϯυ8FC"1*։ൃ ͷɺ͓࿩Ͱ͢

Slide 5

Slide 5 text

ͳͥࢲͨͪ͸৽͍ٕ͠ज़ΛٻΊΔͷ͔ • αʔϏεͷ࣭Λ্͍͛ͨ • αʔϏε๊͕͑Δ໰୊Λղܾ͍ͨ͠ • ։ൃޮ཰Λ্͍͛ͨ • ୯७ʹָ͍͠ • นʹͿͪ͋ͨͬͯղܾͨ͠ͱ͖ͷخ͠͞Λ΋ͱΊͯ • ϒϥϯσΟϯάʢձࣾͱͯ͠PSݸਓͱͯ͠ʣ 5

Slide 6

Slide 6 text

৽ٕज़ͷ࠾༻৽͍͠खஈͷ֫ಘ౤ࢿ

Slide 7

Slide 7 text

ࠓ೔࿩͢͜ͱ • ͳͥ1MBZGSBNFXPSL4DBMB͔ • ͳʹ͕ͭ͘ΕΔ͔ • ౤ࢿ͢ΔՁ஋͕͋Δ͔ 7

Slide 8

Slide 8 text

ͳͥ1MBZ4DBMB͔

Slide 9

Slide 9 text

4DBMBʁ • 0CKFDU0SJFOUFE.FFUT'VODUJPOBM • 53"*54 • $PNCJOFUIFqFYJCJMJUZPG
 +BWBTUZMFJOUFSGBDFT
 XJUIUIFQPXFSPGDMBTTFT
 5IJOLQSJODJQMFENVMUJQMFJOIFSJUBODF • 1"55&3/."5$)*/( • 5IJOLlTXJUDIzPOTUFSPJET
 .BUDIBHBJOTUDMBTTIJFSBSDIJFT 
 TFRVFODFT BOENPSF 9 The Scala Programming Language 
 http://www.scala-lang.org/

Slide 10

Slide 10 text

1MBZGSBNFXPSLʁ • %FWFMPQFSGSJFOEMZ • 5ZQFTBGFUZ • #VJMUJOUFTUJOHUPPMT • 4DBMFQSFEJDUBCMZ • /POCMPDLJOH*0 • #VJMUPO"LLB • .PEFSOXFCNPCJMF • 3&45GVMCZEFGBVMU • +40/JTBpSTUDMBTTDJUJ[FO 10 Play Framework - Build Modern & Scalable Web Apps with Java and Scala https://www.playframework.com/

Slide 11

Slide 11 text

ฐࣾʹͯ8"1*ͷ։ൃͰར༻ • ϞόΠϧόοΫΤϯυͱͯ͠ͷ8FC"1*Λ։ൃ͍ͯ͠·͢ • աڈʹ͸OPEFKT΍SVCZͰ΋ • ݱࡏ͸1MBZGSBNFXPSL4DBMB͕ϝΠϯ 11 O’Reilly Japan - ϚΠΫϩαʔϏεΞʔΩςΫνϟ https://www.oreilly.co.jp/books/9784873117607/

Slide 12

Slide 12 text

ٕज़ͷબఆ͸ͲͷΑ͏ʹߦͬͨͷ͔ • ։ൃ͢ΔγεςϜ͕େن໛ʹͳ͍ͬͯ͘ɺ௥Ճ։ൃ͕͋Δͱ ͍͏લఏʹཱͬͯߟ͑ͨ • ύϑΥʔϚϯε • 1MBZ4DBMBWTOPEFKTWT3VCZPO3BJMT • ࣾ಺ϕϯνϚʔΫͰ1MBZ4DBMBͷਓউͪ • େن໛ͳίʔυͷॻ͖΍͢͞ɾݟ΍͢͞ • ΦϒδΣΫτࢦ޲ͱؔ਺ܕͷ͍͍ͱ͜औΓ • ௥Ճɾमਖ਼ͷετϨεܰݮ 12

Slide 13

Slide 13 text

ͳͥ1MBZGSBNFXPSL4DBMB͔ • ։ൃ໘ • େن໛ɾ௥Ճ։ൃͷલఏʹͨͬͨͱ͖ͷϝϯςφϯεੑ • -JOLFE*OΛ͸͡Ίͱͨ͠େن໛γεςϜͰͷ࠾༻ࣄྫ͋Γ • ӡ༻໘ • +7."LLBɻੑೳ͕ظ଴Ͱ͖Δ • +BWBͰͷӡ༻஌ݟɾӡ༻πʔϧ͕ྲྀ༻Ͱ͖Δ 13 [*] The Play Framework at LinkedIn | LinkedIn Engineering https://engineering.linkedin.com/play/play- framework-linkedin

Slide 14

Slide 14 text

ͳʹ͕ͭ͘ΕΔ͔

Slide 15

Slide 15 text

ঢ়گઃఆ • ϞόΠϧΞϓϦ։ൃҊ݅Λड஫ͨ͠ɻ͓٬༷͸Ϣʔβاۀ • ཁٻͦͷ΋ͷ͸ϞόΠϧΞϓϦͱͦͷ$.4ͷ։ൃͰɺ8FC "1*΋Ұॹʹ։ൃ͢Δ • ͢Ͱʹళฮͷ104Ϩδ΍ϙʔλϧαΠτ޲͚ʹՔಇ͍ͯ͠Δ ଞϕϯμͷαʔϏε͕͋Δ • Ծ૝௨՟αʔϏεʢίΠϯͷݮࢉɺՃࢉʹରԠʣ • ܠ඼αʔϏεʢܠ඼ͷ෇༩ػೳ͕͋Δʣ 15

Slide 16

Slide 16 text

ঢ়گઃఆ 16

Slide 17

Slide 17 text

࿩ͷ͢͢Ίํ • ϞόΠϧόοΫΤϯυ΁ͷཁٻʹରͯ͠ɺ1MBZ 4DBMB "84 Λ࢖ͬͯͲͷΑ͏ʹઃܭɾ։ൃ͔ͨ͠Λ࣮૷୲౰ͷࢹ఺͔Β ࿩͠·͢ • Ϣʔβొ࿥ॲཧ • ଞͷαʔϏεͱ࿈ܞͨ͠ॲཧ • ςετʹΑΔ඼࣭ͷ޲্ 17

Slide 18

Slide 18 text

࿩ͷ͢͢Ίํ • ϞόΠϧόοΫΤϯυ΁ͷཁٻʹରͯ͠ɺ1MBZ 4DBMB "84 Λ࢖ͬͯͲͷΑ͏ʹઃܭɾ։ൃ͔ͨ͠Λ࣮૷୲౰ͷࢹ఺͔Β ࿩͠·͢ • Ϣʔβొ࿥ॲཧ • ଞͷαʔϏεͱ࿈ܞͨ͠ॲཧʢࠓ೔͸͜Εʣ • ςετʹΑΔ඼࣭ͷ޲্ 18

Slide 19

Slide 19 text

ίΠϯͱܠ඼Λ ަ׵Ͱ͖ΔΑ͏ʹͯ͠ɻ

Slide 20

Slide 20 text

՝୊ • ୯७ʹίΠϯΛݮΒͯ͠ܠ඼Λ͚ͭΔ͚ͩͰ͸ෆे෼ • ͭͷαʔϏεͷؒͰτϥϯβΫγϣϯΛ͸Εͳ͍͜ͱ͕࠷ େͷ՝୊ 20

Slide 21

Slide 21 text

ํ਑ • ͍ͪ͹Μආ͚͍ͨঢ়گ͸ɺ
 ίΠϯ͕ݮͬͯɺܠ඼͕෇༩Ͱ͖ͳ͍͜ͱɻ
 ๷ࢭ͢ΔͨΊʹɺ • ίΠϯΛݮΒ͢લʹϩοΫ • ܠ඼෇༩ʹࣦഊͨ͠ΒɺϦτϥΠΛ͔͚Δ • ։࢝ɾऴྃϩάΛग़͢ 21

Slide 22

Slide 22 text

࣮૷ 22

Slide 23

Slide 23 text

ॲཧͷϩοΫ • ͘͝୹͍࣌ؒʹɺҙਤͤͣ࿈ଓͯ͠ొ࿥ϦΫΤετ͕ඈΜͰ ͖ͨ৔߹ɺσʔλෆ੔߹͕ൃੜ͢Δ͔΋͠Εͳ͍ • ϞόΠϧΞϓϦ͚ͩʹ੍ޚΛٻΊΔͷ͸ࠅ • ႈ౳ੑΛ୲อͰ͖ͳ͍1651045ϦΫΤετΛอޢ͍ͨ͠ • 3FEJTͷTFUOYͷੑ࣭Λར༻ͯ͠ϩοΫΛ࣮ݱ͢Δ • &MBTUJDBDIFΛར༻͢Δ͜ͱͰϚϧναʔό؀ڥͰͷϩοΫ ػߏ͕࣮ݱͰ͖Δ 23

Slide 24

Slide 24 text

ϦτϥΠॲཧͷྫ • 424ͰϦτϥΠϝοηʔδΛ؅ཧ • ϝοηʔδͷडऔਓͱͳΔϫʔΧʔΛ
 1MBZGSBNFXPSLʹಉࠝ͞Ε͍ͯΔ"LLB"DUPSͰ࣮૷͢Δ • "DUPS͸෼ࢄγεςϜʹΑΔߴ͍ॲཧੑೳΛތΔ͕ɺࠓճͷέʔ εͰ͸4VQFSWJTPS4USBUFHZʹΑΔϑΥʔϧττϨϥϯεͷଆ ໘Λॏࢹ 24 Fault Tolerance — Akka Documentation http://doc.akka.io/docs/akka/snapshot/scala/fault-tolerance.html

Slide 25

Slide 25 text

։࢝ɾऴྃϩάͷྫ • <*/'0>GSPNUSBOTBDUJPOJO5SBOTBDUJPO"DUPS-PHHFSBLLBBDUPSEFGBVMU EJTQBUDIFS
 USBOTBDUJPOUZQF$PJO&YDIBOHFUSBOTBDUJPOUBH$PJO&YDIBOHF4UBSU USBOTBDUJPOUSBOTBDUJPO)BTI,FZGDEGCCFGC USBOTBDUJPOKTU5SBOTBDUJPO%BUF5JNF5 • <*/'0>GSPNUSBOTBDUJPOJO5SBOTBDUJPO"DUPS-PHHFSBLLBBDUPSEFGBVMU EJTQBUDIFS
 USBOTBDUJPOUZQF$PJO&YDIBOHFUSBOTBDUJPOUBH$PJO&YDIBOHF'JOJTI
 USBOTBDUJPOUSBOTBDUJPO)BTI,FZGDEGCCFGC
 USBOTBDUJPOQSFTFOU*E&
 USBOTBDUJPOKTU5SBOTBDUJPO%BUF5JNF5 USBOTBDUJPOSFTVMU4VDDFTTUSBOTBDUJPOOPUF$PJOFYDIBOHFDPNQMFUFEz • "DUPS-PHHJOHͰຊॲཧͷύϑΥʔϚϯεΛམͱͣ͞ඇಉظϩάग़ྗ͕Մೳ 25 Logging (Scala) — Akka Documentation http://doc.akka.io/docs/akka/2.0/scala/logging.html

Slide 26

Slide 26 text

ͳʹ͕ͭ͘ΕΔ͔ʁ • ෳ਺ͷϚΠΫϩαʔϏεͱ࿈ܞͨ͠όοΫΤϯυ • %ZOBNP%#΍424΋ҰछͷϚΠΫϩαʔϏε • ඇಉظʹΞΫηεɺཉ͍͠෦෼Λ౷߹ͯ͠ΫϥΠΞϯτ΁ฦ͢ • େن໛ͳ8FC"1* • σβΠϯύλʔϯ͕ద༻Ͱ͖ΔΫϥεߏ଄ • ؔ਺ܕͷ؆͕ܿ͞ద༻Ͱ͖ΔϩδοΫ • ߴՄ༻ΞϓϦέʔγϣϯ • +BWBͷڧྗͳΤίγεςϜͷԸܙʹ͔͋ͣΕΔ • l+7.্Ͱಈ͔͠ଓ͚Δʹ͸z஌ݟ͕ྲྀ༻Մೳ 26

Slide 27

Slide 27 text

ΞϦ͔ʁφγ͔ʁ

Slide 28

Slide 28 text

1MBZ4DBMB౤ࢿ͢ΔՁ஋͕͋Δ͔ʁ • ΞϦʂ • େن໛ʢΤϯυϙΠϯτ͕Ҏ্ʣ • όοΫΤϯυͱͯ͠ͷ"1*։ൃ • +BWB΍3VCZΤϯδχΞ͕ͦΘͦΘ͍ͯ͠Δ • ஫ҙʂ • ͪΐͬͱͨ͠αʔϏεΛ࡞Δఔ౓Ͱ͸ԸܙΛײ͡ͳ͍͔΋͠Ε·ͤ Μɻ΍ΔͳΒҊ݅ϨϕϧͰɻ৽αʔϏεɺϑϧϦχϡʔΞϧ • ڭҭίετɻΤίγεςϜ΋ؚΊͯ࢖͍͜ͳͤΔΑ͏ʹͳΔ͸
 ೥ఔ౓ඞཁɻͰ͖Ε͹ઌಋͯ͘͠ΕΔϝϯόʔ͕ډΔͱޮ཰ྑ͍ɻ 28

Slide 29

Slide 29 text

ฐࣾͰ͸͜ΜͳਓࡐΛืू͍ͯ͠·͢ • ࠷৽ͷٕज़Λ࣮Ҋ݅΁ੵۃతʹ౤ೖ͍ͨ͠ʂ • "84ɺαʔόʔαΠυɺϞόΠϧΞϓϦؔ͢Δઐ໳తͳΤ ϯδχΞͱҰॹʹಇ͖͍ͨʂ • %FWFMPQFST*0Ͱϒϩάॻ͖͍ͨʂ • εΩϧ • J04"OESPJE • +BWB4DBMB3VCZ • "84 29

Slide 30

Slide 30 text

νʔϜମ੍ • J04։ൃਓ • "OESPJE։ൃਓ • ϞόΠϧόοΫΤϯυ։ൃʢ8FC"1* $.4ʣਓ • Ϛωʔδϝϯτɺਐ௙؅ཧਓ 30

Slide 31

Slide 31 text

ར༻πʔϧ • 4MBDL • ϝϯόʔಉ࢜ͷίϛϡχέʔγϣϯɺ$*௨஌ɺϩά؂ࢹ௨஌ • (JU)VC5SBWJT$* • "OTJCMF$MPVE'PSNBUJPO • -PHFOUSJFT • %BUBEPH • ;VCF ;FO)VC 31

Slide 32

Slide 32 text

'"2 • ೖࣾͨ͠Βͦͷٕज़͹͔Γʁ • ͍͍͑ɺ΍ͬͺΓϞόΠϧΞϓϦ࡞Γ͍ͨɺαʔόαΠυ͕΍Γ ͍ͨɺΞϦͰ͢ɻ࣮ࡍʹҠͬͨΤϯδχΞͨ͘͞Μ͍·͢ • ٕज़ྗߴͦ͏ͳਓ͹͔ΓͳΠϝʔδʁ • ֤ʑಘखෆಘख͋Γ·͢ɻʮ͜ΕͩͬͨΒ΍͍͚ͬͯΔ͔΋ʯͱ ͸ձࣾઆ໌ձ΁ࢀՃͳͬͨ͞ํʑͷײ૝ • ϒϩάͬͯઈରॻ͔ͳ͍ͱ͍͚ͳ͍ͷʁ • ͦΜͳ͜ͱ͸ͳ͍Ͱ͢ɻͨͩॻ͖ͨ͘ͳΔෆࢥٞͳνΧϥ͕͜ͷ ձࣾʹ͸͋Δ 32