Slide 1

Slide 1 text

#t2study 2012/12/07 @fukayatsu Development of cakes 12೥12݄8೔౔༵೔

Slide 2

Slide 2 text

@fukayatsu • Piece of cake, Inc. ΤϯδχΞ(2012/08-) • ޷͖: Ruby / Android / Sublime Text 2 • ौ୩.rbʹ࠷ۙࢀՃ࢝͠Ίͨ 12೥12݄8೔౔༵೔

Slide 3

Slide 3 text

https://cakes.mu 12೥12݄8೔౔༵೔

Slide 4

Slide 4 text

• CakePHP 2.2.xͰ։ൃ • Πϯϑϥ͸AWS • ΤϯδχΞʴσβΠφͰ4~5ਓ 12೥12݄8೔౔༵೔

Slide 5

Slide 5 text

agenda •Tools •Flow •Next cakes 12೥12݄8೔౔༵೔

Slide 6

Slide 6 text

Tools 12೥12݄8೔౔༵೔

Slide 7

Slide 7 text

github • Bronze ($25/month) • CEO΋ฤूऀ΋શһΞΧ΢ϯτ͋Γ • githubΛ࢖͍ͬͯͳ͍ձࣾʹब৬͢Δؾ ͸ແ͍Ϩϕϧ 12೥12݄8೔౔༵೔

Slide 8

Slide 8 text

pivotal tracker • Startup L ($18/month) • λεΫͱ༏ઌॱҐΛ؅ཧ • Agile • http://agile.esm.co.jp/pivotaltracker/help/ gettingstarted_ja 12೥12݄8೔౔༵೔

Slide 9

Slide 9 text

Jenkins • OSS • σϓϩΠͷࣗಈԽ • όοΫΞοϓࣗಈԽ • staging؀ڥͷࣗಈԽ 12೥12݄8೔౔༵೔

Slide 10

Slide 10 text

hipchat • ($2/month per user) • νʔϜͷίϛϡχέʔγϣϯͷத৺ • githubɺpivotal trackerɺjenkins͔Β΋௨ ஌͕ྲྀΕͯ͘Δ • ຊ൪σϓϩΠ΋hipchat্ͷbotʹ͓ئ͍ 12೥12݄8೔౔༵೔

Slide 11

Slide 11 text

hubot • github͕ެ։͍ͯ͠ΔbotϑϨʔϜϫʔΫ • hipchat͚ͩͰ͸ͳ͘ɺirc΍twitterͳͲʹ ΋ରԠ͍ͯ͠Δ • coffee-scriptͰίϚϯυΛ௥ՃͰ͖Δ 12೥12݄8೔౔༵೔

Slide 12

Slide 12 text

hubot commands • > hubot production deploy • => ຊ൪؀ڥʹσϓϩΠͯ͘͠ΕΔ • > hubot misawa • => ஍ࠈͷϛαϫը૾Λදࣔͯ͘͠ΕΔ • ͦͷଞ: http://fukayatsu.github.com/2012/12/03/ jotei-advent-calendar/ 12೥12݄8೔౔༵೔

Slide 13

Slide 13 text

ඇΤϯδχΞ ࢀরɾૢ࡞ ௨஌ ࣗಈԽ ίʔυ؅ཧ λεΫ؅ཧ ίϛϡχ έʔγϣϯ ΤϯδχΞ bot ΞΫηεղੳ Πϯϑϥ 12೥12݄8೔౔༵೔

Slide 14

Slide 14 text

Flow 12೥12݄8೔౔༵೔

Slide 15

Slide 15 text

github-flow • NOT git-flow • Ұ೔ʹԿ౓΋σϓϩΠ͢Δ • ৗʹmaster͔ΒϒϥϯνΛ࡞੒ => pull-requestͰϨϏϡʔˍϚʔδ • https://gist.github.com/3705015 12೥12݄8೔౔༵೔

Slide 16

Slide 16 text

case study ʙϩάΠϯϖʔδΛ࡞Δʙ 12೥12݄8೔౔༵೔

Slide 17

Slide 17 text

1. story start • pivotal trackerͰstoryΛ[start] 12೥12݄8೔౔༵೔

Slide 18

Slide 18 text

2. create branch • ݱࡏͷmaster ϒϥϯν͔Βઆ໌తͳ ໊લͷϒϥϯνΛ࡞Δ • git checkout -b login-page master 12೥12݄8೔౔༵೔

Slide 19

Slide 19 text

3. write code 12೥12݄8೔౔༵೔

Slide 20

Slide 20 text

4. push to remote • git push origin login-page 12೥12݄8೔౔༵೔

Slide 21

Slide 21 text

5. pull-request • master΁pull-request • Ϛʔδͯ͠ཉ͍࣌͠΍ڞಉ࡞ۀ͢Δͱ͖ɺ ΞυόΠε͕ཉ͍࣌͠ʹ΋pull-request͢Δ 12೥12݄8೔౔༵೔

Slide 22

Slide 22 text

6. code review, check at staging • ίʔυʹίϝϯτͨ͠Γɺ ৽͍͠ίʔυΛpushͨ͠Γ • branchΛpush͢Δͱjenkins͕ϒϥϯν͝ ͱʹ؀ڥΛ࡞ͬͯ͘ΕΔΑ͏ʹͨ͠ ྫ) https://login-page.example.com 12೥12݄8೔౔༵೔

Slide 23

Slide 23 text

7. merge into master • ֬ೝͰ͖ͨΒϚʔδ͢Δ • େ͖͍ػೳ௥Ճ͸CEO΍CTO͕֬ೝ 12೥12݄8೔౔༵೔

Slide 24

Slide 24 text

8. deploy to production • > hubot production deploy • ཪͰhubot͕jenkinsͷjobΛ࣮ߦ͢Δ • ऴΘͬͨΒhipchatʹ௨஌ • σϓϩΠͱνʔϜ΁ͷڞ༗͕ 1ͭͷίϚϯυͰ׬݁ͯ͠૘շ 12೥12݄8೔౔༵೔

Slide 25

Slide 25 text

9. finish story • pivotal trackerͰstoryΛ[finish]&[deliver] • ຊ൪؀ڥͰ໰୊ͳ͚Ε͹[accept] 12೥12݄8೔౔༵೔

Slide 26

Slide 26 text

࣮૷׬ྃ 12೥12݄8೔౔༵೔

Slide 27

Slide 27 text

Delivered! 12೥12݄8೔౔༵೔

Slide 28

Slide 28 text

ΊͰͨ͠ ΊͰͨ͠ 12೥12݄8೔౔༵೔

Slide 29

Slide 29 text

Next cakes 12೥12݄8೔౔༵೔

Slide 30

Slide 30 text

Ϣʔβʔʹ ΋ͬͱૣ͘Ձ஋Λ ಧ͚͍ͨ 12೥12݄8೔౔༵೔

Slide 31

Slide 31 text

͕͜͜଍Γͳ͍ • ࣗಈςετ / TDD • ίʔυϨϏϡʔ • DRY • ϑϨʔϜϫʔΫΛ׆͔͢ • ंྠͷ࠶։ൃΛ͠ͳ͍ 12೥12݄8೔౔༵೔

Slide 32

Slide 32 text

ϑϨʔϜϫʔΫΛ Rails΁Ҡߦ • ઃܭ͔Β੔ཧ͢Δ • Ruby/Railsք۾ͷจԽΛ νʔϜʹऔΓࠐΉ 12೥12݄8೔౔༵೔

Slide 33

Slide 33 text

·ͱΊ 12೥12݄8೔౔༵೔

Slide 34

Slide 34 text

• github-flow => ྑ͍ • hubot deploy => ָ͍͠ • CakePHP ͔Β Rails ΁ 12೥12݄8೔౔༵೔

Slide 35

Slide 35 text

͋Γ͕ͱ͏ ͍͟͝·ͨ͠ʂ 12೥12݄8೔౔༵೔

Slide 36

Slide 36 text

• ը૾: http://www.sxc.hu/ ࢀߟ 12೥12݄8೔౔༵೔