Slide 1

Slide 1 text

3VCZº"84-BNCEBͰ αʔόʔϨεͷಋೖ /BHPZB3VCZ,BJHJ 56/"(෼ੳج൫ͷࣄྫΛ΋ͱʹ :VTIJSP.BUTVUBOJ!VVVTIJSP

Slide 2

Slide 2 text

$PQZSJHIU˜TUNO JOD"MMSJHIUTSFTFSWFE ࣗݾ঺հ 2 Yushiro Matsutani Twitter/GitHub @uuushiro 2016.9 גࣜձࣾελϝϯͰΠϯλʔϯ։࢝ 2017.1 גࣜձࣾελϝϯʹೖࣾʢ৽ଔୈ1߸ʣ ݱࡏ͸ج൫νʔϜ Rubyྺ΋͏͙͢3೥͘Β͍
 ॳΊͯ৮ͬͨRailsͷόʔδϣϯ͸5.0

Slide 3

Slide 3 text

ձ ࣾ ֓ ཁ

Slide 4

Slide 4 text

$PQZSJHIU˜TUNO JOD"MMSJHIUTSFTFSWFE גࣜձࣾελϝϯ 4 w೥݄ʹ૑ۀ ݄ઃཱ w໊ࣾ4UBS.FNCFSTʹ༝དྷ wຊ໊ࣾݹ԰ ُౡӺ 
 ࢧࣾޒ൓ాɺകాɺ෱Ԭ w໾৬һ໊ ϓϩμΫτ෦໊ w56/"(ͷاըɺ։ൃɺӡ༻

Slide 5

Slide 5 text

$PQZSJHIU˜TUNO JOD"MMSJHIUTSFTFSWFE 56/"(ͱ͸ 5 wձࣾͱࣾһɺࣾһಉ࢜ͷ৴པؔ܎ߏஙΛ໨తͱͨ͠اۀ޲͚4/4 w೥݄ʹϦϦʔε͠ɺಋೖاۀ਺͸Λ௒͑Δ wۀ຿࿈བྷͰ͸ͳ͘ɺ͓ޓ͍Λ஌Γཧղ͢Δ͜ͱ͕໨త wlࣾ಺4/4͸೉͍͠zΛɺίϯαϧςΟϯάͱzࣾ಺੍౓zͰղܾ

Slide 6

Slide 6 text

$PQZSJHIU˜TUNO JOD"MMSJHIUTSFTFSWFE ڈ೥ͷ݄຤ʹ"84-BNCEB͕3VCZʹରԠ 6

Slide 7

Slide 7 text

$PQZSJHIU˜TUNO JOD"MMSJHIUTSFTFSWFE "84-BNCEBͱ͸ʁ 7 w'VODUJPOTBTB4FSWJDF wαʔόʔͷ؅ཧແ͠ͰίʔυΛ࣮ߦͰ͖Δ wैྔ՝੍ۚ wࣗಈͰεέʔϧΞ΢τ IUUQTEPDTBXTBNB[PODPNKB@KQMBNCEBMBUFTUEHXFMDPNFIUNM

Slide 8

Slide 8 text

$PQZSJHIU˜TUNO JOD"MMSJHIUTSFTFSWFE 3VCZ,BJHJʹͯ 8

Slide 9

Slide 9 text

$PQZSJHIU˜TUNO JOD"MMSJHIUTSFTFSWFE 3VCZ,BJHJʹͯ 9

Slide 10

Slide 10 text

3VCZº"84-BNCEBͷ ؅ཧϑϨʔϜϫʔΫɾࣗಈςετʹ͍ͭͯ ։ൃɾӡ༻دΓͷ࿩Λ͠·͢

Slide 11

Slide 11 text

$PQZSJHIU˜TUNO JOD"MMSJHIUTSFTFSWFE ΞδΣϯμ 11 ؅ཧϑϨʔϜϫʔΫΛར༻ͨ͠։ൃ αʔόʔϨε׆༻ͷഎܠ ࣗಈςετ

Slide 12

Slide 12 text

$PQZSJHIU˜TUNO JOD"MMSJHIUTSFTFSWFE ΞδΣϯμ 12 ؅ཧϑϨʔϜϫʔΫΛར༻ͨ͠։ൃ αʔόʔϨε׆༻ͷഎܠ ࣗಈςετ

Slide 13

Slide 13 text

$PQZSJHIU˜TUNO JOD"MMSJHIUTSFTFSWFE 56/"(ͷچ෼ੳج൫ͷ՝୊ 13 㾎σʔλ૿Ճ͠ॲཧ͕࣌ؒ૿େ 㾎ूܭ༻αʔόʔ &$ ͷӡ༻ίετ͕͔͔Δ

Slide 14

Slide 14 text

$PQZSJHIU˜TUNO JOD"MMSJHIUTSFTFSWFE "84-BNCEBͰղܾͦ͠͏ 14 w"84-BNCEBͰม׵ॲཧΛฒྻॲཧ࣌ؒ͠୹ॖ w&$Λ"84-BNCEBʹஔ͖׵͑ӡ༻ίετͷ࡟ݮ

Slide 15

Slide 15 text

$PQZSJHIU˜TUNO JOD"MMSJHIUTSFTFSWFE ৽ج൫ʹ͓͚Δ
 -BNCEBͷར༻Πϝʔδ 15 w"84αʔϏεؒͷ
 ઀ணࡎͱͯ͠࢖͏ w3VCZͰ42-Λ
 ಈతʹ૊ΈཱͯΔ

Slide 16

Slide 16 text

$PQZSJHIU˜TUNO JOD"MMSJHIUTSFTFSWFE ΞδΣϯμ 16 ؅ཧϑϨʔϜϫʔΫΛར༻ͨ͠։ൃ αʔόʔϨε׆༻ͷഎܠ ࣗಈςετ

Slide 17

Slide 17 text

$PQZSJHIU˜TUNO JOD"MMSJHIUTSFTFSWFE αʔόʔϨεΞϓϦέʔγϣϯͷ؅ཧ͕େม 17 wෳ਺ͷ"84-BNCEBͷ؅ཧ͕൥ࡶ wσϓϩΠʹख͕͔͔ؒΔ w(FN΍ڞ௨ίʔυͷѻ͍͕Α͘Θ͔Βͳ͍

Slide 18

Slide 18 text

$PQZSJHIU˜TUNO JOD"MMSJHIUTSFTFSWFE "844FSWFSMFTT"QQMJDBUJPO.PEFM "844". 18 wαʔόʔϨεΞϓϦέʔγϣϯͷ؅ཧϑϨʔϜϫʔΫ w$MPVE'PSNBUJPOͷ֦ு wϩʔΧϧͰ"84-BNCEBͷߏஙɾςετɾσόοά͕Մೳ wΞϓϦέʔγϣϯͷϏϧυɾύοέʔδϯάɾσϓϩΠίϚϯυΛఏڙ

Slide 19

Slide 19 text

$PQZSJHIU˜TUNO JOD"MMSJHIUTSFTFSWFE 4".ͷ࢖༻ྫ3VCZͷαϯϓϧΞϓϦέʔγϣϯ 19

Slide 20

Slide 20 text

$PQZSJHIU˜TUNO JOD"MMSJHIUTSFTFSWFE 4".ͷ࢖༻ྫ3VCZͷαϯϓϧΞϓϦέʔγϣϯ 20 wର৅ؔ਺ͷϑΥϧμͷ[JQϑΝΠϧΛ࡞੒͠4΁Ξοϓϩʔυ wQBDLBHFEZBNMΛ࡞੒͠ϩʔΧϧͷੜ੒෺΁ͷࢀরΛ
 Ξοϓϩʔυͨ͠4ͷ63-ʹஔ͖׵͑Δ wςϯϓϨʔτʹهड़͞Ε͍ͯΔ௨ΓͷϦιʔε͕ߏங͞ΕΔ

Slide 21

Slide 21 text

$PQZSJHIU˜TUNO JOD"MMSJHIUTSFTFSWFE -BNCEBͷ࣮ߦ؀ڥΛ
 λʔήοτͱ͢Δ੒Ռ෺Λੜ੒ ґଘؔ܎ͷղܾ 21 ੒Ռ෺ΛBXTTBNCVJME഑Լʹ࡞੒ (FNpMFʹԠͯ͡ҎԼ͕࣮ߦ͞ΕΔ "84-BNCEBͰ͸WFOEPSCVOEMF͕ HFNͷ୳ࡧσΟϨΫτϦର৅

Slide 22

Slide 22 text

$PQZSJHIU˜TUNO JOD"MMSJHIUTSFTFSWFE OBUJWFFYUFOUJPOͷѻ͍OPLPHJSJ 22 wωΠςΟϒ֦ு͕͋Δ(FN͸ɺ-BNCEBͱ
 ಉ౳؀ڥͰίϯύΠϧ͢Δඞཁ͕͋Δ wOPLPHJSJ͕ґଘ͍ͯ͠ΔMJCYNMͱMJCYTMU͸ -BNCEBͷΠϝʔδʹؚ·Ε͍ͯΔͷͰɺҎԼͰ
 ϏϧυՄೳ

Slide 23

Slide 23 text

$PQZSJHIU˜TUNO JOD"MMSJHIUTSFTFSWFE OBUJWFFYUFOUJPOͷѻ͍NZTRM 23 wNZTRM͕ґଘ͍ͯ͠ΔNZTRMEFWFM͸-BNCEBͷ
 Πϝʔδʹؚ·Ε͍ͯͳ͍ w-BNCEBΠϝʔδίϯςφͰඞཁͳύοέʔδΛ
 Πϯετʔϧ্ͨ͠ͰCVOEMFJOTUBMMΛ͢Δ wඞཁͳڞ༗ϥΠϒϥϦ MJCNZTRMDMJFOU ͸ɺ -%@-*#3"3:@1"5)ʹ഑ஔ͢Δ

Slide 24

Slide 24 text

$PQZSJHIU˜TUNO JOD"MMSJHIUTSFTFSWFE ڞ௨ίʔυ΍(FNΛ͏·͘ѻ͍͍ͨ 24 wෳ਺ͷ-BNCEBͰڞ௨ͷ3VCZίʔυ΍
 (FN͕ଘࡏ ͦΕͧΕσϓϩΠύοέʔδʹؚΊͳ͚Ε͹ͳΒͳ͍ wίʔυΛมߋ͢Δͨͼʹґଘؔ܎ͷ
 Ξοϓϩʔυ͕ඞཁ (FNͱΞϓϦέʔγϣϯίʔυมߋͷपظ͸ҟͳΔ

Slide 25

Slide 25 text

$PQZSJHIU˜TUNO JOD"MMSJHIUTSFTFSWFE "84-BNCEB-BZFST 25 w ෳ਺ͷ"84-BNCEBͰίʔυΛڞ༗Ͱ͖Δ࢓૊Έ w -BNCEBΛݺͼग़͢ͱ-BZFST͕ίϯςφͷPQU഑ԼʹϚ΢ϯτ͞ΕΔ w TBNCVJME͸ݱ࣌఺ͰඇରԠ IUUQTBXTBNB[PODPNKQCMPHTDPNQVUFXPSLJOHXJUIBXTMBNCEBBOEMBNCEBMBZFSTJOBXTTBN

Slide 26

Slide 26 text

$PQZSJHIU˜TUNO JOD"MMSJHIUTSFTFSWFE "84-BNCEB-BZFSTͷϝϦοτ 26 wؔ਺ίʔυͷαΠζ͕খ͘͞ͳΔ wґଘؔ܎ͱϏδωεϩδοΫͷؒͰɺؔ৺ࣄͷ෼཭Λڧ੍ IUUQTBXTBNB[PODPNKQCMPHTDPNQVUFXPSLJOHXJUIBXTMBNCEBBOEMBNCEBMBZFSTJOBXTTBN

Slide 27

Slide 27 text

$PQZSJHIU˜TUNO JOD"MMSJHIUTSFTFSWFE ڞ௨ίʔυ༻-BZFST 27 IUUQTHJUIVCDPNBXTMBCTBXTMBNCEBDPOUBJOFSJNBHFDPOWFSUFS -BZFSTʹ͓͚Δ3VCZϥΠϒϥϦͷ୳ࡧύε

Slide 28

Slide 28 text

$PQZSJHIU˜TUNO JOD"MMSJHIUTSFTFSWFE (FN༻-BZFST 28 IUUQTHJUIVCDPNBXTMBCTBXTMBNCEBDPOUBJOFSJNBHFDPOWFSUFS -BZFSTʹ͓͚ΔHFNͷ୳ࡧύε

Slide 29

Slide 29 text

$PQZSJHIU˜TUNO JOD"MMSJHIUTSFTFSWFE JNHMBNCEBΛ࢖ͬͨ
 -BZFSTͷσϓϩΠ ͓·͚ 29 w %PDLFSΠϝʔδΛ-BNCEB΍
 -BZFSTʹม׵͠σϓϩΠ w ґଘؔ܎ΛΠϝʔδʹด͡ࠐΊ
 มߋ͕͋Ε͹࠶Ϗϧυ w ศར͕ͩ4".ͷ
 ϩʔΧϧ࣮ߦ -BZFST΋ؚΊͨ ͕
 ׆͔ͤͳ͍ͷͰࠓճ͸ෆ࠾༻ IUUQTHJUIVCDPNBXTMBCTBXTMBNCEBDPOUBJOFSJNBHFDPOWFSUFS

Slide 30

Slide 30 text

$PQZSJHIU˜TUNO JOD"MMSJHIUTSFTFSWFE "844".Λར༻ͨ͠։ൃ·ͱΊ 30 wෳ਺ͷ-BNCEB͸ςϯϓϨʔτͰҰݩ؅ཧ wσϓϩΠ͸TBNDMJͰίϚϯυͰ؆୯ʹ wґଘؔ܎͸TBNCVJMEίϚϯυͰղܾ ඞཁʹԠͯ͡-BNCEBͷ%PDLFSΠϝʔδΛར༻ wڞ௨ίʔυ΍(FN͸-BZFSTͰڞ༗Մೳ

Slide 31

Slide 31 text

$PQZSJHIU˜TUNO JOD"MMSJHIUTSFTFSWFE ΞδΣϯμ 31 ؅ཧϑϨʔϜϫʔΫΛར༻ͨ͠։ൃ αʔόʔϨε׆༻ͷഎܠ ࣗಈςετ

Slide 32

Slide 32 text

$PQZSJHIU˜TUNO JOD"MMSJHIUTSFTFSWFE ࣗಈςετͷํ਑ 32 w-BNCEB͸ଞͷαʔϏεͱͷ࿈ܞ͕ଟ͘
 ౷߹ςετ͕ॏཁʹͳΔ wΫϥ΢υ্Ͱͷݕূ͸ֻ͕͔࣌ؒΓա͗ΔͷͰ
 ͳΔ΂͘ϩʔΧϧͰ࣮ߦɾςετ͍ͨ͠ w*".ݖݶͳͲͷςετ͸Ϋϥ΢υ্Ͱߦ͏

Slide 33

Slide 33 text

$PQZSJHIU˜TUNO JOD"MMSJHIUTSFTFSWFE ϩʔΧϧςετ 33 w"84-BNCEBͷґଘΛഉআ͠
 ୯ମςετΛ͠΍͍͢Α͏ʹ w"84αʔϏεʹґଘ͢ΔϩδοΫ͸ελϒΛར༻ wϩʔΧϧʹ-BNCEBͷΤϯυϙΠϯτΛىಈ͠
 -BNCEBɾ-BZFSTΛςετ

Slide 34

Slide 34 text

$PQZSJHIU˜TUNO JOD"MMSJHIUTSFTFSWFE ςετͷྫ"UIFOB΁ͷΫΤϦ͕ࣦഊͨ͠έʔε 34 "UIFOB΁ͷΫΤϦ࣮ߦ"1*Λୟ͘ ΫΤϦ͸ඇಉظతʹॲཧ͞ΕΔͨΊ
 ࣮ߦ*%Λ΋ͱʹ࣮ߦঢ়گΛ໰͍߹ΘͤΔ ΫΤϦͷ݁ՌΛऔಘ͠ঢ়ଶ͕
 l'"*-&%zͳΒྫ֎Λ౤͛Δ 1 2 3

Slide 35

Slide 35 text

!35 "844%,GPS3VCZΛ࢖ͬͯ
 "UIFOBͷΫΤϦΛ࣮ߦ͢Δ"1*Λୟ͘ 1

Slide 36

Slide 36 text

!36 "844%,GPS3VCZΛ࢖ͬͯ
 "UIFOBͷΫΤϦΛ࣮ߦ͢Δ"1*Λୟ͘ ΫΤϦ࣮ߦ*%Λ΋ͱʹ
 ࣮ߦঢ়گΛ໰͍߹ΘͤΔ 1 2

Slide 37

Slide 37 text

!37 "844%,GPS3VCZΛ࢖ͬͯ
 "UIFOBͷΫΤϦΛ࣮ߦ͢Δ"1*Λୟ͘ ΫΤϦ࣮ߦͷ
 εςʔλε໰͍߹Θͤ݁Ռ͕
 '"*-&%ʹͳͬͨΒྫ֎Λ౤͛Δ ΫΤϦ࣮ߦ*%Λ΋ͱʹ
 ࣮ߦঢ়گΛ໰͍߹ΘͤΔ 1 2 3

Slide 38

Slide 38 text

!38 ϋϯυϥʔͷҾ਺ͳͲ -BNCEBʹґଘ͢ΔՕॴ͔Β
 ϩδοΫΛ੾Γ཭͢

Slide 39

Slide 39 text

!39 -BNCEBʹґଘ͠ͳ͍ίʔυʹͳΓ
 ී௨ʹςετͰ͖Δ

Slide 40

Slide 40 text

!40 "84αʔϏεʹґଘ͢ΔϩδοΫΛ Ͳ͏ςετ͢Δ͔ʁ

Slide 41

Slide 41 text

!41 "84αʔϏεʹґଘ͢ΔϩδοΫΛ Ͳ͏ςετ͢Δ͔ʁ ελϒΛ೜ͼࠐ·ͤΔ༨஍Λ༩͑Δ

Slide 42

Slide 42 text

$PQZSJHIU˜TUNO JOD"MMSJHIUTSFTFSWFE "844%,GPS3VCZͷελϒػೳ 42 w"1*ΞΫηεͷϨεϙϯεɾΤϥʔΛελϒ͢Δ w"84"1*ΫϥΠΞϯτΛ࣮ߦ͢ΔΑ͏ʹৼΔ෣͏ w-PDBM4UBDL΋͍͍͕ɺࠓճඞཁͳ"84"UIFOBɾ(MVF͸
 ඇαϙʔτͩͬͨ 5FTUBCMF-BNCEB !U@XBEB ͕ͱͯ΋ࢀߟʹͳΔ IUUQTTQFBLFSEFDLDPNUXBEBUFTUBCMFMBNCEBXPSLJOHF⒎FDUJWFMZXJUIMFHBDZMBNCEB

Slide 43

Slide 43 text

!43 ελϒػೳΛ༗ޮʹ

Slide 44

Slide 44 text

!44 "UIFOBΫΤϦ࣮ߦͷ
 ϨεϙϯεσʔλΛ࡞੒ "UIFOBΫΤϦ࣮ߦͷ Ϩεϙϯεʹઃఆ

Slide 45

Slide 45 text

!45 "UIFOBΫΤϦ
 ࣮ߦঢ়گ͕z'"*-&%zͷ σʔλΛ࡞੒ ΫΤϦ࣮ߦঢ়گ֬ೝϦΫΤετͷ ϨεϙϯεʹϑΣΠΫͷ݁ՌΛઃఆ

Slide 46

Slide 46 text

!46 ελϒΦϒδΣΫτΛ
 Ҿ਺Ͱ౉͢ ϩʔΧϧͰ"84αʔϏε ґଘͷςετ͕Ͱ͖ͨ

Slide 47

Slide 47 text

$PQZSJHIU˜TUNO JOD"MMSJHIUTSFTFSWFE ϩʔΧϧͰ"84-BNCEBɾ-BZFSTͷςετ 47 ϩʔΧϧͰ-BNCEBͷΤϯυϙΠϯτΛىಈ ΤϯυϙΠϯτΛϩʔΧϧʹ޲͚Δ -BZFSTΛؚΊͨςετ͕ ϩʔΧϧͰ࣮ߦՄೳʹ

Slide 48

Slide 48 text

$PQZSJHIU˜TUNO JOD"MMSJHIUTSFTFSWFE $*$% 48 w$PEF%FQMPZͷ1SF)PPLؔ਺Λར༻͠؆қͳ౷߹ςετΛ࣮ߦ w1SF)PPLؔ਺Ͱɺ৽WFSͷ-BNCEBΛ࣮ߦ wΤϥʔ͕͋Ε͹ϩʔϧόοΫ

Slide 49

Slide 49 text

$PQZSJHIU˜TUNO JOD"MMSJHIUTSFTFSWFE ৽෼ੳج൫ΞʔΩςΫνϟ 49

Slide 50

Slide 50 text

$PQZSJHIU˜TUNO JOD"MMSJHIUTSFTFSWFE ·ͱΊ 50 w-BNCEB͕3VCZରԠͨ͜͠ͱͰαʔόʔϨε͕
 ελϝϯʹͱͬͯ਎ۙͳ΋ͷʹͳͬͨ w؅ཧϑϨʔϜϫʔΫͷ͓͔͛Ͱӡ༻ָ͕ʹ wͳΔ΂͘ϩʔΧϧͰςετ͢Δ͜ͱͰ։ൃ଎౓61