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 第2章 / Ruby Practice 02
Search
muttan
October 18, 2016
Programming
0
120
はじめてのRuby 第2章 / Ruby Practice 02
muttan
October 18, 2016
Tweet
Share
More Decks by muttan
See All by muttan
さわやか待ち時間LINE botを作った話 / Sawayaka LINE bot
bath_poo_
0
110
コンテナ開発入門 1回目/Introduction to Container Development 1
bath_poo_
0
160
ISUCONってなんだ / What is ISUCON
bath_poo_
0
350
Web技術の基本 8回目 / Introduction to Web technologies 8th class
bath_poo_
0
190
Web技術の基本 7回目 / Introduction to Web technologies 7th class
bath_poo_
0
160
Web技術の基本 6回目 / Introduction to Web technologies 6th class
bath_poo_
1
260
Web技術の基本 5回目 / Introduction to Web technologies 5th class
bath_poo_
0
140
Web技術の基本 4回目 / Introduction to Web technologies 4th class
bath_poo_
0
220
Web技術の基本 3回目 / Introduction to Web technologies 3rd class
bath_poo_
0
250
Other Decks in Programming
See All in Programming
PHP 8.4の新機能「プロパティフック」から学ぶオブジェクト指向設計とリスコフの置換原則
kentaroutakeda
1
280
複数アプリケーションを育てていくための共通化戦略
irof
10
4k
XP, Testing and ninja testing
m_seki
2
120
WindowInsetsだってテストしたい
ryunen344
1
190
アンドパッドの Go 勉強会「 gopher 会」とその内容の紹介
andpad
0
250
既存デザインを変更せずにタップ領域を広げる方法
tahia910
1
240
Spring gRPC で始める gRPC 入門 / Introduction to gRPC with Spring gRPC
mackey0225
2
520
Beyond Portability: Live Migration for Evolving WebAssembly Workloads
chikuwait
0
380
The Evolution of Enterprise Java with Jakarta EE 11 and Beyond
ivargrimstad
1
840
A comprehensive view of refactoring
marabesi
0
970
カクヨムAndroidアプリのリブート
numeroanddev
0
430
AIエージェントはこう育てる - GitHub Copilot Agentとチームの共進化サイクル
koboriakira
0
160
Featured
See All Featured
KATA
mclloyd
29
14k
Visualization
eitanlees
146
16k
Fireside Chat
paigeccino
37
3.5k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
233
17k
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
Building Better People: How to give real-time feedback that sticks.
wjessup
367
19k
Art, The Web, and Tiny UX
lynnandtonic
299
21k
How STYLIGHT went responsive
nonsquared
100
5.6k
The Art of Programming - Codeland 2020
erikaheidi
54
13k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
48
5.4k
Documentation Writing (for coders)
carmenintech
71
4.9k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
32
2.3k
Transcript
ͨͷ͍͠3VCZୈষ
ศརͳΦϒδΣΫτ w จࣈྻͷΑ͏ͳΦϒδΣΫτΛ࡞ͨ͠ ʢୈষʣ͕ɺ࣮ࡍʹ͏গ͠ෳࡶͳΦϒδΣ ΫτΛѻ͏ඞཁ͕ग़ͯ͘Δ w ࠓճͷষͰɺ༷ʑͳσʔλߏʹֶ͍ͭͯͿ
ྻ "SSBZ
ྻ "SSBZ w ෳͷΦϒδΣΫτΛॱং͖Ͱ֨ೲ͢Δσʔ λߏ w جຊతʹ$ͱΞΫηεํ๏ಉ͡
ྻΛ࡞Ζ͏ w ྻ<>ͰશମΛғΈɺΧϯϚ۠ΓͰཁૉΛฒ Δ͜ͱͰ࡞Ͱ͖Δ w ۭͷྻ࡞͢Δ͜ͱ͕Ͱ͖Δ OBNFT<༑ ٢ా ॏ lञҪz>
OBNFT<>
ΦϒδΣΫτͷऔΓग़͠ ΦϒδΣΫτͷೖ w ྻͷΞΫηε$ͱಉ༷ʹߦ͏ w ఴࣈ͔Β࢝·Δ͜ͱʹҙ͢Δ w ೖΛ͏͜ͱͰߦ͏͜ͱ͕Ͱ͖Δ OBNFT<༑ ٢ా
ॏ lञҪz> QVUTOBNFT<>༑͕ग़ྗ͞ΕΔ QVUTOBNFT<>٢ా͕ग़ྗ͞ΕΔ 1ྫΛ࣮ߦ OBNFT<>lౡాz
ྻͷத w จࣈྻ͚ͩͰͳ͘ ࣈͷྻͪΖΜ࡞Δ͜ ͱՄೳ w ෳͷΦϒδΣΫτΛࠞͥͯྻʹ֨ೲ͢Δ͜ ͱ͕Ͱ͖Δ w ࣌ࠁϑΝΠϧΛද͢ΦϒδΣΫτ֨ೲՄೳ
NJYFE< l͠z l·z lz lΜz>
ྻͷαΠζ w ྻͷαΠζΛऔಘ͢Δʹɺ0CKTJ[Fͱͯ͠औ ಘ͢Δ͜ͱ͕Ͱ͖Δ JSC NBJO NJYFE< ͠ ·
Μ> < ͠ · Μ> JSC NBJO QNJYFETJ[F
ྻͱ܁Γฦ͠ w FBDIϝιουͱ͍͏ΠςϨʔλ͕༻ҙ͞Ε͍ͯ Δ w ྻͷཁૉͯ͢ʹରͯ͠ΞΫηε͍ͨ͠ͱ͖ ʹศརͳํ๏ "SZFBDIEPcWBSc FYQSFTTJPO FOE
ྻͱ܁Γฦ͠ w EPʜFOEͰғ·Ε͍ͯΔ෦ ΛϒϩοΫͱ͍͏ w cWBScͷ෦ʹɺऔΓग़ͨ͠ ྻͷཁૉ͕֨ೲ͞Ε͍ͯΔ w FBDIϝιουΦϒδΣΫτ ͷཁૉͭͭऔΓग़͠ɺ͢
ͯऔΓग़ͨ͠Βऴྃ͢Δ w ΄͔ʹ͋Δ͚ͲͦΕষ Ͱ "SZFBDIEPcWBSc FYQSFTTJPO FOE
ྻͱ܁Γฦ͠ʢ࣮ߦྫʣ OBNFT<༑ ٢ా ॏ ञҪ> OBNFTFBDIEPcOBNFc QVUTlOBNF\OBNF^\OBNF^มల։ FOE ίʔυྫ OBNF༑
OBNF٢ా OBNFॏ OBNFञҪ ࣮ߦ݁Ռ
ϋογϡ )BTI
ϋογϡ w ྻΦϒδΣΫτɺΦϒδΣΫτͷΞΫη εʹࣈΛΩʔͱͯ͠ΞΫηε͢Δ BSSBZ<> w ϋογϡΩʔͱͯ͠ɺࣈ͚ͩͰͳ͘จࣈྻ γϯϘϧʢ˞ޙड़ʣΛར༻͢Δ͜ͱ͕Ͱ͖Δ ྫ
PCK<lTIJNBEBz>ͱ͔TDPSF<lTIJNBEBz>ल
γϯϘϧͱ w ϝιουͳͲͷ໊લΛࣝผ͢ΔͨΊͷϥϕϧΛ ΦϒδΣΫτʹͨ͠ͷʢE ?@?P ʁʁʁʁʁʁʣ w γϯϘϧઌ಄ʹʢίϩϯʣΛ͚ͯද͢ w ͳʹΛݴ͍ͬͯΔ͔Α͘Θ͔Βͳ͍ͷͰ࣮ݧ
for i in 1..10 puts'hoge'.object_id end 83889020 83888970 83888940 83888910
83888880 83888850 83888820 83888790 83888760 83888730 ίʔυ ग़ྗ ˢશ෦ҧ͏*%
for i in 1..10 puts :hoge.object_id end 212008 212008 212008
212008 212008 212008 212008 212008 212008 212008 ίʔυ ग़ྗ ˢશ෦ಉ͡*%
จࣈྻͱϋογϡͷҧ͍ w จࣈྻੜ͢ΔͨͼʹҟͳΔΦϒδΣΫτΛੜ͍ͯ͠Δ ʢPCKFDU@JE͕ຖճҟͳ͍ͬͯͨʣ w ϋογϡΦϒδΣΫτΛੜ͢Δͱɺಉ໊͡લͰ͋Δ ݶΓಉ͡ΦϒδΣΫτΛࢀর͢Δ ʢจࣈྻͷΑ͏ʹຖੜ͢Δख͕ؒͳ͍ͷͰޮ͕ྑ͘ߴ Ͱ͋Δʣ w
ϋογϡͷΩʔʹ࠷ద w ৄͪ͘͜͠Β IUUQTEPDTSVCZMBOHPSHKBMBUFTUDMBTT4ZNCPMIUNM
ϋογϡΛ࡞Δ w ϋογϡͷ࡞ํ๏ྻͱࣅ͍ͯΔ͕ <>Ͱ ͳ͘\^ͰσʔλΛғΉඞཁ͕͋Δ w γϯϘϧʹؔͯ͠ҎԼͷΑ͏ʹॻ͘͜ͱՄೳ TPOH\UJUMFlγϚμϚαγz BSUJTUlUBJLPz^ QFSTPO\l໊લzlౡాz
lԾ໊zl·͞͠z^ NBSL\l+BDLz l2VFFOz l,JOHz^ TPOH\UJUMFlγϚμϚαγz BSUJTUlUBJLPz^
ϋογϡͷૢ࡞ w ϋογϡʹ֨ೲ͞ΕͨΦϒδΣΫτͷΞΫη εɺྻͱಉ༷ʹߦ͏͜ͱ͕Ͱ͖Δ )BTIΦϒδΣΫτ<Ωʔ> )BTIΦϒδΣΫτ<Ωʔ>֨ೲ͍ͨ͠ΦϒδΣΫτ 1ྫΛ࣮ߦ
ϋογϡͷ܁Γฦ͠ w ϋογϡΦϒδΣΫτFBDIϝιουʢΠςϨʔ λʣΛར༻͢Δ͜ͱͰͯ͢ͷཁૉʹΞΫηε͢ Δ͜ͱ͕Ͱ͖Δ 1ྫΛ࣮ߦ HashObj.each do |key, value|
expression end
ਖ਼نදݱ 3FHFYQ
ਖ਼نදݱ w ਖ਼نදݱΛͬͯ࠷ߴͷϚονϯάੜ׆ΛૹΖ ͏ w ਖ਼نදݱΛ͏͜ͱͰɺಛఆͷจࣈύλʔϯΛ ؆୯ ʹهड़͢Δ͜ͱ͕Ͱ͖Δ w ৄͪ͘͜͠Β
IUUQTEPDTSVCZMBOHPSHKBMBUFTUEPD TQFDGSFHFYQIUNM
ύλʔϯͱϚονϯά w 3VCZͰɺQBUUFSOͱ͍͏ܗͰਖ਼نදݱΛه ड़͢Δ ྫ ਖ਼نදݱ Ϛον͢Δจࣈྻ 3VCZ 3VCZ K3VCZ
BCD3VCZIJK 3VCZJ SVCZ 36#: S6CZ 8<BFJPV>SE 8BSE 8FSE 8JSE 8PSE 8VSE <?BE> F G H I BEҎ֎ͷจࣈ
ύλʔϯͱϚονϯά w ύλʔϯϚονΛߦ͏ࡍ ͱॻ͘Ϛονͨ͠߹ͦͷҐஔ Ϛον͠ͳ ͍߹OJM͕ฦΔ ྫ ਖ਼نදݱdϚονϯά͍ͨ͠จࣈྻ
JSC NBJO 3VCZdK3VCZ JSC NBJO 3VCZdKUVCZ OJM JSC NBJO 3VCZJdlKSVCZେจࣈখจࣈΛ۠ผ͠ͳ͍
ͱ͜ΖͰOJMͬͯͳʹʁ
OJMͱ w ΦϒδΣΫτ͕ଘࡏ͠ͳ͍͜ͱΛࣔ͢ಛผͳ w ϝιου͕ҙຯͷ͋ΔΛฦ͞ͳ͍ͱ͖ʹฦ ͞ΕΔ w 3VCZͰ݅ذ͢ΔࡍʹɺGBMTFͱOJMͷΈِ ͱஅ͞ΕɺͦΕҎ֎ਅͱஅ͞ΕΔ ʢԿճ͔ޙʹ͜ͷ֓೦͕Ͱ͖ͯ·͢ʣ