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
270
ruby10
MATSUOKA Kohei
June 11, 2014
Tweet
Share
More Decks by MATSUOKA Kohei
See All by MATSUOKA Kohei
ゼロからわかるRuby超入門の歩き方
machu
2
4.1k
最近のtDiary
machu
1
1.5k
ruby15
machu
0
450
ruby13
machu
0
380
ruby12
machu
1
270
ruby11
machu
0
280
ruby09
machu
0
240
ruby08
machu
0
210
ruby07
machu
0
370
Other Decks in Technology
See All in Technology
DevOpsメトリクスとアウトカムの接続にトライ!開発プロセスを通して計測できるメトリクスの活用方法
ham0215
0
180
株式会社EventHub・エンジニア採用資料
eventhub
0
1.9k
長期運用プロジェクトでのMySQLからTiDB移行の検証
colopl
1
580
Tebiki株式会社 エンジニア採用資料
tebiki
0
4.1k
最近たまに見かけるTiDBってなんだ? - Findy
pingcap0315
2
510
自動生成を活用した、運用保守コストを抑える Error/Alert/Runbook の一元集約管理 / Centralized management of Error/Alert/Runbook to minimize operational costs using automated code generation
biwashi
9
2.1k
シン・Kafka / shin-kafka
oracle4engineer
PRO
6
2.7k
Apple Vision Pro trial session
akkeylab
0
120
Signals Unleashed: The Full Guide
rainerhahnekamp
0
360
Autonomous Database Cloud 技術詳細 / adb-s_technical_detail_jp
oracle4engineer
PRO
13
35k
Databricksを活用してDELISH KITCHENのレシピレコメンドを開発した話
furu8
0
250
**強い**エンジニアのなり方 - フィードバックサイクルを勝ち取る / grow one day each day
soudai
60
17k
Featured
See All Featured
Docker and Python
trallard
33
2.7k
RailsConf 2023
tenderlove
1
530
ParisWeb 2013: Learning to Love: Crash Course in Emotional UX Design
dotmariusz
103
6.6k
Optimizing for Happiness
mojombo
369
69k
Scaling GitHub
holman
457
140k
Raft: Consensus for Rubyists
vanstee
131
6.2k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
19
1.9k
Side Projects
sachag
451
41k
The Mythical Team-Month
searls
214
42k
The Illustrated Children's Guide to Kubernetes
chrisshort
28
46k
GraphQLとの向き合い方2022年版
quramy
30
12k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
243
20k
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 ɾՃೖඇՃೖࣗ༝Ͱ͢ ɾՃೖඇՃೖʹؔ͠·ͤΜ ɾࢀՃऀҰཡެ։͞Ε·͢ ɾࢀՃऀελοϑͱҰࡢɺࡢɺࠓͷडߨऀͰ͢ ɾॻ͖ࠐΈࢀՃऀͷΈݟ͑·͢ ɾرऀΞΫηεͯ͠ࢀՃਃ͍ͯͩ͘͠͞ ɾࡶஊɺ࣭ɺٞͳͲԿͰؾʹͤͣͲ͏ͧʙ ɾ࣭ʹ͑ΒΕΔਓ͍͑ͯ͋͛ͯͩ͘͞
ɾߨࢣਞ͓͑͠·͢ ɾೖͬͨΒܰࣗ͘ݾհ͓Ͷ͕͍͠·͢