Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
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
roppongirb_20250911
igaiga
1
540
igaiga Ruby Association Activity Report 2025 LT
igaiga
1
100
KaigiOnRails2024
igaiga
11
20k
RuboSensei
igaiga
0
310
Shibuya.rb-2023-04-27-igaiga
igaiga
1
550
Ginza Rails27 igaiga
igaiga
9
14k
tork09igaiga
igaiga
2
370
Road to white mages
igaiga
1
730
Road to white mages
igaiga
8
4.1k
Other Decks in Technology
See All in Technology
[JAWS-UG 横浜支部 #91]DevOps Agent vs CloudWatch Investigations -比較と実践-
sh_fk2
1
250
「Managed Instances」と「durable functions」で広がるAWS Lambdaのユースケース
lamaglama39
0
290
Lessons from Migrating to OpenSearch: Shard Design, Log Ingestion, and UI Decisions
sansantech
PRO
1
110
エンジニアリングマネージャー はじめての目標設定と評価
halkt
0
270
Edge AI Performance on Zephyr Pico vs. Pico 2
iotengineer22
0
120
Challenging Hardware Contests with Zephyr and Lessons Learned
iotengineer22
0
170
Playwright x GitHub Actionsで実現する「レビューしやすい」E2Eテストレポート
kinosuke01
0
550
因果AIへの招待
sshimizu2006
0
940
第4回 「メタデータ通り」 リアル開催
datayokocho
0
120
世界最速級 memcached 互換サーバー作った
yasukata
0
330
Haskell を武器にして挑む競技プログラミング ─ 操作的思考から意味モデル思考へ
naoya
6
1.4k
regrowth_tokyo_2025_securityagent
hiashisan
0
210
Featured
See All Featured
How STYLIGHT went responsive
nonsquared
100
6k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
132
19k
Music & Morning Musume
bryan
46
7k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
10
720
The Invisible Side of Design
smashingmag
302
51k
A designer walks into a library…
pauljervisheath
210
24k
How to Ace a Technical Interview
jacobian
280
24k
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
390
A better future with KSS
kneath
240
18k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
48
9.8k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
359
30k
The Cost Of JavaScript in 2023
addyosmani
55
9.3k
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