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を説明するのは難しい(仮) / ruby is difficult
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
sugamasao
June 29, 2019
Technology
5
9.6k
Rubyを説明するのは難しい(仮) / ruby is difficult
http://regional.rubykaigi.org/tochigi08/
とちぎRuby会議08での資料です
sugamasao
June 29, 2019
Tweet
Share
More Decks by sugamasao
See All by sugamasao
マルチプロダクト環境におけるSREの役割 / SRE NEXT 2025 lunch session
sugamasao
1
2k
EMConf JP 2025 懇親会LT / EMConf JP 2025 social gathering
sugamasao
2
790
マルチプロダクトな開発組織で 「開発生産性」に向き合うために試みたこと / Improving Multi-Product Dev Productivity
sugamasao
1
750
開発生産性、上から見るか 下から見るか / development productivity and cognitive science
sugamasao
12
12k
開発の安定性・スループットを定量的に見る #とは / Quantitative view of development
sugamasao
1
1.2k
SaaS.tech #1 / SmartHR
sugamasao
2
6.9k
Ruby history of my life
sugamasao
2
11k
Perfect Ruby on Rails v2
sugamasao
0
20k
Ruby on Rails 6.0 New Feature
sugamasao
1
12k
Other Decks in Technology
See All in Technology
【Λ(らむだ)】最近のアプデ情報 / RPALT20260318
lambda
0
100
OpenClaw を Amazon Lightsail で動かす理由
uechishingo
0
200
SLI/SLO 導入で 避けるべきこと3選
yagikota
0
110
Kiro Powers 入門
k_adachi_01
0
120
It’s “Time” to use Temporal
sajikix
3
220
コンテキスト・ハーネスエンジニアリングの現在
hirosatogamo
PRO
4
500
Claude Code Skills 勉強会 (DevelersIO向けに調整済み) / claude code skills for devio
masahirokawahara
1
22k
NewSQL_ ストレージ分離と分散合意を用いたスケーラブルアーキテクチャ
hacomono
PRO
4
400
バクラク最古参プロダクトで重ねた技術投資を振り返る
ypresto
0
180
脳内メモリ、思ったより揮発性だった
koutorino
0
380
VLAモデル構築のための AIロボット向け模倣学習キット
kmatsuiugo
0
260
実践 Datadog MCP Server
nulabinc
PRO
2
240
Featured
See All Featured
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
86
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
85
Done Done
chrislema
186
16k
Unsuck your backbone
ammeep
672
58k
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
1
2.4k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
Darren the Foodie - Storyboard
khoart
PRO
3
2.9k
4 Signs Your Business is Dying
shpigford
187
22k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.4k
Product Roadmaps are Hard
iamctodd
PRO
55
12k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.6k
Optimizing for Happiness
mojombo
378
71k
Transcript
RubyΛઆ໌͢Δͷ ͍͠ʢԾʣ ͱͪ͗Rubyձٞ08(2019/6/29)
[email protected]
RubyΛઆ໌͢Δͷ ͍͠ ͱͪ͗Rubyձٞ08(2019/6/29)
[email protected]
ʢϓϩάϥϜΛڭ͑Δ࣌ʹʣ
ͱ͜ΖͰͩΕʁ • HN sugamasao • PN ͕͢ΘΒ·͞ͷΓ • Rubyྺ 13͘Β͍(…!!)
• RailsͦΜͳʹಘҙͰͳ͍ • Rubyʹؔ͢ΔΛ͍͔ͭ͘✍͠·ͨ͠
ࣥචྺ 2013 ύʔϑΣΫτRuby(ڞஶ) 2014 WebΞϓϦΤϯδχΞཆಡຊ(ڞஶ) 2014 ύʔϑΣΫτRuby on Rails(ڞஶ) 2017
վఆ2൛ ύʔϑΣΫτRuby(ڞஶ) 2018 ͔ΜͨΜRuby(୯ஶ) 2019 ???
͔ΜͨΜRubyࣥචͷࡍʹ͠ ͍ͳʙͱࢥͬͨ෦ͱɺ࠷ऴత ʹͲ͏͍͏આ໌ʹͳ͔ͬͨΛղ આͯ͠ɺօ͞Μͷࠓޙͷࢀߟʹ ͳΔͱྑ͍ͳͱࢥ͍·͢ ͜͏͍͏આ໌Ͱ͏·͍ͬͨ͘Αʂͱ͍͏͓ Λ͓࣋ͪͷํ৭ʑڭ͍͑ͯͩ͘͞
͔ΜͨΜRuby ͱʁ
͔ΜͨΜRuby lຊॻɼʮ͘ɾਖ਼͘͠ɾ৽͘͠ʯΛ ίϯηϓτʹ3VCZͰϓϩάϥϛϯάΛ ͡ΊΔʹͨͬͯجຊతͳ͜ͱ͢ ֶͯशͰ͖Δ༰ͱͳ͍ͬͯ·͢ɻ ʢҎԼུʣz https://gihyo.jp/book/2018/978-4-7741- 9861-3 “͔ΜͨΜγϦʔζ”ͷRuby൛
͍ΘΏΔ ೖॻ
ࣥචςʔϚ • ଞͷݴޠͷ͕ࣝͳͯ͘Rubyͷجຊ͕Θ͔Δ • RubyͷϦϑΝϨϯεϚχϡΞϧΛಡΊΔΑ͏ʹͳΔ • ࣮ࡍʹΘΕΔίʔυ͕Rubyͷίʔυͱͯ͠ಡΊΔ ʢ͋Δ͍ௐΒΕΔʣΑ͏ʹͳΔ
ଞͷݴޠͷ͕ࣝͳͯ͘ Rubyͷجຊ͕Θ͔Δ
ଞͷݴޠͷ͕ࣝͳͯ͘Rubyͷجຊ͕Θ͔Δ ·͋ೖॻͳͷͰɾɾɾ hogeݴޠͷ֓೦RubyͰݴ͏ͱ͜͏ͩΑʂ Ͱͳ͘ɺϓϩάϥϛϯάͱͯ͠ͷجຊΛ͑ ΒΕΔΑ͏ʹ : https://magazine.rubyist.net/articles/0001/0001-Hotlinks.html
RubyͷϦϑΝϨϯεϚχϡΞϧ ΛಡΊΔΑ͏ʹͳΔ
RubyͷϦϑΝϨϯεϚχϡΞϧΛಡΊΔΑ͏ʹͳΔ ͜ͷҟৗʹͩ͜Θ͍ͬͯͯɺຊॻͰ ղઆ͢Δͱ͖ϦϑΝϨϯεϚχϡΞϧͷ ϦϯΫΛ͚͍ͭͯΔ ʢϦϑΝϨϯεϚχϡΞϧͷಡΈํ͔Βղઆ͕͋Δκʣ ʢΈࠐΈϥΠϒϥϦͱඪ४ఴϥΠϒϥϦͱ͔͍ܰॳݟࡴ͠ ͩ͠……ʣ : ࡞ͬͯΈ͍ͨͷ͕ࢥ͍͍ͭͯௐํ͕Θ͔Βͳ͍ͱͲ͏ʹͳΒ ͳ͍ͷͰɺ࠷ॏཁͳͩͱߟ͍͑ͯ·͢
࣮ࡍʹΘΕΔίʔυ͕ಡΊΔ
࣮ࡍʹΘΕΔίʔυ͕ಡΊΔ ૉͳղઆʹऴ࢝ͯ͠͠·͏ͱɺ%ه๏ͷΑ͏ͳ આ໌༏ઌͱ͍ͯ͠ʢ͋Ε͜Εͱઆ໌͢Δͱ͕ൃࢄ͠ ͪΌ͏ͷͰʣ͚Ͳ࣮ίʔυͰ;ͭ͏ʹग़ͯ͘ΔɺΈͨ ͍ͳͷͲ͏ʹ͔ͯ͠ղઆ͍ͯ͋͛ͨ͠ ຊΛಡΜͰ͍Δ࣌Ͱ͖ͪΜͱཧղͰ͖ͳͯ͘ ʮͬͯʯ͍ΕʮௐʯΒΕΔͣͳͷͰ
ͱ͜ΖͰ
ೖॻͱݴͬͯ ରಡऀϨϕϧʹΑͬͯ ΓޱҟͳΓ·͢
https://speakerdeck.com/igaiga/dive-into-code-rails-ruby-books?slide=10 @igaiga555͞ΜʹΑΔ࠷ۙͷॻ੶ͷྨ
͔ΜͨΜRuby ʮଞݴޠܦݧ͋Γʯ ͷதͰϏΪφʔ͚
……ͱ͍͏Ϩϕϧײʹ͍ͭͯ ղઆΛ࡞͍ͬͯͨͷͰ͕͢ɺ ΑΓత֬ͳจষʹग़ձͬͨͷ ͰҾ༻͠·͢Ͷ
Matz͞ΜʹΑΔΦεεϝ https://jp.quora.com/ Ruby%E8%A8%80%E8%AA%9E%E3%82%92%E5%AD%A6%E3%81%B3%E5%A7%8B%E3%82%81%E3%82%8 B%E3%81%AE%E6%99%82%E3%81%AB%E4%B8%80%E7%95%AA%E3%82%AA%E3%82%B9%E3%82%B9% E3%83%A1%E3%81%AE%E6%9B%B8%E7%B1%8D%E3%81%AF%E3%81%A9%E3%82%8C ͍͢͝త֬!!!
ʢಥʣ RubyΛଞͷਓʹ ڭ͑Δͷͬͯ ͘͠ͳ͍Ͱ͔͢ʁ
ϜζΧγΠφʔͱ ࢥͬͨ͜ͱ͕͋Δਓ ʢ͍͕ࡶ͗͢·͢Ͷʣ
ͳΔ΄Ͳʙ
ຊ
࣍ͷίʔυΛݟͯ ࡞ऀͷؾ࣋ͪΛ ߟ͑Α ※కΊΓͷϓϨογϟʔࣥච͕πϥ͍ͳͲৗ࣌ ൃಈ͍ͯ͠ΔͷͰɺ͜͜Ͱߟ͑ͳ͍ͷͱ͢Δ
Hello, world!ͷαϯϓϧίʔυΛ ղઆ͍ͨ͠ puts "Hello, world!"
࡞ऀͷߟ͑ hogeݴޠʹൺͯγϯϓϧʹॻ͚ΔΑʢͱݴ͍ ͍͕ͨΠϚυΩͦΕΛϝϦοτͱ͢Δ͔ʁʣ putsϝιουΛͬͯจࣈྻΛग़ྗ͢ΔΑ Kernelʹఆ͍ٛͯ͠Δϝιουͩؔ͠෩ϝ ιουͬͯݴͬͨํ͕ྑ͔ͬͨΓ͢Δͷ͔ͳ ͦͦϨγʔόͷͳ͍ϝιουӠʑͷઆ໌Α ͍͍ɺͦͦputsϝιουͬͯԿͩΑ w w
w w ࠓͷஈ֊Ͱͦ͜·Ͱݴ͏ඞཁͳ͍ɺৄࡉΛઆ໌ ͤͣʹ͑ͳ͍ͱͩ
ຊॻͷ͑ ͜͏ͳΔ P24
ຊॻΛॻ্͘Ͱ ߟ͍͑ͯͨॏཁ ͳϙΠϯτ✅
ղઆΛ͢Δ্Ͱ ՄೳͳݶΓ Ұͭͷ͜ͱΛઆ໌ ͍ͨ͠
͔͠͠ɺલఏࣝ ͷੵΈॏͶι ͷͳ͍γϯϓϧͳ આ໌Λ͢Δͷ ͱͯ·͍͠
ྫ͑
Rubyʹؔ͢Δઆ໌Λ؆୯ͳ ༰͔Βॱংཱͯઆ໌͢Δ ͷ͍͠
Rubyʹؔ͢Δઆ໌Λॱংཱͯߟ͑Δ • ΠϯτϩμΫγϣϯ • จࣈྻʹ͍ͭͯͷղઆ • ੍ޚߏจʹ͍ͭͯ • ྻʹ͍ͭͯ :
• ΠϯτϩμΫγϣϯ • จࣈྻʹ͍ͭͯͷղઆ • ੍ޚߏจʹ͍ͭͯ • ྻʹ͍ͭͯ : Rubyʹؔ͢Δઆ໌Λॱংཱͯߟ͑Δ
puts "Hello, world!" puts 1 + 1 puts "#{10 *
2}" ͜͜Βลฏ
puts "Hello, world!".upcase 3.times do |n| puts “=> #{n}” end
్ʹݫ͘͠ͳΔ
puts "Hello, world!".upcase 3.times do |n| puts “=> #{n}” end
్ʹݫ͘͠ͳΔ !? !? !? !?
• ϝιου • ʹΫϥεͷઆ໌͕ඞཁ • ϒϩοΫ • ϒϩοΫҾ ్ʹݫ͘͠ͳΔ
͜ΕΒͷػೳΛ จࣈྻͷ͍ͭͰʹ આ໌͢ΔΘ͚ʹ͍͔ͳ͍
ಥવ͜ΕΒͷઆ໌Λ࢝ΊͨΒ “ύϧεͷϑΝϧγͷ ϧγ͕ίΫʔϯͰύʔδ” Έ͍ͨʹͳΔ
ͰͲ͏͢Δ͔
……
……
None
ʢૂ͍ͱͯ͠ʣΦϒδΣΫτࢦʹ ͍ͭͯղઆ͢Δͱ͍͏ΑΓ ”ΦϒδΣΫτ””ϝιου”ͳͲͷ ֓೦͕͋Δ͜ͱΛ͍ͬͯͯ΄͍͠
ʰ͜ͷੈքʱͰͦʔ͍͏ͷ ͩͱʰཧղʱͯ͠Β͏
Rubyʹؔ͢Δઆ໌Λ؆୯ͳ ༰͔Βॱংཱͯઆ໌͢Δ ͷ͍͠ ऴΘΓ
ϓϩάϥϜతͳҙຯͰΫϥε ͷઆ໌͕͍͠
ࣗͰΫϥεΛఆٛ͢Δ·Ͱ ૉͳੈք ϩʔΧϧมΛ͍ɺΈࠐΈϥΠϒϥϦͱ ༡ΜͰΒ͍͚ͯ͠Δ
Ϋϥεͷఆٛํ๏ΛΔͱಥવ ੈք͕։͚͗͢Δ
• Πϯελϯεม • Ϋϥεม • ϩʔΧϧม ʢࠓ·ͰԿؾͳ͍ͬͯͨ͘มͷਖ਼ମʣ • self Ξοϓ࢝͠ΊΔมͨͪ
• ΠϯελϯεԽ • Πϯελϯε/Ϋϥεϝιου • ϝιουͷՄࢹੑ • ΞΫηοαϝιου • ܧঝ
• Etc Ϋϥεʹ·ͭΘΔػೳͨͪ
ͪΐͬͱઆ໌͢Δ͜ͱଟ͗͢ ͠ͳ͍͔Ͷʁ
Ͳ͏ͬͯઆ໌͢Δ͔ɺɺɺ
ɺɺɺ
ؤுͬͯઆ໌͢Δ͔͠ͳ͍
“ʮҰ൪ͷۙಓԕճΓͩͬͨʯ ʮԕճΓ͕ͦ͜Զͷ࠷ͷಓͩͬͨʯ” -δϟΠϩɾπΣϖϦ-
None
Ͳ͏ݟͯ͜ͷষ͚ͩେมͳϘ ϦϡʔϜͰ͢ɻຊʹ͋Γ͕ͱ ͏͍͟͝·ͨ͠
ϓϩάϥϜతͳҙຯͰΫϥεͷઆ ໌͕͍͠ ऴΘΓ
;ͭʔʹઆ໌͢ΔͱऄͬΆ͘ͳ Δ͚ͲͲ͏ͯ͠આ໌͍ͨ͠ ʢͷͰઆ໌ͨ͠ʣػೳ/Έ ͦͷଞ
จࣈίʔυ ࠓͷRubyσϑΥϧτΤϯίʔσΟϯά UTF-8ͷ࣌ͳͷͰ;ͭ͏ʹ͏ʹࠔΒͳ͍ ͔͠͠ɺCSV<->Excelͷѻ͍ૉʹ࡞ΒΕͨ Windows࢈ςΩετϑΝΠϧͳͲɺ༉அ͢Δͱ UTF-8Ҏ֎ͷͷʹग़ձ͏͜ͱ͋Δ
จࣈίʔυ
array.map(&:upcase)ͷΞϨ ϒϩοΫΛলུͯ͠&:methodΛ͢ʔͭ ਖ਼ɺೖॻͷϨϕϧײͱͯͪ͠ΌΜͱͨ͠ આ໌Λ͢Δʹ͍͠ʢ͍͜͠ʣ͚Ͳɺ ࣮ίʔυͰ;ͭ͏ʹΘΕΔͷͳͷͰ આ໌͠ͳ͍Θ͚ʹ͍͘·͍
array.map(&:upcase)ͷΞϨ
;ͭ͏ʹࠔͬͨ
γϯϘϧͷઆ໌ Ή͔ͣ͗͢͠Ο!!
จࣈྻΈ͍͚ͨͩͲจࣈྻ͡Ό ͳͯࣝ͘ผࢠʢࣝผࢠͱʣ తʹ͏ΜͩΑɺΈ͍ͨͷΛͳ Μͱͳ͘Θ͔ͬͨؾʹͳΔΑ͏ ͳઆ໌Λ͠ͳ͍͚ͯ͘ͳ͍ͩ ͱʁʁʁ
ΨνͰࠔ͍ͬͯΔͷͰࡓ͑ͨઆ໌ ͷํ͕͋Εڭ͍͑ͯͩ͘͞!!1
͓͠Ζ͔ͬͨΒ ྑ͍δϟϯʂͯ͠Ͷʂʢʁʁʁʣ ࠷ޙʹ ʮೖॻΛॻ͘ͷɺͲ͏ʹ͔ͳΔΖʯͱܰ͘ ߟ͍͑ͯͨΒࢮ͵΄ͲେมͰͨ͠ օ͞ΜղઆͰۤ࿑͍ͨͯ͠͠Δ͕ ͋Εͥͻڭ͍͑ͯͩ͘͞☺
ࢀߟจݙ • ͔ΜͨΜRuby • https://gihyo.jp/book/2018/978-4-7741-9861-3 • θϩ͔ΒΘ͔Δ Ruby ೖ •
https://gihyo.jp/book/2018/978-4-297-10123-7 • Ruby͓ΑͼRailsॻ੶ͷྨͱҰߟ • https://speakerdeck.com/igaiga/dive-into-code-rails-ruby-books • Rubyist Hotlinks ʲୈ 1 ճʳ ·ͭͱΏ͖ͻΖ͞Μ • https://magazine.rubyist.net/articles/0001/0001-Hotlinks.html • RubyϦϑΝϨϯεϚχϡΞϧ • https://docs.ruby-lang.org/ja/latest/doc/index.html
͕࣌ؒ༨ͬͨ༻ ॻ੶Λࣥච͢Δͱɺվϖʔδͷ߹Ͱ༨ന͕ଟ ͘ͳͬͯ͠·͏߹͕͋Γ·͢ ͜ͷΑ͏ͳ࣌ɺίϥϜͰຒΊͯ͘ΕʙͱݴΘΕ ΔͷͰίϥϜΛॻ͘ͷͰ͕͢ɺׂͱ͖উख͔ ָ͚͍ͯ͠Ͱ͢ ίϥϜͷதͰ͍͔͓ͭ͘ؾʹೖΓΛհ͠·͢
None
None
None
͍ͬͯ͏͔ϓϩάϥϛ ϯάࣗମ͕Ή͔͍ͣ͠