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
ruby10
Search
MATSUOKA Kohei
June 11, 2014
Technology
0
310
ruby10
MATSUOKA Kohei
June 11, 2014
Tweet
Share
More Decks by MATSUOKA Kohei
See All by MATSUOKA Kohei
ゼロからわかるRuby超入門の歩き方
machu
2
4.4k
最近のtDiary
machu
1
1.7k
ruby15
machu
0
480
ruby13
machu
0
420
ruby12
machu
1
300
ruby11
machu
0
310
ruby09
machu
0
260
ruby08
machu
0
230
ruby07
machu
0
390
Other Decks in Technology
See All in Technology
Digitization部 紹介資料
sansan33
PRO
1
3.8k
kintone開発組織のDevOpsへの移り変わりと実践
ueokande
1
130
CSSDay, Amsterdam
brucel
0
130
LT:組込み屋さんのオシロが壊れた!
windy_pon
0
470
Swiftは最高だよの話
yuukiw00w
2
290
積み上げられた技術資産と向き合いながら、プロダクトの信頼性をどう守るか
plaidtech
PRO
0
930
MCP Clientを活用するための設計と実装上の工夫
yudai00
1
810
AIの電力問題を概観する
rmaruy
1
220
Machine Intelligence for Vision, Language, and Actions
keio_smilab
PRO
0
500
新卒から4年間、20年もののWebサービスと向き合って学んだソフトウェア考古学 - PHPカンファレンス新潟2025 / new graduate 4year software archeology
oguri
2
360
人とAIとの共創を夢見た2か月 #共創AIミートアップ / Co-Creation with Keito-chan
kondoyuko
1
710
KMP導⼊において、マネジャーとして考えた事
sansantech
PRO
1
210
Featured
See All Featured
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
280
13k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
252
21k
Facilitating Awesome Meetings
lara
54
6.4k
Balancing Empowerment & Direction
lara
1
89
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
123
52k
Imperfection Machines: The Place of Print at Facebook
scottboms
267
13k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
29
1.7k
How STYLIGHT went responsive
nonsquared
100
5.6k
Docker and Python
trallard
44
3.4k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
31
1.2k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
10
850
The Language of Interfaces
destraynor
158
25k
Transcript
3VCZߨٛୈճ ͡Ίͯͷ8FCΞϓϦ χϑςΟגࣜձࣾدෟߨٛ ࣾձՊֶʹ͓͚Δใٕज़ͱίϯςϯπ࡞***
দԬߒฏ ߨࢣ /55ίϜΣΞ᷂ UXJUUFS!NBDIV IUUQTHJUIVCDPNNBDIV IUUQXXXNBDIVKQEJBSZ
ຊͷߨٛ w ͜Ε·ͰֶΜͩϓϩάϥϛϯάͷࣝΛ׆͔͠ ͯɺ͜Ε͔ΒճͰ8FCΞϓϦΛ࡞Γ·͢ w 8FCΞϓϦಛ༗ͷઃఆ͋Γ·͕͢ɺϓϩάϥ ϛϯάͷجຊมΘΓ·ͤΜ w ݅ذɺ܁Γฦ͠ɺϋογϡɺྻʜ
8FCΞϓϦͱ
8FCͱ 8FCςΩετը૾Λެ։͢ΔΈ த)5.-ͱ͍͏ςΩετ
8FCΞϓϦͱ 8FCͷΈͷ্Ͱಈ͔͢ΞϓϦ
"NB[PO
$PPL1BE
8FCϑϨʔϜϫʔΫ 8FCͷੈք )551 )5.- 3VCZͷੈք 8FCΞϓϦ 8FCͷੈք )551 )5.-
3VCZͷੈք 8FCΞϓϦ 8FCϑϨʔϜϫʔΫ θϩ͔Β8FCΞϓϦΛ ࡞Δͷେม )551ͷղੳίʔυ ϑϨʔϜϫʔΫ͕ 8FCͷੈքͱͷڮ͠
3VCZͷ8FCϑϨʔϜϫʔΫ 3VCZPO3BJMT ɾશ෦ೖΓɺϓϩ༷ ɾ͍͜ͳ͢·Ͱେม 4JOBUSB ɾඞཁ࠷খݶɺγϯϓϧ ɾͪΐͬͱ͏ʹ࠷ద
͜ͷߨٛͰ 4JOBUSBΛͬͯ 8FCΞϓϦΛ࡞͠·͢ ʻݶͷߨٛΛडߨ͞Ε͍ͯΔํʼ ݶͰ3BJMTΛ͍ͬͯ·͕͢ɺ4JOBUSBΛ͏͜ͱͰ 8FCΞϓϦͷجຊΛཧղ͢Δʹཱͪ·͢
(FN 4JOBUSBαΠτʹ͔Γ͍͢νϡʔτϦΞϧ͕͋Γ·͢ɻ IUUQXXXTJOBUSBSCDPNJOUSPIUNM
4JOBUSBͷ Πϯετʔϧ
3VCZຊମ ίΞ 3VCZͷศརͳಓ۩ͨͪ ΈࠐΈϥΠϒϥϦ 4USJOH "SSBZ )BTI ඪ४ఴϥΠϒϥϦ
$(* QQ ͦͷଞͷϥΠϒϥϦ 3BJMT 4JOBUSB ɾ3VCZຊମʹΈࠐΈ ɾSFRVJSFͳ͠Ͱ͑Δ ɾ3VCZͱҰॹʹ ɾSFRVJSFͰ͑Δ ɾ3VCZͱผʹ͞ΕΔ ɾΠϯετʔϧͯ͠͏
3VCZ(FNTPSH ϥΠϒϥϦΛཧɾͯ͘͠ΕΔαΠτɻ ެ։͢ΔϥΠϒϥϦΛHFN ๅੴ ͱݺͿɻ "QQ4UPSF1MBZ4UPSFͷ3VCZ൛ɻ ͨͩ͠৹ࠪͳ͍ 1FSMͷ$1"/1)1ͷ1&"3ͳͲɺ ଞݴޠʹࣅͨΈ͕͋Γ·͢
3VCZ(FNTͰ ެ։͞Ε͍ͯΔϥΠϒϥϦ w ը૾ͷϦαΠζɺ&YDFMϑΝΠϧͷૢ࡞ɺ 5XJUUFSΫϥΠΞϯτͳͲͳͲ w ສछྨͷϥΠϒϥϦ͕ొ͞Ε͍ͯ·͢ w 3VCZ(FNTͷ͓͔͛ͰɺϥΠϒϥϦΛ؆୯ʹ ΠϯετʔϧͰ͖·͢
IUUQTXXXqJDLSDPNQIPUPTTIFFQJFT
4JOBUSBͷ Πϯετʔϧ
4JOBUSBHFNܗࣜͷϥΠ ϒϥϦͰ͞Ε͍ͯ·͢ɻ $4"ʹ4JOBUSBΛΠϯε τʔϧͯ͠Έ·͠ΐ͏ɻ
4JOBUSBͷΠϯετʔϧ $4"ͷը໘Ͱ࡞ۀ͠·͢ɻ IPNFQSPKFDUϑΥϧμʹ͋Δ(FNpMFͱ͍͏໊ લͷϑΝΠϧΛ։͖·͢ɻ
4JOBUSBͷΠϯετʔϧ (FNpMFʹ͍͍ͨϥΠϒϥϦͷ໊લΛॻ͖·͢ɻ 4JOBUSBΛ͍͍ͨͷͰɺHFNTJOBUSBΛهɻ TPVSDFIUUQTSVCZHFNTPSH HFNVOJDPSO HFNTJOBUSB (FNpMF 4JOBUSBΛ͍͍ͨͷͰՃ
4JOBUSBͷΠϯετʔϧ όϯυϧΠϯετʔϧΛ։͖ɺ࣮ߦΛબ͠·͢ ! ! ը໘্෦ʹʮCVOEMFJOTUBMM͕ྃ͠·ͨ͠ʯ ͱදࣔ͞ΕΕΠϯετʔϧྃͰ͢ɻ
ิCVOEMFJOTUBMM w (FNpMFʹॻ͍ͯ͋ΔϥΠϒϥϦ໊ HFN Λ ಡΈࠐΜͰɺ3VCZ(FNTPSH͔ΒϥΠϒϥϦ Λμϯϩʔυ͢ΔΈͰ͢ w $-*͔Β࣮ߦͰ͖·͢
DEQSPKFDU CVOEMFJOTUBMM CVOEMF HFNTJOBUSB TJOBUSB (FNpMF
ิCVOEMFJOTUBMM w μϯϩʔυͨ͠ϥΠϒϥϦQSPKFDU WFOEPSCVOEMFϑΥϧμʹอଘ͞Ε·͢
4JOBUSBͰ࡞Δ ͡Ίͯͷ8FCΞϓϦ
$4" w /JGUZͷ$4"ʹɺ8FCΞϓϦΛ؆୯ʹಈ͔ ͨ͢ΊͷΈ͕༻ҙ͞Ε͍ͯ·͢ 04 -JOVY $4" /JGUZͷαʔό 8FCαʔό
/HJOY 3VCZ
4JOBUSBΞϓϦͷߏ 6OJDPSO 3VCZαʔό DPOpHSV )FMMP 8PSMEΛදࣔ 6OJDPSO 3VCZαʔό DPOpHSV
4JOBUSBΛ࣮ߦ͢Δઃఆ 4JOBUSB BQQSC ͜͜ʹ8FCΞϓϦΛॻ͘ มߋલ มߋޙ 4JOBUSB͕ಈ͘Α͏ʹ ϑΝΠϧΛॻ͖͑·͢ˠᶃᶄ (FNpMF ͏ϥΠϒϥϦΛࢦఆ (FNpMF ͏ϥΠϒϥϦΛࢦఆ มߋࡁΈ
ᶃ8FCΞϓϦͷ࡞ QSPKFDUϑΥϧμʹBQQSCϑΝΠϧΛ࡞͠· ͢ɻ͜ͷϑΝΠϧ͕8FCΞϓϦຊମʹͳΓ·͢ɻ SFRVJSFTJOBUSB ! HFUEP )FMMPTJOBUSB FOE BQQSC
4JOBUSBϥΠϒϥϦΛಡΈࠐΉ τοϓϖʔδʹΞΫηε ͞ΕͨΒ HFU ɺ)FMMP TJOBUSBΛදࣔ͢Δ
ᶄDPOpHSVͷॻ͖͑ DPOpHSV8FCΞϓϦͷجຊઃఆΛॻ͘ϑΝΠϧ Ͱ͢ɻ4JOBUSBΛ࣮ߦ͢ΔΑ͏ʹॻ͖͑·͢ɻ DMBTT)FMMP EFGDBMM FOW < \$POUFOU5ZQF
UFYUIUNM^ <)FMMP 8PSME>> FOE FOE ! NBQEP SVO)FMMPOFX FOE SFRVJSFBQQ SVO4JOBUSB"QQMJDBUJPO 8FCΞϓϦ BQQSC ΛಡΈࠐΉ 4JOBUSBΛ࣮ߦ͢Δ DPOpHSV มߋલ DPOpHSV มߋޙ
VOJDPSOͷ࠶ىಈ w σʔϞϯཧΛ։͖ɺVOJDPSOϓϩηεΛ࠶ىಈ ʢϦελʔτʣ͠·͢ɻ w ࠶ىಈ͢Δ͜ͱͰɺमਖ਼ͨ͠BQQSCDPOpHSV ͷ༰͕ಡΈࠐ·Ε·͢ɻ
8FCΞϓϦʹΞΫηε w $4"ࠨ্ͷϦϯΫΛΫϦοΫ͢Δͱɺ࡞͠ ͨ8FCΞϓϦʹΞΫηεͰ͖·͢ɻ BQQSCʹॻ͍ͨ༰͕දࣔ͞ΕΔ
8FCΞϓϦͷղઆ
8FCαʔό 8FCͷΈ ϒϥβʹΞυϨεΛೖྗ 8FCϒϥβ 04 8JO .BD σʔλ͍ͩ͘͞ 04
-JOVYͳͲ XXXZBIPPDPKQ ϦΫΤετ͕ ඈͼ·͢
8FCαʔό 8FCͷΈ 8FCϒϥβ 04 8JO .BD 04 -JOVYͳͲ XXXZBIPPDPKQ
Ϩεϙϯε͕ ฦ͖ͬͯ·͢ σʔλ͍ͩ͘͞ ςΩετ )5.- ը૾ +1&( Ͳ͏ͧ ϨεϙϯεΛ ը໘ʹදࣔ͠·͢
8FCͷΈ w )551ͱ͍͏ܾ·Γ͝ͱΛͬͯɺαʔό্ͷ ը૾ςΩετΛऔಘ͠·͢ 8FCϒϥβ 04 8JO .BD 04
-JOVYͳͲ 8FCαʔό ͜ͷσʔλ͍ͩ͘͞ Ͳ͏ͧ )551 ʢͱ͍͏ܾ·Γ͝ͱʣ ςΩετ )5.- ը૾ +1&( ςΩετ )5.- ը૾ +1&(
8FCϒϥβ XXX ZBIPPDPKQ 8FCαʔό IUUQ͆͆͆ZBIPPDPKQ (&5)551 )PTUXXXZBIPPDPKQ $POOFDUJPOLFFQBMJWF )5510,
4FSWFSOHJOY %BUF4VO +VO(.5 IUUQEBJMZOFXTZBIPPDPKQ GDEPNFTUJDXFBUIFS EBJMZOFXT ZBIPPDPKQ (&5GDEPNFTUJDXFBUIFS)551 )PTUXXXZBIPPDPKQ $POOFDUJPOLFFQBMJWF )5510, 4FSWFSOHJOY %BUF4VO +VO(.5 τοϓϖʔδ͍ͩ͘͞ ఱؾͷϖʔδ͍ͩ͘͞ Ͳ͏ͧ Ͳ͏ͧ :BIPP+"1"/ͷྫ ϦϯΫΛΫϦοΫ
63-8FC্ͷॅॴ w 63-ϦιʔεʢςΩετը૾ʣͷॴΛද͢ IUUQEBJMZOFXTZBIPPDPKQGDEPNFTUJDXFBUIFS εΩʔϜ ϗετ ύε ௨৴ํࣜɻ҉߸Խ ͷ࣌IUUQTΛ
͏ɻଞʹGUQͳ Ͳ͕͋Δɻ ଓ͢Δαʔόͷ໊લ αʔό্ͷϦιʔεʢը ૾ςΩετʣͷॴ
࠷ۙͷϒϥβ63-Λলུ IUUQΛলུ 1$൛$ISPNF αʔό໊ͷΈදࣔ J04൛4BGBSJ
8FCαʔό ͖ͬ͞࡞ͬͨ8FCΞϓϦͰ HFUEP )FMMPTJOBUSB FOE ! ! ! !
YYYDTBOFU YYYDTBOFU )FMMPTJOBUSB 8FC ϒϥβ )FMMPTJOBUSB 6OJDPSO 4JOBUSB ύε͕ͷϦΫΤετʹରͯ͠ )FMMPTJOBUSBͱ͍͏Ϩεϙϯε Λฦ͢8FCΞϓϦͱͯ͠ಈ࡞͠·͢
ԋश
8FCαʔό 63-Λ૿ͯ͠ΈΑ͏ HFUEP )FMMPTJOBUSB FOE ! HFUCZFEP #ZFTJOBUSB FOE
YYYDTBOFU YYYDTBOFU )FMMPTJOBUSB 8FC ϒϥβ YYYDTBOFUCZF #ZFTJOBUSB )FMMPTJOBUSB #ZFTJOBUSB 6OJDPSO 4JOBUSB
ԋश w ΞΫηε͢Δͱ#ZFTJOBUSBͱදࣔ͢Δ 63-YYYDTBOFUCZFΛՃ͠·͢ BQQSCΛฤूͯ͠HFUCZFEPΛ Ճʢલϖʔδࢀরʣ VOJDPSOαʔόΛ࠶ىಈˡΕͣʹʂ w
8FCϒϥβͰՃͨ͠63-ʹΞΫηε
ԋश w ΞΫηε͢Δͱݱࡏ࣌ࠁΛදࣔ͢Δ63- YYYDTBOFUOPXΛՃ͠·͢ w ݱࡏ࣌ࠁ5JNFOPXͰऔಘͰ͖·͢ w ͍ํ3VCZϚχϡΞϧͳͲͰௐͯΈ·͠ΐ͏ w จࣈྻͷมΛΕͣʹʂ
ݱࡏ࣌ࠁͷऔಘ OPX5JNFOPX
·ͱΊ
8FCΞϓϦͱ 8FCͷΈͷ্Ͱಈ͔͢ΞϓϦ
8FCϑϨʔϜϫʔΫ 8FCͷੈք )551 )5.- 3VCZͷੈք 8FCΞϓϦ 8FCͷੈք )551 )5.-
3VCZͷੈք 8FCΞϓϦ 8FCϑϨʔϜϫʔΫ θϩ͔Β8FCΞϓϦΛ ࡞Δͷେม )551ͷղੳίʔυ ϑϨʔϜϫʔΫ͕ 8FCͷੈքͱͷڮ͠
3VCZͷ8FCϑϨʔϜϫʔΫ 3VCZPO3BJMT ɾશ෦ೖΓɺϓϩ༷ ɾ͍͜ͳ͢·Ͱେม 4JOBUSB ɾඞཁ࠷খݶɺγϯϓϧ ɾͪΐͬͱ͏ʹ࠷ద
(FN 4JOBUSBαΠτʹ͔Γ͍͢νϡʔτϦΞϧ͕͋Γ·͢ɻ IUUQXXXTJOBUSBSCDPNJOUSPIUNM
3VCZຊମ ίΞ 3VCZͷศརͳಓ۩ͨͪ ΈࠐΈϥΠϒϥϦ 4USJOH "SSBZ )BTI ඪ४ఴϥΠϒϥϦ
$(* QQ ͦͷଞͷϥΠϒϥϦ 3BJMT 4JOBUSB ɾ3VCZຊମʹΈࠐΈ ɾSFRVJSFͳ͠Ͱ͑Δ ɾ3VCZͱҰॹʹ ɾSFRVJSFͰ͑Δ ɾ3VCZͱผʹ͞ΕΔ ɾΠϯετʔϧͯ͠͏
(FNpMF (FNpMFʹ͍͍ͨϥΠϒϥϦͷ໊લΛॻ͖·͢ɻ 4JOBUSBΛ͍͍ͨͷͰɺHFNTJOBUSBΛهɻ TPVSDFIUUQTSVCZHFNTPSH HFNVOJDPSO HFNTJOBUSB (FNpMF 4JOBUSBΛ͍͍ͨͷͰՃ
ิCVOEMFJOTUBMM w (FNpMFʹॻ͍ͯ͋ΔϥΠϒϥϦ໊ HFN Λ ಡΈࠐΜͰɺ3VCZ(FNTPSH͔ΒϥΠϒϥϦ Λμϯϩʔυ͢ΔΈͰ͢ w $-*͔Β࣮ߦͰ͖·͢
DEQSPKFDU CVOEMFJOTUBMM CVOEMF HFNTJOBUSB TJOBUSB (FNpMF
4JOBUSBΞϓϦͷߏ 6OJDPSO 3VCZαʔό DPOpHSV )FMMP 8PSMEΛදࣔ 6OJDPSO 3VCZαʔό DPOpHSV
4JOBUSBΛ࣮ߦ͢Δઃఆ 4JOBUSB BQQSC ͜͜ʹ8FCΞϓϦΛॻ͘ มߋલ มߋޙ 4JOBUSB͕ಈ͘Α͏ʹ ϑΝΠϧΛॻ͖͑·͢ˠᶃᶄ (FNpMF ͏ϥΠϒϥϦΛࢦఆ (FNpMF ͏ϥΠϒϥϦΛࢦఆ มߋࡁΈ
8FCαʔό ͖ͬ͞࡞ͬͨ8FCΞϓϦͰ HFUEP )FMMPTJOBUSB FOE ! ! ! !
YYYDTBOFU YYYDTBOFU )FMMPTJOBUSB 8FC ϒϥβ )FMMPTJOBUSB 6OJDPSO 4JOBUSB
8FCͷΈ w )551ͱ͍͏ܾ·Γ͝ͱΛͬͯɺαʔό্ͷ ը૾ςΩετΛऔಘ͠·͢ 8FCϒϥβ 04 8JO .BD 04
-JOVYͳͲ 8FCαʔό ͜ͷσʔλ͍ͩ͘͞ Ͳ͏ͧ )551 ʢͱ͍͏ܾ·Γ͝ͱʣ ςΩετ )5.- ը૾ +1&( ςΩετ )5.- ը૾ +1&(
63-8FC্ͷॅॴ w 63-ϦιʔεʢςΩετը૾ʣͷॴΛද͢ IUUQEBJMZOFXTZBIPPDPKQGDEPNFTUJDXFBUIFS εΩʔϜ ϗετ ύε ௨৴ํࣜɻ҉߸Խ ͷ࣌IUUQTΛ
͏ɻଞʹGUQͳ Ͳ͕͋Δɻ ଓ͢Δαʔόͷ໊લ αʔό্ͷϦιʔεʢը ૾ςΩετʣͷॴ
ࢀߟࢿྉ
BCD ࣮ߦ݁Ռ QVUTBCD ॻࣜ 3VCZίʔυ ࣮ߦ݁Ռ TIFMMίϚϯυ MT
ࡶஊɾ࣭༻GBDFCPPLάϧʔϓ IUUQTXXXGBDFCPPLDPNHSPVQTIJUPUTVCBTIJSC ɾՃೖඇՃೖࣗ༝Ͱ͢ ɾՃೖඇՃೖʹؔ͠·ͤΜ ɾࢀՃऀҰཡެ։͞Ε·͢ ɾࢀՃऀελοϑͱҰࡢɺࡢɺࠓͷडߨऀͰ͢ ɾॻ͖ࠐΈࢀՃऀͷΈݟ͑·͢ ɾرऀΞΫηεͯ͠ࢀՃਃ͍ͯͩ͘͠͞ ɾࡶஊɺ࣭ɺٞͳͲԿͰؾʹͤͣͲ͏ͧʙ ɾ࣭ʹ͑ΒΕΔਓ͍͑ͯ͋͛ͯͩ͘͞
ɾߨࢣਞ͓͑͠·͢ ɾೖͬͨΒܰࣗ͘ݾհ͓Ͷ͕͍͠·͢