Slide 1

Slide 1 text

ʲୈճʳ -*/&º3VCZPO3BJMTͰ࡞Ζ͏ʂ γΰτʹੜ͔͢-*/&#PUʂ !

Slide 2

Slide 2 text

͸͡Ίʹ ҎԼͷͭΛར༻͠·͢ɻ
 ·ͩ४උͰ͖͍ͯͳ͍ํ͸४උΛ͓Ͷ͕͍͠·͢ɻ w 3VCZ w OHSPL w ४උ͕·ͩͷํ͸ͪ͜Β͔ΒɿIUUQTCJUMZDUJN/

Slide 3

Slide 3 text

ࣗݾ঺հ ͛͠Δ HFSV Ͱ͢ ֶੜ࣌୅ʹ-*/&#PU&YQFSUब೚ ֮͑ํɿύϯμͷΞΠίϯͷਓ

Slide 4

Slide 4 text

࠷ۙ։ൃͨ͠΋ͷ ձࣾͷ༗ࢤͰʮ৽ܕίϩφ΢Πϧεࢧ ԉ৘ใ·ͱΊʯαΠτΛ։ൃ 5%%Ͱ-*/&#PU΋։ൃ

Slide 5

Slide 5 text

૝ఆ͍ͯ͠Δडߨऀ w -*/&#PUΛࣗ෼Ͱجૅ͔Β৮ͬͯΈ͍ͨਓ w 3BJMT৮ͬͯΈ͍ͨਓ w ςετΛॻ͖ͳ͕Β-*/&#PUΛॻ͍ͯΈ͍ͨ΋ͷ w ֎෦"1*ͱͷ࿈ܞΛ͢Δ

Slide 6

Slide 6 text

શճͷษڧձͰ໨ࢦ͢͜ͱ -*/&.FTTBHJOH"1*ΛϚελʔ ࣗ૸ͯ͠։ൃͰ͖ΔΑ͏ʹͳΔ

Slide 7

Slide 7 text

શճͰͷྲྀΕ w ୈճ w ͓͏Ήฦ͠ w ୈճ w Ϧονϝχϡʔ w ϑϨοΫεϝοηʔδ w ୈճ w ֎෦"1*࿈ܞ

Slide 8

Slide 8 text

ϓϩδΣΫτͷઃఆ ϓϩδΣΫτϑΝΠϧΛࣗ෼ͷखݩʹ͖࣋ͬͯ·͢ ؀ڥม਺Λ֨ೲ͢ΔϑΝΠϧΛίϐʔ͠·͢ HJUDMPOFIUUQTHJUIVCDPNHFSVSBJMTMJOFCPUMFDUVSFHJU DESBJMTMJOFCPUMFDUVSF CVOEMFJOTUBMM DQFOWTBNQMFFOW

Slide 9

Slide 9 text

؀ڥม਺ͱ͸ "1*ΩʔͳͲ֎෦ʹ ݟΒΕͨ͘ͳ͍σʔλ FY %# TFSWFSͷ৘ใ "1*5PLFO

Slide 10

Slide 10 text

؀ڥม਺ͱ͸ FOWͷதʹ؀ڥม਺Λอଘ͢Δ -*/&#PUͰ͸-*/&@$)"//&-@4&$3&5ͱ-*/&@$)"//&-@50,&/Λอଘ͢Δ -*/&@$)"//&-@4&$3&5 -*/&@$)"//&-@50,&/

Slide 11

Slide 11 text

#PUͷઃఆ

Slide 12

Slide 12 text

ϓϩόΠμͷ࡞੒ -*/&%FWFMPQFST -*/&%FWFMPQFSTʹϩάΠϯ͠·͢ 63- IUUQTEFWFMPQFSTMJOFCJ[DPOTPMF ॳΊͯ࡞੒͞ΕΔํ͸ϓϩόΠμ࡞੒ ͠·͢

Slide 13

Slide 13 text

#PUͷొ࿥ -*/&%FWFMPQFST .FTTBHJOH"1*ͷνϟϯωϧΛ ৽نొ࿥͠·͢

Slide 14

Slide 14 text

#PUͷొ࿥ -*/&%FWFMPQFST ඞཁͳ৘ใΛొ࿥͠·͢ νϟϯωϧ໊ʹʮ-*/&ʯΛؚΉ จࣈྻΛ࢖͏͜ͱ͸Ͱ͖·ͤΜ

Slide 15

Slide 15 text

-*/&%FWFMPQFST #PUͷొ࿥ νϟϯωϧجຊઃఆλϒΛ։͖·͢

Slide 16

Slide 16 text

#PUͷొ࿥ -*/&0⒏DJBM"DDPVOU.BOBHFS νϟϯωϧجຊઃఆλϒ͔Β -*/&0⒏DJBM"DDPVOU.BOBHFS ʹΞΫηε͠·͢ ੨࿮ͷΑ͏ͳϖʔδ͕දࣔ͞ΕΕ͹ େৎ෉Ͱ͢

Slide 17

Slide 17 text

#PUͷొ࿥ -*/&0⒏DJBM"DDPVOU.BOBHFS ϗʔϜʼԠ౴ઃఆ͔Β Ԡ౴Ϟʔυɿ#PU ѫࡰϝοηʔδɿΦϑ Ԡ౴ϝοηʔδɿΦϑ 8FCIPPLɿΦϯ ʹઃఆ͠·͢

Slide 18

Slide 18 text

-*/&%FWFMPQFST #PUͷొ࿥ -*/&%FWFMPQFSTʹ໭Γ νϟϯωϧجຊઃఆλϒΛ։͖·͢

Slide 19

Slide 19 text

#PUͷొ࿥ -*/&%FWFMPQFST νϟϯωϧγʔΫϨοτΛ ίϐʔ͠·͢

Slide 20

Slide 20 text

FOWϑΝΠϧ FOWϑΝΠϧͷ-*/&@$)"//&-@4&$3&5ʹอଘ͢Δ -*/&@$)"//&-@4&$3&5l͜͜ʹอଘ͢Δ -*/&@$)"//&-@50,&/

Slide 21

Slide 21 text

#PUͷొ࿥ -*/&%FWFMPQFST .FTTBHJOH"1*ઃఆλϒΛ։͖·͢

Slide 22

Slide 22 text

#PUͷొ࿥ -*/&%FWFMPQFST νϟϯωϧΞΫηετʔΫϯΛൃߦ ൃߦͨ͠τʔΫϯΛίϐʔ͠·͢

Slide 23

Slide 23 text

FOWϑΝΠϧ FOWϑΝΠϧͷ-*/&@$)"//&-@50,&/ʹอଘ͢Δ -*/&@$)"//&-@4&$3&5l -*/&@$)"//&-@50,&/͜͜ʹอଘ͢Δ

Slide 24

Slide 24 text

ςετͷॻ͖ํ

Slide 25

Slide 25 text

ςετΛ૸ΒͤΔ $ bundle exec rspec spec/requests/linebots/echo_spec.rb ... Finished in 0.04047 seconds (files took 1.49 seconds to load) 3 examples, 0 failures

Slide 26

Slide 26 text

͓͏Ήฦͯ͠͠ΈΔ

Slide 27

Slide 27 text

3BJMTͷαʔόʔΛىಈͤ͞Δ $ rails s -p 3000

Slide 28

Slide 28 text

OHSPLͷىಈ OHSPLΛىಈͤ͞·͢ OHSPLIUUQ 4FTTJPO4UBUVTPOMJOF
 4FTTJPO&YQJSFTIPVST NJOVUFT
 7FSTJPO
 3FHJPO6OJUFE4UBUFT VT 
 8FC*OUFSGBDFIUUQ
 'PSXBSEJOHIUUQYYYYYYYYYOHSPLJPIUUQMPDBMIPTU
 'PSXBSEJOHIUUQTYYYYYYYYYOHSPLJPIUUQMPDBMIPTU
 
 $POOFDUJPOTUUMPQOSUSUQ
 OHSPLͱ͸Ұ࣌తʹ֎෦ʹQPSUΛղ์͢Δ΋ͷͰ͢ɻ ίϐʔ͓͍͍ͯͯͩ͘͠͞

Slide 29

Slide 29 text

XFCIPPLͷొ࿥ -*/&%FWFMPQFST .FTTBHJOH"1*ઃఆλϒΛ։͖·͢

Slide 30

Slide 30 text

XFCIPPLͷొ࿥ ίϐʔ͓͍͍ͯͯͩ͘͠͞ -*/&%FWFMPQFST ίϐʔͨ͠63-ΛషΓ෇͚·͢

Slide 31

Slide 31 text

ΧελϜͰ ϝοηʔδΛฦ͢

Slide 32

Slide 32 text

ΧελϜͰϝοηʔδΛฦ͢ w ʮϋϩʔʯͱૹΔͱʮ͜Μʹͪ͸ʯͱฦ͢Α͏ʹ͢Δ

Slide 33

Slide 33 text

ςετΛ૸ΒͤΔ $ bundle exec rspec spec/requests/linebots/hello_spec.rb ..x Finished in 0.04047 seconds (files took 1.49 seconds to load) 2 examples, 1 failures ͭςετ͕མͪ·͢

Slide 34

Slide 34 text

ςετΛݟͯΈΔ { ... "message" => { "type" => "text", "id" => "11749631743000", "text" => "ϋϩʔ" } } ೖྗ஋ͱͯ͠NFTTBHF͕ઃఆ͞Ε͓ͯΓ UZQFɿʮUFYUʯ UFYUɿʮϋϩʔʯ͕ઃఆ͞Ε͍ͯΔ

Slide 35

Slide 35 text

ςετΛݟͯΈΔ it 'check content' do subject event_class = controller.send(:events).first expect(controller.send(:message, event_class).to_s).to match '͜Μʹͪ͸ʂʂ' end ظ଴஋ͱͯ͠ɺNFTTBHF͕ฦ͢จࣈʹ
 ʮ͜Μʹͪ͸ʂʂʯؚ͕·ΕΔ͜ͱΛςετ͢Δ

Slide 36

Slide 36 text

ͭ·Γ͜ͷςετ͸ w ʮϋϩʔʯͱ͍͏จࣈ UFYU ͷNFTTBHFΛड͚औΔͱ w ʮ͜Μʹͪ͸ʂʂʯͱ͍͏จࣈྻΛฦ͢

Slide 37

Slide 37 text

࣮૷ͯ͠ΈΑ͏ʂ

Slide 38

Slide 38 text

5%%Ͱ͖ͨʂ

Slide 39

Slide 39 text

͋Γ͕ͱ͏͍͟͝·ͨ͠ ࣍ճ͸ 'MFY.FTTBHFͱϦονϝχϡʔ Λ͠·͢