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.2k
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
開発生産性、上から見るか 下から見るか / development productivity and cognitive science
sugamasao
12
7.7k
開発の安定性・スループットを定量的に見る #とは / Quantitative view of development
sugamasao
1
740
SaaS.tech #1 / SmartHR
sugamasao
2
4.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
350
構成管理ツールを渡り歩いてItamaeに辿り着いた話/Itamae Meetup #1
sugamasao
1
1.2k
スペースの位置とか議論したくない
sugamasao
0
580
Other Decks in Technology
See All in Technology
大規模言語モデル (LLM)における低精度数値表現
pfn
PRO
3
820
生成AIと産業向けソフトウェアの自動生成 〜 ハノーバーメッセ2024より〜
kioto
2
420
TypeScript の抽象構文木を用いた、数百を超える API の大規模リファクタリング戦略
yanaemon
6
1.2k
Shinagile 2024
kawaguti
PRO
2
120
iThome2024 Wailing Wall of Enterprise Security
notsurprised
0
290
試作とデモンストレーション / Prototyping and Demonstrations
ks91
PRO
0
160
cgroup v2 で何が変わったのか / TechFeed Experts Night #28
tenforward
2
160
20240509 CloudWatch でいろいろなものを監視してみよう
masaruogura
1
120
SLOいつ決めましょう?
abnoumaru
3
360
拓展QA日常工作的邊界
line_developers_tw
PRO
0
550
OPENLOGI Company Profile
hr01
0
45k
PhpStorm超絶技巧40分集中講義 #phpconkagawa
yusuke
4
760
Featured
See All Featured
RailsConf 2023
tenderlove
9
580
Visualization
eitanlees
137
14k
Optimising Largest Contentful Paint
csswizardry
13
2.4k
Documentation Writing (for coders)
carmenintech
60
4k
Build your cross-platform service in a week with App Engine
jlugia
226
17k
GraphQLとの向き合い方2022年版
quramy
33
13k
Code Review Best Practice
trishagee
56
15k
How STYLIGHT went responsive
nonsquared
92
4.8k
The Language of Interfaces
destraynor
151
23k
The Cult of Friendly URLs
andyhume
74
5.7k
Gamification - CAS2011
davidbonilla
77
4.6k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
226
51k
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
͍ͬͯ͏͔ϓϩάϥϛ ϯάࣗମ͕Ή͔͍ͣ͠