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
Ruby講義 第1回
Search
Kuniaki IGARASHI
April 21, 2012
Technology
15
14k
Ruby講義 第1回
ガイダンス
2012.4.12 at 一橋大学
社会科学における情報技術とコンテンツ作成Ⅲ
(ニフティ株式会社寄附講義)
Kuniaki IGARASHI
April 21, 2012
Tweet
Share
More Decks by Kuniaki IGARASHI
See All by Kuniaki IGARASHI
RuboSensei
igaiga
0
140
Shibuya.rb-2023-04-27-igaiga
igaiga
1
420
Ginza Rails27 igaiga
igaiga
9
11k
tork09igaiga
igaiga
2
250
Road to white mages
igaiga
1
590
Road to white mages
igaiga
8
3.7k
dive_into_code_rails_ruby_books
igaiga
0
180
ginza_rails_vol3_igaiga
igaiga
0
4.7k
rgt2016
igaiga
0
120
Other Decks in Technology
See All in Technology
コンテナセキュリティの基本と脅威への対策
kyohmizu
3
660
AWS を使う上で知っておきたいオンプレミス知識/aws-on-premise-essentials
emiki
1
4.1k
0→1開発における技術選定において一番大切なこと
bicstone
1
320
次世代Web認証「パスキー」 / mo-zatsudan-passkey
nkzn
22
13k
〜小さく始めて大きく育てる〜データ分析基盤の開発から活用まで
kniino
0
1.9k
SIEMを用いて、セキュリティログ分析の可視化と分析を実現し、PDCAサイクルを回してみた
coconala_engineer
0
190
HEXA OSINT CTF V3 作戦会議
meow_noisy
0
110
キャラクター制御のためのプロンプト術 for LINE Bot
uezo
0
510
開発生産性向上サービスを作るFindyが自分たちで開発生産性を爆上げした組織づくりの歩み / Findy's path to boosting its own development productivity 2024-04-17
ma3tk
0
210
マルチアカウント環境への発見的統制の導入
ch1aki
1
1.3k
オブザーバビリティの Primary Signals
onk
PRO
0
530
社内勉強会運営のコツ
senoo
6
1.1k
Featured
See All Featured
How GitHub Uses GitHub to Build GitHub
holman
468
290k
Documentation Writing (for coders)
carmenintech
59
3.9k
Atom: Resistance is Futile
akmur
258
25k
Building Applications with DynamoDB
mza
88
5.6k
Designing on Purpose - Digital PM Summit 2013
jponch
110
6.4k
Stop Working from a Prison Cell
hatefulcrawdad
265
19k
The Art of Programming - Codeland 2020
erikaheidi
41
12k
Faster Mobile Websites
deanohume
296
30k
Automating Front-end Workflow
addyosmani
1354
200k
Into the Great Unknown - MozCon
thekraken
10
980
How GitHub (no longer) Works
holman
304
140k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
60
14k
Transcript
3VCZߨٛ ୈճ3VCZ֓ ޒेཛྷ໌ UXJUUFSJHBJHB NBJMJHBJHB!HNBJMDPN BUҰڮେֶ ࣾձՊֶʹ͓͚Δใٕज़ͱίϯςϯπ࡞ᶙ χϑςΟגࣜձࣾدෟߨٛ
ఏڙ ςΩετ
ఏڙ גࣜձࣾ ສ༿
Δ͜ͱ ߨࢣհ ߨٛʹ͍ͭͯ ධՁํ๏ 3VCZͬͯԿʁ 3VCZͰԿ͕Ͱ͖Δͷ͔ 3VCZʹ·ͭΘΔ͓ લʙɹޙʙ
ࣗݾհ
ޒेཛྷ໌ UXJUUFSJHBJHB IUUQTHJUIVCDPNJHBJHB IUUQXXXGBDFCPPLDPNLVOJBLJJHBSBTIJ גࣜձࣾ ສ༿3BJMTJ1IPOF։ൃ
࢙ࣗ
܈അߴઐిؾֶՊଔ ւಓେֶେֶӃྔࢠཧֶઐ߈म࢜՝ఔଔۀ ࡳຈͰब৬4&ϓϩάϥϚʹͳΔ ɹ4&ɺϓϩάϥϚ ɹձࣾͷཪݪੜྛɺΈΜͳͰି͠ԂΛआΓͯۀ ౦ژͰస৬ ɹίϯγϡʔϚػثϝʔΧʔ ɹϏσΦΧϝϥؔ࿈ιϑτΣΞ։ൃ స৬ͯ͠ݱ৬
8FCΞϓϦ J1IPOFΞϓϦ ࡶࢽدߘ
ߨٛʹ͍ͭͯ ධՁํ๏
௨ίϚ Նֶظɾౙֶظ ༵࣌ݶ 3VCZ͓Αͼ3VCZPO3BJMTΛͬͨجૅతͳϓϩάϥϜ ͕ॻ͚ΔΑ͏ʹͳΔ͜ͱΛඪͱ͠·͢ɻ ߨٛܗࣜͰͷઆ໌ͱϓϩάϥϛϯά࣮श࡞ۀΛ௨࣮ͯ͡ࡍʹ ϓϩάϥϜΛॻ͖ͳ͕ΒतۀΛਐΊ·͢ɻ ࣮शϖΞϓϩάϥϛϯάͰਐΊΔ༧ఆͰ͢ɻ 3VCZͷόʔδϣϯݪଇɺ࠷৽ͷΛ͍·͢ɻ ߨٛதωοτϫʔΫɺGBDFCPPLUXJUUFSͳͲͬͯ
ߏΘͳ͍Ͱ͢ɻ
Նֶظ ୈճʙୈճ 3VCZ ୈճʙୈճ 3VCZPO3BJMT ౙֶظ ୈճʙୈճ 3VCZPO3BJMT ߨٛ༧ఆ
ධՁํ๏ ԋश՝Λఏग़͍͖ͯͨͩ͠ධՁΛߦ͍·͢ɻ ·ͨɺतۀͷߩݙධՁͷରͱ͠·͢ɻ ग़੮͕तۀճͷͷʹຬͨͳ͍߹ʮ'ʯͱ͠·͢ɻ
ڭՊॻɿͨͷ͍͠3VCZ IUUQXXXBNB[PODPKQEQ ͓ങ͍ٻΊ େֶੜڠ·ͨ δϡϯΫಊାళͰ
ࢀߟॻʢ͓ΈͰʣ IUUQXXXBNB[PODPKQEQ
จࣈྻͷҰ෦Λஔ͢Δ ˣ3VCZͷίʔυ ϓϩάϥϜ Ͱ͜͏ॻ͘ Q͍͍͍͋͋͋TVC ͍͋ Ѫ Ѫ͍͍͋͋ Q͍͍͍͋͋͋HTVC ͍͋
Ѫ ѪѪѪ 3VCZϨγϐϒοΫ
จࣈྻΛ࿈݁͢Δ จࣈྻͷҰ෦Λஔ͢Δ จࣈྻͷઌ಄ɾඌ͔ΒۭനΛऔΓআ͘ จࣈྻ͕ਖ਼نදݱͱͯ͠ਖ਼͍͔͠ௐΔ σΟϨΫτϦͱϑΝΠϧͷҰཡΛऔಘ͢Δ ΧϨϯτσΟϨΫτϦΛมߋ͢Δ ϑΝΠϧΛίϐʔ͢Δ ݱࡏͷ࣌Λऔಘ͢Δ 3VCZ(FNTͰϥΠϒϥϦΛΠϯετʔϧ͢Δ 3VCZεΫϦϓτΛίϚϯυʹ͢Δ
3VCZϨγϐϒοΫ࣍ ൈਮ IUUQXXXOPUXPSLPSHSVCZSFDJQFCPPLDPOUFOUTEFUBJMIUNM
Ξϯέʔτɿ ڈͷ3VCZߨٛʹग़͍ͯͨํʁ Έͳ͞Μͷڥ 8JOEPXT .BD -JOVY ͦͷଞ 3VCZฉ͍ͨ͜ͱ͋Δʁ 3VCZ͍ͬͨ͜͡ͱ͋Δʁ 3BJMT͍ͬͨ͜͡ͱ͋Δʁ
HJUIVCͬͯͬͨ͜ͱ͋Γ·͔͢ʁ
σʔλղੳ ɹ8FC্ͷσʔλऩू ɹɹ"NB[POͰਓؾͷ ɹɹΛఆظతʹௐΔ ɹେྔͷσʔλղੳ ɹɹXJLJQFEJBΞΫηεղੳ ɹɹ૬σʔλͷղੳͱ༧ 3VCZΛͬͯ Ͱ͖Δ͜ͱ
3VCZΛͬͯͰ͖Δ͜ͱ
8FCΞϓϦέʔγϣϯͷ࡞ GBDFCPPLΞϓϦͷ࡞ 3VCZΛͬͯͰ͖Δ͜ͱ
3VCZͷجૅ͕ʹ͖ͭɺ؆୯ͳϓϩάϥϜΛॻ͚Δ ɹXJLJQFEJBΞΫηεղੳ࣮श 3VCZPO3BJMTͷجૅ͕ʹ͖ͭɺ؆୯ͳΞϓϦΛ࡞ΕΔ 3VCZʹؔ͢Δෆ໌͕͋ͬͨͱ͖ʹௐΒΕΔ ͜ͷߨٛΛड͚Δͱ ͜Ε͕Ͱ͖ΔΑ͏ʹͳΔ ༧ఆ
ʮ͔̌ΒͰ͘Β͍ษڧ͢Εɺʢӳޠྗ͕ͳͯ͘ʣ ӳޠݍͰͦΕͳΓʹ͍͚ͬͯΔ͘Β͍ͷ࣮ྗ͕͖ͭɺ͔ͭ ٻਓඇৗʹ๛ͳ͜ͱʯ ʮੈքதʹΓ߹͍͕Ͱ͖Δʯ ʮϓϩάϥϛϯά͕Ͱ͖Δͱब৬Ͱ͖Δʯ ʮඒਓঁࢠେੜϞσϧͱϖΞϓϩͰ͖Δʢ͔͠Εͳ͍ʣʯ ʮ͋ͷΞΠυϧͱग़ձ͑Δʯ ʮঁࢠେੜΞΠυϧͱʢུʣʯ 3VCZ͕Ͱ͖Δͱ ͜Μͳ͍͍͜ͱ͕͋Δ
3VCZʹ͍ͭͯ
3VCZʹ͍ͭͯ
·ͭͱΏ͖ͻΖ NBU[ ͞Μ࡞ͷϓϩάϥϛϯάݴޠ 3VCZͷੜ݄ ࠃ࢈ϓϩάϥϛϯάݴޠ ։ൃऀຊਓ͕ଟ͍ ʹެ։͞Εͨ8FCΞϓϦϑϨʔϜϫʔΫͷ 3VCZPO3BJMTʹΑΓੈքతʹීٴ ϢʔβʔੈքதͰສਓΛ͑ΔͱݴΘΕ͍ͯΔ NBU[͞Μ͕ॅΜͰ͍ΔদߐͰ
࣏ࣗମΛ্͛ͯ3VCZΛਪ͍ͯ͠Δ ϓϩάϥϛϯάݴޠ3VCZ
None
ίϯϐϡʔλΛಈ͔ͨ͢Ίͷݴޠ ɹ"NB[POɺσδΧϝɺܞଳɺਬ൧ثɺɺɺ ɹΈΜͳϓϩάϥϛϯάݴޠͰಈ͍͍ͯΔ ͍ΖΜͳݴޠ͕͋Δ ɹಛ͕ҧ͏ͷͰదࡐదॴͰ͍͚Δ ɹɹྫ͑ॲཧ͕͍ͱ͔ɺ ɹɹ͍҆ڥͰಈ͘ͱ͔ɺ ɹɹ͍ΖΜͳڥͰಈ͘ͱ͔ Ͱɺ3VCZͷಛʁ ϓϩάϥϛϯάݴޠͬͯʁ
3VCZػցͰͳ͘ ਓؒʹ࠷దԽ͞Ε͍ͯΔ 3VCZͷಛ
3VCZΛΩϝΔͱؾ͍͍࣋ͪ CZNBU[
࡞Γ͍ͨਓ͕ࣗΛͤʹ͢ΔͨΊʹ࡞Γɺ͍͍ͨਓ ʹͬͯΒ͏͜ͱͰɺ΄͔ͷਓΛͤʹ͢Δɻϓϩά ϥϚ͕ޮతʹࣄ͕Ͱ͖ΔΑ͏ʹ͢Δɻؾ࣋ͪΑ͘ ࣄ͕Ͱ͖ΔΑ͏ʹ͢Δɻ3VCZʹɺͦͷΑ͏ͳ͍͕ ࠐΊΒΕ͍ͯ·͢ɻ 3VCZͷັྗ
3VCZΛͬͨ։ൃɺ ΤϯδχΞͷཱΛม͑ͨͱݴ͑·͢ɻ લ͘Β͍ɺ ϓϩάϥϜΛ࡞Δࣄ ւ֎Ͱ࡞ΔʢΦϑγϣΞ։ൃͱݴ͍·͢ʣͷ͕ ओྲྀʹͳΔͱݴΘΕ͍ͯ·ͨ͠ɻ ւ֎ͷํ͕࿑ಇྗ͕͍͔҆ΒͰ͢ɻ ܦࡁ໘͔Βͷߟ
+BWBͰΦϑγϣΞ։ൃ͢Δͱ͍͏͜ͱɺগͳ͔Βͣ࣍ͷΑ͏ͳߟ͑ํͰΓ ཱ͍ͬͯ·ͨ͠ɻ ɾਓؒ෦Ͱ͋Δɻ ɾਓؒସ͑ͷޮ͘෦Ͱ͋Δ͔Βɺ୯Ձ͍҆΄͏͕Α͍ɻ͔ͩΒ୯Ձͷ͍҆ࠃ Ͱ͢Δͷ͕Α͍ɻ ɾਓؒΛସ͑ͷޮ͘෦ʹ͢ΔͨΊʹɺҰਓҰਓͷ։ൃ༰Λ͋Β͔͡Ίݫີʹ ఆΊͯ࡞Γɺ͋ͱͰͦΕΛूΊͯΈ্͛Δɻ ɾ෦ͷ࣭Λ҆ఆͤ͞ΔͨΊʹɺؒҧ͍͕͓͜Γʹ͍͘ݴޠͰɺ༧ఆͲ͓Γʹ͠ ͔ͭ͘Εͳ͍Α͏ʹΨʔυΛݻΊͯ࡞ΒͤΔͷ͕Α͍ɻ ɾࣄʹָ͍͠ͱָ͔͘͠ͳ͍ͱ͍ͬͨ֓೦Λ࣋ͪࠐΉ͖Ͱͳ͍ɻ
ΦϑγϣΞ։ൃͷߟ͑ํ
3VCZΛͬͨ։ൃ ɾ։ൃऀͷੜ࢈ੑਓʹΑͬͯඇৗʹҧ͏͕ɺڅྉͦ ΕΑΓҧΘͳ͍ɻ ɾͦͷͨΊɺͳΔ͘༏लͳ։ൃऀʹࣄΛͤ͞Δͷ͕ ܦࡁతͰ͋Δɻ ɾඞཁͳͱ͖ʹඞཁͳ͜ͱ͚ͩΛܾΊΔΑ͏ʹ͠ɺมߋ Λड͚ೖΕΔɻ ɾੜ࢈ੑΛߴΊΔʹ੍ݶΑΓࣗ༝͕༗ޮɻ ɾࣄʢϓϩάϥϛϯάʣָ͕͍͜͠ͱ͕ਓੜʹͱͬͯ ॏཁͰ͋Δɻ
3VCZͰͷ։ൃͷߟ͑ํ
8FCΞϓϦϑϨʔϜϫʔΫ 8FCΞϓϦΛ࡞ΔͨΊͷڞ௨෦Λ·ͱΊͨͷ ੈքͰ࠷༗໊ͳ8FCΞϓϦϑϨʔϜϫʔΫͷͭ γϦίϯόϨʔͷελʔτΞοϓاۀͰΑ͘࠾༻͞ΕΔ ຊͰ࠾༻ࣄྫ͕૿͍͑ͯΔ ৄ͘͜͠ͷߨٛͷճ͘Β͍͔Βઆ໌͠·͢ɻ 3VCZPO3BJMT
3VCZ͕͔ͭΘΕ͍ͯΔॴ 3VCZPO3BJMT Ͱ࡞ΒΕͨαΠτ
౦ژΨε
UXJUUFS
$00,1"%
৯ϩά
ͱ͜ΖͰ
3VCZ ͕ͬΆΓ Ք͛Δͷʁ
͑ :&4
%BWJE)FJOFNFJFS)BOTTPO%)) 3VCZPO3BJMTͷ࡞ऀ
None
͍͘Βͩͱࢥ͍·͢ʁ
΄΅ಉεϖοΫϞσϧ͕ສϢʔϩ ʢԯສԁʣ
ʮγϦίϯόϨʔͰ 3BJMTΤϯδχΞͳΒ ऩ,ʙ , , ສԁ Ք͛Δʯ 3BJMT%FW$PO!NBTVJESJWF IUUQUPHFUUFSDPNMJ
ຊʁ ຊۭલͷ3VCZΤϯδχΞෆ ιʔγϟϧήʔϜͷେϒʔϜ ଞͷҊ݅ΛΔΤϯδχΞ͕গͳ͍ ݱࡏͱͯܠؾ͕ྑ͍ঢ়ଶ
3VCZ͕ ࡞ΒΕΔॴ
3VCZNBU[͞ΜΛத৺ʹɺ ੈքதͷ։ൃऀ͕ू·ΔίϛϡχςΟͰ࡞͍ͬͯ·͢ ιʔείʔυ͕ެ։͞Ε͍ͯ·͢ ʢΦʔϓϯιʔεʣ 3VCZಛఆͷاۀ͕࡞͍ͬͯΔͷͰ͋Γ·ͤΜ ແྉͰ͏͜ͱ͕Ͱ͖·͢ ։ൃ͢Δࣗ༝ɺ͠ͳ͍ࣗ༝ 3VCZΈΜͳ͕࡞Δͷ
3VCZΛ͏্Ͱཉ͍͠ػೳ͕͋ͬͨΒ ʮ࡞ͬͯʯͱ͓ئ͍ͯ͠ɺ ࡞ͬͯΒ͑ͳ͍͜ͱଟ͍Ͱ͢ɻ ͳ͚ΕࣗͰ࡞ΔจԽͰ͢ɻ ࡞Δଆʹ·ΘΓ·͠ΐ͏ ɾෆ۩߹Λใࠂ͢Δ ɾෆ۩߹ͷύονʢमਖ਼ίʔυʣΛૹΔ ɾࣗͰ࡞ͬͯެ։͢Δ 3VCZΛ͏্Ͱͷେͳ৺ҙؾ
3VCZίϛϡχςΟ 3VCZΛ࡞͍ͬͯΔਓͨͪ 3VCZΛ͍ͬͯΔਓͨͪ 3VCZΛ͖ͳਓͨͪ
ੈքதͰେখ͞·͟·ͳίϛϡχςΟ͕ӡӦ͞Ε͍ͯΔ େ͖ͳͷ ɹ3VCZ։ൃίϛϡχςΟ ɹ3BJMT։ൃίϛϡχςΟ খ͞ͳͷ ɹҬͰू·Δ͜ͱ͕ଟ͍ ɹ"TBLVTBSC ɹ5PLZVSC 3VCZίϛϡχςΟ
˒3VCZձٞελϯσΟϯάΦ ϕʔγϣϯࣸਅ 3VCZ,BJHJ
3VCZ$POG 64"
"TBLVTBSC
5PLZVSC
[ 5PLZVSC
ੈքͷ3VCZ ίϛϡχςΟ
3VCZ$POGߦ͖ͬͯͨ
%BWF5IPNBT %)) .BU[͕جௐߨԋ ϗςϧ։࠵ɺன͝Μɺ͓͖ͭ ϦΫϧʔτ׆ಈ͕Μ ֎ࠃਓͱͨ͘͞ΜͤΔ ຊਓͱͨ͘͞ΜͤΔ 3VCZ$POG
.BU[جௐߨԋऴྃޙ جௐߨԋ༰༁IUUQCMPHFWFSZMFBGDPNSVCZDPOGNBU[
ηογϣϯ
ϦΫϧʔτ׆ಈ͕Μ
͓ͭ
εϙϯαʔاۀاը࠙ձ
εϙϯαʔاۀاը࠙ձ
Ϛϥιϯେձ
Ϛϥιϯେձ
NBU[෦Ͱѱͩ͘Έத
؍ޫָ͍͠
None
None
None
None
None
None
None
3VCZΛ͏ਓ ͳΜ͔͍͍ਓ͕ଟ͍ ʢࣾௐʣ
matz is nice, so we are nice. NBU[͕͍͍͔ͭͩΒɺ զʑ͍͍ͭͳΜͩ
ίϛϡχςΟʹ͍Δਓಉ྅ͷΑ͏ͳײ֮ ͱʹ3VCZͦͷपลπʔϧΛ։ൃ͢Δؒ Ո༑ਓΛେʹ͢Δਓ͕ଟ͍ લ͖ͳਓ͕ଟ͍ ͳΜ͔ډ৺͕ྑ͍ 3VCZίϛϡχςΟͷࢲͷײ
͓͞Β͍
ߨٛʹ͍ͭͯ ධՁํ๏
௨ίϚ Նֶظɾౙֶظ ༵࣌ݶ 3VCZ͓Αͼ3VCZPO3BJMTΛͬͨجૅతͳϓϩάϥϜ ͕ॻ͚ΔΑ͏ʹͳΔ͜ͱΛඪͱ͠·͢ɻ ߨٛܗࣜͰͷઆ໌ͱϓϩάϥϛϯά࣮श࡞ۀΛ௨࣮ͯ͡ࡍʹ ϓϩάϥϜΛॻ͖ͳ͕ΒतۀΛਐΊ·͢ɻ ࣮शϖΞϓϩάϥϛϯάͰਐΊΔ༧ఆͰ͢ɻ 3VCZͷόʔδϣϯݪଇɺ࠷৽ͷΛ͍·͢ɻ ߨٛதωοτϫʔΫɺGBDFCPPLUXJUUFSͳͲͬͯ
ߏΘͳ͍Ͱ͢ɻ
Նֶظ ୈճʙୈճ 3VCZ ୈճʙୈճ 3VCZPO3BJMT ౙֶظ ୈճʙୈճ 3VCZPO3BJMT ߨٛ༧ఆ
ධՁํ๏ ԋश՝Λఏग़͍͖ͯͨͩ͠ධՁΛߦ͍·͢ɻ ·ͨɺतۀͷߩݙධՁͷରͱ͠·͢ɻ ग़੮͕तۀճͷͷʹຬͨͳ͍߹ʮ'ʯͱ͠·͢ɻ
ڭՊॻɿͨͷ͍͠3VCZ IUUQXXXBNB[PODPKQEQ ͓ങ͍ٻΊ େֶੜڠ·ͨ δϡϯΫಊାళͰ
σʔλղੳ ɹ8FC্ͷσʔλऩू ɹɹ"NB[POͰਓؾͷ ɹɹΛఆظతʹௐΔ ɹେྔͷσʔλղੳ ɹɹXJLJQFEJBΞΫηεղੳ ɹɹ૬σʔλͷղੳͱ༧ 3VCZΛͬͯ Ͱ͖Δ͜ͱ
3VCZΛͬͯͰ͖Δ͜ͱ
8FCΞϓϦέʔγϣϯͷ࡞ GBDFCPPLΞϓϦͷ࡞ 3VCZΛͬͯͰ͖Δ͜ͱ
3VCZͷجૅ͕ʹ͖ͭɺ؆୯ͳϓϩάϥϜΛॻ͚Δ ɹXJLJQFEJBΞΫηεղੳ࣮श 3VCZPO3BJMTͷجૅ͕ʹ͖ͭɺ؆୯ͳΞϓϦΛ࡞ΕΔ 3VCZʹؔ͢Δෆ໌͕͋ͬͨͱ͖ʹௐΒΕΔ ͜ͷߨٛΛड͚Δͱ ͜Ε͕Ͱ͖ΔΑ͏ʹͳΔ ༧ఆ
2VFTUJPOT