Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
ruby12
Search
MATSUOKA Kohei
June 25, 2014
360
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
ruby12
MATSUOKA Kohei
June 25, 2014
More Decks by MATSUOKA Kohei
See All by MATSUOKA Kohei
ゼロからわかるRuby超入門の歩き方
machu
2
4.5k
最近のtDiary
machu
1
1.8k
ruby15
machu
0
550
ruby13
machu
0
480
ruby11
machu
0
360
ruby10
machu
0
380
ruby09
machu
0
320
ruby08
machu
0
270
ruby07
machu
0
460
Featured
See All Featured
WENDY [Excerpt]
tessaabrams
12
39k
Bootstrapping a Software Product
garrettdimon
PRO
306
120k
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
Fireside Chat
paigeccino
42
4k
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
1
2.9k
A designer walks into a library…
pauljervisheath
211
24k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
What's in a price? How to price your products and services
michaelherold
247
13k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
62k
Optimising Largest Contentful Paint
csswizardry
37
3.9k
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
0
500
Reality Check: Gamification 10 Years Later
codingconduct
0
2.3k
Transcript
3VCZߨٛୈճ 8FCΞϓϦͱ)5.- χϑςΟגࣜձࣾدෟߨٛ ࣾձՊֶʹ͓͚Δใٕज़ͱίϯςϯπ࡞***
দԬߒฏ ߨࢣ /55ίϜΣΞ᷂ UXJUUFS!NBDIV IUUQTHJUIVCDPNNBDIV IUUQXXXNBDIVKQEJBSZ
લճͷ͓͞Β͍
ࠓिͷ͓ จࣈྻΛදࣔ͢Δ͚ͩ ͷ8FCΞϓϦ ϑΥʔϜ͔ΒσʔλΛड͚औͬ ͯܭࢉ͢Δ8FCΞϓϦ #.*ܭࢉΛ8FCΞϓϦԽ ʢ#.*ମॏ×ʣ
Δ͜ͱͭ )5.-Λදࣔ͠Α͏ ɹɹ)5.-ΛͬͯೖྗϑΥʔϜΛදࣔ ϑΥʔϜσʔλΛड͚औΖ͏ ɹɹϑΥʔϜʹೖྗͨ͠ͱମॏΛαʔόͰड͚औΔ ܭࢉ݁ՌΛ)5.-ʹຒΊࠐ͏ ɹɹͱମॏ͔Β#.*Λܭࢉͯ͠ը໘ʹදࣔ
)5.-Λදࣔ͠Α͏ ɹɹ)5.-ΛͬͯೖྗϑΥʔϜΛදࣔ ϑΥʔϜσʔλΛड͚औΖ͏ ɹɹ ܭࢉ݁ՌΛ)5.-ʹຒΊࠐ͏ ɹɹ
)5.-ͰσʔλΛೖྗ w )5.-ʹσʔλΛೖྗ͢ΔͨΊͷɺϑΥʔϜ ͱ͍͏Έ͕༻ҙ͞Ε͍ͯ·͢
ςϯϓϨʔτͷ͍ํ HFUCNJEP FSCCNJ FOE BQQSC WJFXTCNJFSC IUNMCPEZ I#.*ܭࢉϓϩάϥϜI EJW͋ͳͨͷ#.*Λܭࢉ͠·͢ɻ
FSCͱ͍͏ܗࣜͰॻ͔Εͨɺ CNJͱ͍͏໊લͷςϯϓ Ϩʔτ CNJFSC Λදࣔ͠ ͯͶͱ͍͏ҙຯ 4JOBUSBͰςϯϓϨʔ τΛWJFXTσΟϨΫτ Ϧʹஔܾ͘·Γ
ςϯϓϨʔτͷ͍ํ HFUCNJEP FSCCNJ FOE BQQSC WJFXTCNJFSC IUNMCPEZ I#.*ܭࢉϓϩάϥϜI EJW͋ͳͨͷ#.*Λܭࢉ͠·͢ɻ
4JOBUSB͕)5.-ʹม͠ɺ 8FCϒϥβʹදࣔͯ͘͠ΕΔ
8FCαʔό )5.-Λදࣔ͢Δ·Ͱ 8FCϒϥβ (&5CNJ)551 HFUCNJEP FSCCNJ FOE )551ͷੈք ςϯϓ
Ϩʔτ WJFXTCNJFSC BQQSC )5510, )5.- )5.- 3VCZͷੈք )5.-ͷੈք
)5.-Λදࣔ͠Α͏ ɹɹ ϑΥʔϜσʔλΛड͚औΖ͏ ɹɹϑΥʔϜʹೖྗͨ͠ͱମॏΛαʔόͰड͚औΔ ܭࢉ݁ՌΛ)5.-ʹຒΊࠐ͏ ɹɹ
)5.-ϑΥʔϜ w 8FCϒϥβ͔Β8FCαʔόσʔλΛૹΔ͘͠Έ
)5.-ϑΥʔϜͷத %0$5:1&IUNM IUNM IFBEUJUMF#.*ܭࢉUJUMFIFBE CPEZ I#.*ܭࢉϓϩάϥϜI ͱମॏΛೖྗͯ͠ɺʮ#.*ΛܭࢉʂʯϘλϯΛԡ͍ͯͩ͘͠͞ɻ GPSNBDUJPOCNJNFUIPEQPTU
DN JOQVUOBNFIFJHIUUZQFUFYU ମॏ LH JOQVUOBNFXFJHIUUZQFUFYU JOQVUWBMVF#.*ΛܭࢉʂUZQFTVCNJU GPSN CPEZ IUNM QPTUͱ͍͏ํࣜͰCNJʹ IFJHIUͱXFJHIUͱ͍͏ σʔλΛૹΔ
8FCαʔό 8FCϒϥβ (&5ͱ1045 HFUCNJEP FSCCNJ FOE ! QPTUCNJEP σʔλड͚औΓॲཧ
FOE GPSNBDUJPOCNJ NFUIPEQPTU ΞυϨεόʔʹೖྗ (&5CNJ)551 ϑΥʔϜΛૹ৴ 1045CNJ)551 )551ͷੈք 3VCZͷੈք )5.-ͷੈք ϑΥʔϜσʔλ 1045Ͱૹ৴
8FCαʔό ϑΥʔϜʹೖྗͨ͠ͱମॏ Λ8FCΞϓϦͰड͚औΓ͍ͨ 8FCϒϥβ )5.- ϑΥʔϜ 8FCΞϓϦ )551ͷ ੈք )5.-ͷੈք
3VCZͷੈք
4JOBUSB͕ͬͯ͘ΕΔ IFJHIUXFJHIU )551ͷੈք 3VCZͷੈք ม ϑΥʔϜσʔλΛ )BTIʹมͯ͠ QBSBNTͱ͍͏໊ લΛ͚ͭΔ
4JOBUSB IFJHIU XFJHIU )BTIΦϒδΣΫτ Ωʔ QBSBNT
8FCαʔό ·ͱΊ 8FCϒϥβ )5.- ϑΥʔϜ 8FCΞϓϦ )551ͷ ੈք )5.-ͷੈք
3VCZͷੈք JOQVUOBNFIFJHIU UZQFUFYU JOQVUOBNFXFJHIU UZQFUFYU QBSBNT\ IFJHIU XFJHIU^ IFJHIU XFJHIU
ԋशͷղྫ
ԋश)5.-ͷදࣔ w CNJʹΞΫηε͢Δͱɺ)5.-Λදࣔ͢ΔΑ ͏ʹ8FCΞϓϦΛ࡞Γม͍͑ͯͩ͘͞
ԋश)5.-ͷදࣔ SFRVJSFTJOBUSB SFRVJSFTJOBUSBSFMPBEFS ! HFUIFMMPEP )FMMPTJOBUSB FOE ! HFUCNJEP
FSCCNJ FOE ! BQQSCͷमਖ਼ WJFXTCNJFSCͷՃ %0$5:1&IUNM IUNM IFBEUJUMF#.*ܭࢉUJUMFIFBE CPEZ I#.*ܭࢉϓϩάϥϜI ͱମॏΛೖྗͯ͠ɺʮ#.*ΛܭࢉʂʯϘλϯΛԡͯͩ͘͠ ͍͞ɻ GPSNBDUJPOCNJNFUIPEQPTU DN JOQVUOBNFIFJHIUUZQFUFYU ମॏ LH JOQVUOBNFXFJHIUUZQFUFYU JOQVUWBMVF#.*ΛܭࢉʂUZQFTVCNJU GPSN CPEZ IUNM 6OJDPSOαʔόͷ࠶ىಈΛΕͣʹʂ
ԋशσʔλͷड͚औΓ w ϑΥʔϜ͔ΒσʔλΛड͚औͬͯɺ#.*Λܭࢉ ͢Δ8FCΞϓϦΛ࡞Γ·͠ΐ͏ SFRVJSFTJOBUSB ! HFUCNJEP FSCCNJ FOE
! QPTUCNJEP ͜͜ʹ#.*Λܭࢉ͢ΔίʔυΛॻ͘ ͋ͳͨͷ#.*\CNJSPVOE ^Ͱ͢ FOE 8FCϒϥβ SPVOE খୈҰҐ·Ͱදࣔ
ԋशσʔλͷड͚औΓ w QBSBNTͷ͍ͣΕจࣈྻ 4USJOH ˠUP@GϝιουͰখʹม͢ΔͷΛΕͣʹ HFUCNJEP FSCCNJ FOE
! QPTUCNJEP IFJHIUQBSBNT<IFJHIU>UP@G XFJHIUQBSBNT<XFJHIU>UP@G CNJXFJHIUIFJHIU ͋ͳͨͷ#.*\CNJSPVOE ^Ͱ͢ FOE
4JOBUSBͷ ศརͳػೳ
ࣗಈϦϩʔυ w ຖճ6OJDPSOΛ࠶ىಈ͢Δͷ͕໘ w ίʔυΛमਖ਼͢ΔͱɺࣗಈͰϦϩʔυͯ͘͠ΕΔ HFNTJOBUSBDPOUSJC (FNpMF BQQSC SFRVJSFTJOBUSB
SFRVJSFTJOBUSBSFMPBEFS 4JOBUSB3FMPBEFS ݕࡧ
σόοά༻Τϥʔը໘ w Τϥʔը໘Ͱσόοάʢղੳʣ͕Ͱ͖Δ HFNCFUUFS@FSSPST HFNCJOEJOH@PG@DBMMFS (FNpMF BQQSC SFRVJSFCFUUFS@FSSPST !
VTF#FUUFS&SSPST.JEEMFXBSF #FUUFS&SSPSTBQQMJDBUJPO@SPPU@@EJS@@ CFUUFS@FSSPST ݕࡧ
CFGPSF
BGUFS Τϥʔલޙͷίʔυ͕ಡΊΔ ΤϥʔͷՕॴͰJSC͕ ಈ͔ͤΔʂ มͷத͕ݟ͑Δ
ࣗಈͰ)5.-Τεέʔϓ w )5.-ʹมΛදࣔ͢Δͱ͖ʹɺηΩϡϦςΟରࡦͷͨ Ί)5.-Τεέʔϓͱ͍͏ॲཧ͕ඞཁͰ͢ w FSVCJTΛ͏ͱɺࣗಈͰ)5.-Τεέʔϓͯ͘͠Ε·͢ HFNFSVCJT (FNpMF BQQSC
SFRVJSFFSVCJT TFUFSC FTDBQF@IUNMUSVF 944߈ܸ ݕࡧ
ศརͳػೳΛઃఆ͠Α͏ TPVSDFIUUQTSVCZHFNTPSH HFNVOJDPSO HFNTJOBUSB HFNTJOBUSBDPOUSJC HFNCFUUFS@FSSPST HFNCJOEJOH@PG@DBMMFS HFNFSVCJT (FNpMF
BQQSC SFRVJSFTJOBUSB SFRVJSFTJOBUSBSFMPBEFS SFRVJSFFSVCJT TFUFSC FTDBQF@IUNMUSVF ! SFRVJSFCFUUFS@FSSPST VTF#FUUFS&SSPST.JEEMFXBSF #FUUFS&SSPSTBQQMJDBUJPO@SPPU@@EJS@@ ! HFUIFMMPEP )FMMPTJOBUSB FOE (FNpMFͱBQQSCΛमਖ਼͠·͢
ศརͳػೳΛઃఆ͠Α͏ όϯυϧΠϯετʔϧΛ࣮ߦ͠·͢ VOJDPSOϓϩηεΛ࠶ىಈ͠·͢
͍ํͷҙ ࣗಈϦϩʔυͱσόοά༻Τϥʔ ը໘ɺ։ൃ͢Δͱ͖͚ͩ༗ޮ ʹ͠·͠ΐ͏ɻ ΞϓϦΛެ։͢Δͱ͖ແޮʹɻ
͔͜͜Β ઌिͷ͓ͷ͖ͭͮ
͓ จࣈྻΛදࣔ͢Δ͚ͩ ͷ8FCΞϓϦ ϑΥʔϜ͔ΒσʔλΛड͚औͬ ͯܭࢉ͢Δ8FCΞϓϦ #.*ܭࢉΛ8FCΞϓϦԽ ʢ#.*ମॏ×ʣ
)5.-Λදࣔ͠Α͏ ɹɹ ϑΥʔϜσʔλΛड͚औΖ͏ ɹɹ ܭࢉ݁ՌΛ)5.-ʹຒΊࠐ͏ ɹɹͱମॏ͔Β#.*Λܭࢉͯ͠ը໘ʹදࣔ
Γ͍ͨ͜ͱ )5.-ʹܭࢉ݁ՌΛ ද͍ࣔͨ͠ QPTUCNJEP #.*ܭࢉলུ ͋ͳͨͷ#.*\CNJSPVOE ^Ͱ͢ FOE
BQQSC ͍·ܭࢉ݁ՌΛ ςΩετͰग़ྗ
ςϯϓϨʔτ &SC ͷॻ͖ํ ֮͑Δ͜ͱ͚ͭͩ 3VCZͷίʔυΛ࣮ߦ 3VCZͷίʔυ 3VCZͷίʔυΛ࣮ߦ͠ɺ݁ՌΛදࣔ 3VCZͷίʔυ
#.*Λ)5.-ʹग़ྗ QPTUCNJEP IFJHIUQBSBNT<IFJHIU>UP@G XFJHIUQBSBNT<XFJHIU>UP@G !CNJXFJHIUIFJHIU FSCCNJ FOE BQQSC
WJFXTCNJFSC GPSNBDUJPOCNJNFUIPEQPTU DN JOQVUOBNFIFJHIUUZQFUFYU ମॏ LH JOQVUOBNFXFJHIUUZQFUFYU JOQVUWBMVF#.*ΛܭࢉʂUZQFTVCNJU GPSN ! JG!CNJ ͋ͳͨͷ#.*!CNJSPVOE Ͱ͢ɻ FOE CNJΛ!CNJʹॻ͖͑ ʢ!ͷҙຯ͋ͱͰઆ໌͠·͢ʣ !CNJมΛදࣔ
࣮ߦ݁Ռ ܭࢉ݁Ռ͕)5.-ʹ ग़ྗ͞Εͨʂ
ͱ͜ΖͰ !CNJͬͯ ͳʹʁʁʁʁʁ
ςϯϓϨʔτʹ͍ͨ͠ มʹ!Λ͚ͭΔ BQQSC HFUUFTUEP NFTTBHF)FMMP FSCUFTU FOE ϝοηʔδ NFTTBHFͰ͢ɻ
WJFXTUFTUFSC NFTTBHFมݟ͑ͳ͍ HFUUFTUEP !NFTTBHF)FMMP FSCUFTU FOE ϝοηʔδ !NFTTBHFͰ͢ɻ !Λ͚ͭΔͱΈ͑ΔΑ͏ʹͳΔ
4JOBUSBͷ3&"%.& w Πϯελϯεม JOTUBODFWBSJBCMF ม໊ͷ಄ʹ!͕͍͍ͯΔ
;ͭ͏ͷม 4JOBUSB"QQMJDBUJPO QPTUEP Z FOE BQQSC Z WJFXTCNJSC
HFUEP Y FOE Y Z มͷ༗ޮൣғ είʔϓ ϒϩοΫ Zมݟ͑ͳ͍
!ม Πϯελϯεม 4JOBUSB"QQMJDBUJPO QPTUEP !Z FOE BQQSC !Y WJFXTCNJSC
HFUEP !Y FOE !Y !Z มͷ༗ޮൣғΦϒδΣΫτ !Zม͕ݟ͑Δ
ͱΓ͋͑ͣɺ ςϯϓϨʔτʹͨ͠ ͍มʹ!Λ͚ͭΔ ͱ֮͑Ε0,
ԋश՝ 4JOBUSBͷศརઃఆ
՝4JOBUSBͷศརઃఆ Τϥʔલޙͷίʔυ͕ಡΊΔ ΤϥʔͷՕॴͰJSC͕ ಈ͔ͤΔʂ มͷத͕ݟ͑Δ ࣗಈϦϩʔυɺσόοά༻Τϥʔը໘ɺࣗಈ )5.-ΤεέʔϓΛઃఆ͠·͠ΐ͏ɻ
՝4JOBUSBͷศརઃఆ TPVSDFIUUQTSVCZHFNTPSH HFNVOJDPSO HFNTJOBUSB HFNTJOBUSBDPOUSJC HFNCFUUFS@FSSPST HFNCJOEJOH@PG@DBMMFS HFNFSVCJT (FNpMF
BQQSC SFRVJSFTJOBUSB SFRVJSFTJOBUSBSFMPBEFS SFRVJSFFSVCJT TFUFSC FTDBQF@IUNMUSVF ! SFRVJSFCFUUFS@FSSPST VTF#FUUFS&SSPST.JEEMFXBSF #FUUFS&SSPSTBQQMJDBUJPO@SPPU@@EJS@@ ! HFUIFMMPEP )FMMPTJOBUSB FOE (FNpMFͱBQQSCΛमਖ਼͠·͢
՝4JOBUSBͷศརઃఆ όϯυϧΠϯετʔϧΛ࣮ߦ͠·͢ VOJDPSOϓϩηεΛ࠶ىಈ͠·͢
ԋश՝ #.*Λ)5.-ʹग़ྗ
՝#.*Λ)5.-ग़ྗ ܭࢉ݁Ռ͕දࣔ͞ΕΕ0, ܭࢉ݁ՌΛ)5.-Ͱग़ྗ͠·͠ΐ͏ɻ
՝#.*Λ)5.-ग़ྗ QPTUCNJEP IFJHIUQBSBNT<IFJHIU>UP@G XFJHIUQBSBNT<XFJHIU>UP@G !CNJXFJHIUIFJHIU FSCCNJ FOE BQQSC
WJFXTCNJFSC GPSNBDUJPOCNJNFUIPEQPTU DN JOQVUOBNFIFJHIUUZQFUFYU ମॏ LH JOQVUOBNFXFJHIUUZQFUFYU JOQVUWBMVF#.*ΛܭࢉʂUZQFTVCNJU GPSN ! JG!CNJ ͋ͳͨͷ#.*!CNJSPVOE Ͱ͢ɻ FOE CNJΛ!CNJʹॻ͖͑ !CNJมΛදࣔ
ԋश՝ ग़ྗ݁ՌͷΧελϚΠζ
՝ग़ྗ݁ՌͷΧελϚΠζ #.*ͷʹΑͬͯɺʮ૫ͤܕʯɺʮී௨ʯɺ ʮଠΓ͗ΈʯͷମܕදࣔͰ͖ΔΑ͏ʹ 8FCΞϓϦΛमਖ਼͍ͯͩ͘͠͞ɻ
՝ग़ྗ݁ՌͷΧελϚΠζ $-*ΞϓϦͷ߹ʢୈճ3VCZߨ࠲ΑΓʣ Λฉ͘ QVUT͋ͳͨͷΛڭ͍͑ͯͩ͘͞ DN IFJHIUHFUTUP@G ମॏΛฉ͘ QVUTͭ͗ʹମॏΛڭ͍͑ͯͩ͘͞
LH XFJHIUHFUTUP@G #.*Λܭࢉ͢Δ CNJXFJHIUIFJHIU #.*Λڭ͑Δ QVUT͋ͳͨͷ#.*\CNJ^Ͱ͢z ! JGCNJ QVUT૫ͤܕͰ͢ FMTJGCNJ QVUTී௨Ͱ͢ FMTF QVUTଠΓ͗ΈͰ͢ FOE
ԋश՝ 8FCΞϓϦ࡞Γ
՝8FCΞϓϦ࡞Γ w ͋ͳͨΦϦδφϧͷ8FCΞϓϦΛ࡞ͬͯΈ· ͠ΐ͏ w )5.-ϑΥʔϜ͔ΒσʔλΛड͚औͬͯɺܭࢉ ͯ͠ɺը໘ʹग़ྗ͠·͢ w ྫʮੜ·Ε͔ͯΒԿͨͬͨʁʯɺ ʮ8JLJQFEJBΞΫηεղੳ݁ՌͷදࣔʯͳͲ
ࢀߟࢿྉ
BCD ࣮ߦ݁Ռ QVUTBCD ॻࣜ 3VCZίʔυ ࣮ߦ݁Ռ TIFMMίϚϯυ MT
ࡶஊɾ࣭༻GBDFCPPLάϧʔϓ IUUQTXXXGBDFCPPLDPNHSPVQTIJUPUTVCBTIJSC ɾՃೖඇՃೖࣗ༝Ͱ͢ ɾՃೖඇՃೖʹؔ͠·ͤΜ ɾࢀՃऀҰཡެ։͞Ε·͢ ɾࢀՃऀελοϑͱҰࡢɺࡢɺࠓͷडߨऀͰ͢ ɾॻ͖ࠐΈࢀՃऀͷΈݟ͑·͢ ɾرऀΞΫηεͯ͠ࢀՃਃ͍ͯͩ͘͠͞ ɾࡶஊɺ࣭ɺٞͳͲԿͰؾʹͤͣͲ͏ͧʙ ɾ࣭ʹ͑ΒΕΔਓ͍͑ͯ͋͛ͯͩ͘͞
ɾߨࢣਞ͓͑͠·͢ ɾೖͬͨΒܰࣗ͘ݾհ͓Ͷ͕͍͠·͢