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
300
ruby10
MATSUOKA Kohei
June 11, 2014
Tweet
Share
More Decks by MATSUOKA Kohei
See All by MATSUOKA Kohei
ゼロからわかるRuby超入門の歩き方
machu
2
4.3k
最近のtDiary
machu
1
1.6k
ruby15
machu
0
470
ruby13
machu
0
410
ruby12
machu
1
280
ruby11
machu
0
300
ruby09
machu
0
250
ruby08
machu
0
230
ruby07
machu
0
380
Other Decks in Technology
See All in Technology
10分で紹介するAmazon Bedrock利用時のセキュリティ対策 / 10-minutes introduction to security measures when using Amazon Bedrock
hideakiaoyagi
0
180
第13回 Data-Centric AI勉強会, 画像認識におけるData-centric AI
ksaito_osx
0
370
データマネジメントのトレードオフに立ち向かう
ikkimiyazaki
3
300
飲食店予約台帳を支えるインタラクティブ UI 設計と実装
siropaca
7
1.6k
管理者しか知らないOutlookの裏側のAIを覗く#AzureTravelers
hirotomotaguchi
2
320
エンジニアのためのドキュメント力基礎講座〜構造化思考から始めよう〜(2025/02/15jbug広島#15発表資料)
yasuoyasuo
16
6.3k
なぜ私は自分が使わないサービスを作るのか? / Why would I create a service that I would not use?
aiandrox
0
510
スクラムのイテレーションを導入してチームの雰囲気がより良くなった話
eccyun
0
110
Cloud Spanner 導入で実現した快適な開発と運用について
colopl
1
320
組織貢献をするフリーランスエンジニアという生き方
n_takehata
1
1.2k
白金鉱業Meetup Vol.17_あるデータサイエンティストのデータマネジメントとの向き合い方
brainpadpr
4
300
技術的負債解消の取り組みと専門チームのお話 #技術的負債_Findy
bengo4com
1
1.2k
Featured
See All Featured
YesSQL, Process and Tooling at Scale
rocio
171
14k
Building Applications with DynamoDB
mza
93
6.2k
What's in a price? How to price your products and services
michaelherold
244
12k
Fashionably flexible responsive web design (full day workshop)
malarkey
406
66k
Done Done
chrislema
182
16k
Designing for humans not robots
tammielis
250
25k
How STYLIGHT went responsive
nonsquared
98
5.4k
Building Adaptive Systems
keathley
40
2.4k
Adopting Sorbet at Scale
ufuk
74
9.2k
Automating Front-end Workflow
addyosmani
1367
200k
Building a Scalable Design System with Sketch
lauravandoore
460
33k
Site-Speed That Sticks
csswizardry
3
370
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 ɾՃೖඇՃೖࣗ༝Ͱ͢ ɾՃೖඇՃೖʹؔ͠·ͤΜ ɾࢀՃऀҰཡެ։͞Ε·͢ ɾࢀՃऀελοϑͱҰࡢɺࡢɺࠓͷडߨऀͰ͢ ɾॻ͖ࠐΈࢀՃऀͷΈݟ͑·͢ ɾرऀΞΫηεͯ͠ࢀՃਃ͍ͯͩ͘͠͞ ɾࡶஊɺ࣭ɺٞͳͲԿͰؾʹͤͣͲ͏ͧʙ ɾ࣭ʹ͑ΒΕΔਓ͍͑ͯ͋͛ͯͩ͘͞
ɾߨࢣਞ͓͑͠·͢ ɾೖͬͨΒܰࣗ͘ݾհ͓Ͷ͕͍͠·͢