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
sugamasao
June 29, 2019
Technology
5
9.5k
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
EMConf JP 2025 懇親会LT / EMConf JP 2025 social gathering
sugamasao
2
470
マルチプロダクトな開発組織で 「開発生産性」に向き合うために試みたこと / Improving Multi-Product Dev Productivity
sugamasao
1
660
開発生産性、上から見るか 下から見るか / development productivity and cognitive science
sugamasao
12
9k
開発の安定性・スループットを定量的に見る #とは / Quantitative view of development
sugamasao
1
1.1k
SaaS.tech #1 / SmartHR
sugamasao
2
6k
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
書籍執筆ツールRe:VIEWのご紹介 / yapc8oji
sugamasao
0
440
Other Decks in Technology
See All in Technology
Azure & DevSecOps
kkamegawa
2
180
Compose におけるパスワード自動入力とパスワード保存
tonionagauzzi
0
210
Gateway H2 モジュールで スマートホーム入門
minoruinachi
0
140
Why Platform Engineering? - マルチプロダクト・少人数 SRE の壁を越える挑戦 -
nulabinc
PRO
4
370
2025年8月から始まるAWS Lambda INITフェーズ課金/AWS Lambda INIT phase billing changes
quiver
1
940
MCPを理解する
yudai00
14
9.9k
Simplify! 10 ways to reduce complexity in software development
ufried
2
240
Datadog のトライアルを成功に導く技術 / Techniques for a successful Datadog trial
nulabinc
PRO
0
130
猫でもわかるS3 Tables【Apache Iceberg編】
kentapapa
2
180
Ninno LT
kawaguti
PRO
1
110
AIにおけるソフトウェアテスト_ver1.00
fumisuke
1
360
AWSを利用する上で知っておきたい名前解決の話
nagisa53
6
790
Featured
See All Featured
KATA
mclloyd
29
14k
Building a Modern Day E-commerce SEO Strategy
aleyda
40
7.2k
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.4k
VelocityConf: Rendering Performance Case Studies
addyosmani
329
24k
Facilitating Awesome Meetings
lara
54
6.3k
Thoughts on Productivity
jonyablonski
69
4.6k
Speed Design
sergeychernyshev
29
930
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
30
2.3k
Building an army of robots
kneath
305
45k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
251
21k
Embracing the Ebb and Flow
colly
85
4.7k
Making the Leap to Tech Lead
cromwellryan
133
9.3k
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
͍ͬͯ͏͔ϓϩάϥϛ ϯάࣗମ͕Ή͔͍ͣ͠