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
440
マルチプロダクトな開発組織で 「開発生産性」に向き合うために試みたこと / Improving Multi-Product Dev Productivity
sugamasao
1
650
開発生産性、上から見るか 下から見るか / development productivity and cognitive science
sugamasao
12
8.9k
開発の安定性・スループットを定量的に見る #とは / Quantitative view of development
sugamasao
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
AIと開発者の共創: エージェント時代におけるAIフレンドリーなDevOpsの実践
bicstone
1
300
Recap of Next - Google Cloud で実践する クラウドネイティブ最前線 / The Frontlines of Cloud-Native with Insights from Google Cloud
aoto
PRO
1
100
CloudWatch 大好きなSAが語る CloudWatch キホンのキ
o11yfes2023
0
170
OpenSearchでレガシーな検索処理の大幅改善をやってやろう
dznbk
2
170
フロントエンドも盛り上げたい!フロントエンドCBとAmplifyの軌跡
mkdev10
2
270
より良い開発者体験を実現するために~開発初心者が感じた生成AIの可能性~
masakiokuda
0
150
3月のAWSアップデートを5分間でざっくりと!
kubomasataka
0
120
LiteXとオレオレCPUで作る自作SoC奮闘記
msyksphinz
0
590
AWS全冠芸人が見た世界 ~資格取得より大切なこと~
masakiokuda
5
5.9k
Porting PicoRuby to Another Microcontroller: ESP32
yuuu
3
400
Dynamic Reteaming And Self Organization
miholovesq
3
420
開発視点でAWS Signerを考えてみよう!! ~コード署名のその先へ~
masakiokuda
3
160
Featured
See All Featured
Docker and Python
trallard
44
3.3k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
5
520
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.4k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
233
17k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
30
2.3k
For a Future-Friendly Web
brad_frost
176
9.7k
The Cult of Friendly URLs
andyhume
78
6.3k
Product Roadmaps are Hard
iamctodd
PRO
52
11k
The Straight Up "How To Draw Better" Workshop
denniskardys
232
140k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
160
15k
KATA
mclloyd
29
14k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
26k
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
͍ͬͯ͏͔ϓϩάϥϛ ϯάࣗମ͕Ή͔͍ͣ͠