Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
object-oriented social coding scripting languag...
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Akira Matsuda
December 04, 2011
Programming
5.5k
23
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
object-oriented social coding scripting language Ruby
とちぎRuby会議04招待講演のスライド, 2011/12/3
http://regional.rubykaigi.org/tochigi04
Akira Matsuda
December 04, 2011
More Decks by Akira Matsuda
See All by Akira Matsuda
My daily life on Ruby
a_matsuda
3
570
Ruby x Terminal
a_matsuda
7
740
初心者のためのRubyKaigi入門/RubyKaigi Introduction
a_matsuda
16
8.3k
Hanamiを支える技術 2023 / Asakusa.rb Hanami 2023
a_matsuda
2
840
Rails 7.1をn倍速くした話
a_matsuda
11
14k
RubyKaigi 2022 After Talk
a_matsuda
0
560
Coming Soon…💎 / coming soon
a_matsuda
12
8.6k
Rails Performance Issues and Solutions
a_matsuda
9
40k
Extending Rails for Real World App Development
a_matsuda
9
8.2k
Other Decks in Programming
See All in Programming
XP祭りでしか伝わらないフリップネタ #xpjug
murabayashi
0
110
[GoCon2026] When Goroutines Are Not Enough: Runtime Locality in High-Throughput Go
takehaya
4
650
Snowflakeで業務アプリを作ろう。 Snowflakeのアプリ機能解説&実践ガイド
ayumu_yamaguchi
1
160
デプロイ直後のレイテンシスパイクを調べたら、 Railsの仕様にたどり着いた
nhsykym
0
110
AWS Step Functions 大規模並列の壁を越える / jaws-sonic-2026-niigata-step-functions
kasacchiful
PRO
0
400
AIエージェント時代のコードレビューを設計する
nogu66
6
2.6k
From 6 People Classroom Meetup to 100 People Regional Conference / FOSS4G Hiroshima 2026
furukawayasuto
0
120
Claude Codeを組織的に動かして月400PRを実現した話
happy_ryo
0
260
高専キャリア LT 発表内容
crysta1221
6
5.6k
AIの中の人になってみる
htkym
0
170
巨大モノリシックアプリ モダン化大作戦
ktcryomm
0
100
kubernetes コンポーネント開発入門 / 新卒N年目の勉強会&交流会!〜〇〇への誘い〜 #n_study
mazrean
0
180
Featured
See All Featured
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
1
6.2k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.9k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.5k
The agentic SEO stack - context over prompts
schlessera
0
910
The Invisible Side of Design
smashingmag
301
52k
The Art of Programming - Codeland 2020
erikaheidi
57
14k
Why Our Code Smells
bkeepers
PRO
340
58k
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
540
Statistics for Hackers
jakevdp
799
230k
A Modern Web Designer's Workflow
chriscoyier
698
190k
YesSQL, Process and Tooling at Scale
rocio
174
15k
Music & Morning Musume
bryan
47
7.4k
Transcript
ΦϒδΣΫτࢦ ιʔγϟϧίʔσΟϯά εΫϦϓτݴޠRuby a_matsuda
None
͍͖ͳΓࢲࣄͰڪॖ Ͱ͕͢ɺ
ઌ݄ࢠͲ͕ ࢈·Ε·ͨ͠ɻ
✴twitter: a_matsuda ✴github: amatsuda
ID
GitHub࠷ॳIDʹ Ξϯεί͕ ͑ͳ͔ͬͨ
real name: Akira Matsuda
໊લබࣈ;ͭ͏͢ ͗ͯIDͷ֬อ͕͍͠
kakutani ͱ͔͏Β·͍͠
ࢠڙͨͪ ;ͭ͏ͷ໊લʹͨ͠ ͷͰۤ࿑ͦ͠͏
ୈ1෦ ΦϒδΣΫτࢦ ιʔγϟϧίʔσΟϯά εΫϦϓτݴޠRuby
✴twitter: a_matsuda ✴github: amatsuda
✴twitter: a_matsuda ✴github: amatsuda
࣭1 GitHubͬͯԿʁ
࣭2 GitHubͷΞΧϯτΛ ·ͩ࣋ͬͯͳ͍ਓʁ
https://github.com/
࣭3 GitHubͰຖ͓ࣄͷ ίʔυॻ͍ͯΔਓʁ
ྺ࢙ͷ͓͞Β͍
Ruby
ʮΦϒδΣΫτࢦ εΫϦϓτݴޠʯ
http://www.ruby-lang.org/ja/about/ “RubyɺखܰͳΦϒδΣΫ τࢦϓϩάϥϛϯάΛ࣮ݱ ͢ΔͨΊͷछʑͷػೳΛ࣋ͭ ΦϒδΣΫτࢦεΫϦϓτ ݴޠͰ͢ɻ“
made in Japan
grew up in US
ຊRubyޙਐࠃɻ
ຊͷRubyͷྺ࢙ٯ༌ೖͷྺ࢙ ✴ΧϯϑΝϨϯε ✴WEBΞϓϦ ✴ιʔγϟϧίʔσΟϯά
ΧϯϑΝϨϯε ✴ RubyConf ✴ RubyKaigi
http://blade.nagaokaut.ac.jp/cgi- bin/scat.rb/ruby/ruby-talk/11883 RubyConf.new(2001)
2006 ʮຊRubyΧϯϑΝϨ ϯε2006ʯ
http://rubyonrails.org/ “Rails was created in 2003 by David Heinemeier Hansson”
Rails in Japan RailsͰϝγ৯ͬͯΔ ਓʁ
Ruby on Railsݱ ✴Ruby͕ࣄʹͳΔ ✴ຊͰఆண͖ͯͨ͠ײ ✴͜͜Rails͚ͩͰ ϝγ͕৯͑ͯ·͢
ୈ3ͷจԽతٯ༌ೖ “Social Coding”
https://github.com/about Company Founded: 2008
Rails premieres on GitHub “GitHub has now officially launched and
Rails is right there at the premiere. The Rails repository now lives at rails/rails and you can check it out with: git clone git://github.com/rails/ rails.git”
WEB+DB Press Vol. 48 (2008/12) ಛू1 [ݴޠผ] Ϟμϯϓϩάϥϛϯά ೖ
None
ຊॳͷGitHubྱࢍهࣄ (ͨͿΜ)
͍͍͜ͱॻ͍ͯΔ “GitHub ͷ࠷େͷಛɺʮਓʯʹϑΥʔ ΧεΛͯɺΦʔϓϯιʔειϑτΣΞ (OSS)ͷੈքʹιʔγϟϧͳࢹΛ࣋ͪࠐ Ή͜ͱʹޭͨ͠Ͱ͢ɻGitHub Ͱɺ ʮϓϩδΣΫτʯʹʮਓʯ͕ΞαΠϯ͞Ε ΔͷͰͳ͘ɺʮਓʯ͕ʮϓϩδΣΫτʯ Λ࣋ͭΑ͏ͳΠϝʔδʹͳ͍ͬͯ·͢ɻ“
ຊॳͷGitHubྱࢍهࣄ (ͨͿΜ) ॻ͍ͨͷΦϨΦϨ
ະདྷΛ༧ݴ “GitHub ·͞ʹίʔυͰޠΓ߹͏ SNS(Social Networking Service)ͳͷ Ͱ͢ɻ͜ͷߏOSSίϛϡχςΟ ͷຊ࣭ΛΈʹද͓ͯ͠ΓɺOSS։ ൃͷύϥμΠϜΛେ͖͘ม͑Δ͖ͬ ͔͚ʹͳΔՄೳੑΛൿΊ͍ͯ·͢ɻ”
͓ങ͍ٻΊͪ͜Β
2008ͷRubyಛूͰGitͷ ✴RubyΛޠΔ্ͰGitط ʹ͔ܽͤͳ͍ଘࡏͩͬͨ ✴RubyίϛϡχςΟ͕Git Λൃݟͨ͠
Why Ruby? ͳͥRuby—GitHub ͳͷ͔ʁ
2ͭͷཧ༝ ✴σβΠϯ ✴ޮ༻
RubyͷσβΠϯ “Ruby is designed to be human-oriented” (Matz)
ιʔείʔυΛ͛߹ͬͯ ίϛϡχέʔγϣϯΛߦ͏SNS ಡΊΘ͔ΔcommitΛ ࡞Δඞཁ͕͋ΔɻՄಡ ੑ͕ͱͯॏཁɻ
·͞ʹ૬ࢥ૬Ѫ— ✴GitHub: ίʔυΛͬͯޠ Γ߹͏SNSɻՄಡੑॏཁɻ ✴Ruby: ίϯϐϡʔλʔͰ ͳͯ͘ਓؒʹϑΥʔΧε͠ ͨݴޠɻՄಡੑߴ͍ɻ
Rubyͷޮ༻ “RubyΩϝΔͱ ؾ͍͍࣋ͪ” (Matz)
”Rubyਓ༷͕ؒؾ Α͘ϓϩάϥϛϯά͢ ΔͨΊͷݴޠ” (Matz)
For whom we write code? RubyΛͬͯͬͯΔ ૬खύιίϯ͡Όͳ ͍ɻਓؒͩɻ
We’re talking to humans using Ruby ͜ΕRubyistͳΒ ΈΜͳΫϦΞ͍ͯ͠Δ ͱ͜ΖͰ͢ΑͶɻ
RubyΛͬͯ୭Λؾ࣋ͪྑͤ͘͞Δͷ͔ ✴not only ࣗ ✴Πϯλʔωοτͷ ͜͏Ͱܨ͕Δਓʑ ✴ͭ·Γੈք
૬ޮՌͰϠό͍͜ͱʹ ҰਓͰΩϝͯؾ͍࣋ͪ ͍ͷɺΈΜͳͰ ϠοͨΒͬͱͬͱ ؾ͍͍࣋ͪʂ
ੈքதͷΈΜͳ͕ूͬͯRubyΛͬ ͯίϛϡχέʔγϣϯ͕ߦΘΕΔ That’s called “the Ruby community”
“The Ruby Community”ʹ͓͚ ΔຊਓͷϓϨθϯεෆ GitHubͰຊਓͷ໊લ Λ໓ଟʹݟͳ͍
Ruby Hero Award(স) զΒ͕ʮRuby Heroʯ m_sekiͰ͢Β ϊϛωʔτ͞Εͳ͍ ͱ͍͏ݱ࣮
ຊਓͷϓϨθϯεෆͷཁҼ ✴ཧత݅ʁ ✴ݴ༿ͷนʁ
ཧత݅ ؔͳ͍Αɻ Πϯλʔωοτ ͩΜɻ
ݴ༿ͷน ҰॹͩΑɻ RubyͩΜɻ
ͨͿΜຊਓͷࠃຽੑͷ ʮԶͷcoolͳίʔυΛ ݟͯ͘Εʂʯతͳͭ ͕ۤख
ʮຊਓʯ͕ډͳ͍ ํ֨ࠩͱ͔ Ҏલͷ
ຊRubyޙਐࠃ ౦ژͱ͔ͱͪ͗ͱ͔ ؔͳ͍
Social Coding࣌ ํͰRubyΛؤுͬͯ ͍Δօ͞Μʹେ͖ͳ νϟϯεɺ͔Ͷɻ
ୈ2෦ Social Coding Practices
GitΛΔ Practice 0
Materials ✴WEB+DB Vol. 50 ಛू2 ✴Git Immersion http://gitimmersion.com ✴Junioຊ ✴GitHub
Bootcamp http://help.github.com/ ✴Git Internals http://peepcode.com/products/ git-internals-pdf
WEB+DB Vol. 50 ಛू2
FAQ Windows?
Windows? Θͳ͍Ͱ͍ͩ͘͞ɻ
Practice 1 ଞਓʹಡ·Εͯஏ͔ͣ ͘͠ͳ͍ίϛοτΦϒ δΣΫτΛ࡞Ε
ଞਓʹಡ·Εͯஏ͔ͣ͘͠ͳ͍ ίϛοτΦϒδΣΫτΛ࡞Ε ✴ৗʹΞτϛοΫͳίϛοτΛ ৺͕͚Δ ✴ಡऀͷؾ࣋ͪΛߟ͑ͨɺ ਖ਼͍͠ίϛοτίϝϯτΛॻ͘
΄Μͱ͏ʹ͋ͬͨ μϝͳίϛοτྫ ✴“various changes” ✴“ xed a bug” ✴“ xes
#1326” ✴TL;DR
ίϛοτίϝϯτͷॻ͖͔ͨ ✴1ߦ: what is this commit? ✴2ߦ: ۭߦ ✴3ߦʙ: details,
why, etc.
ྑ͍͔͠Εͳ͍ίϛοτ “rails g scaffold user name age:integer ...”
ྑ͍͔͠Εͳ͍ίϛοτ ✴“OMG” ✴“oops!”
ιʔγϟϧίʔσΟϯάͷجຊ ϓϩάϥϛϯάͱ ʑͷίϛοτΛ͙ ࡞ۀ
product = [commit, commit, commit, ...] ϓϩμΫτͳΜ͍ͯ͏ ͷʑͷίϛοτ ͕ੵΈॏͳͬͨ݁Ռͷ දͰ͔͠ͳ͍
“Commit” matters ͔ͩΒGHͰcommit ʹίϝϯτͰ͖Δ͚ ͲtreeʹίϝϯτͰ ͖ͳ͍
ࢀߟ https://github.com/ rails/rails/commits
ιʔγϟϧίʔσΟϯάͷਅ ͲΕ͚࣮ͩͳɺ༗ҙ ٛͳίϛοτΦϒδΣ ΫτΛੈͷதʹૹΓग़ ͤΔ͔
Practice 2 ਓͷόάΛ͢
࠷ݶͷϚφʔ ✴ਓͷϓϩμΫτΛͬ ͯͯόάΛ౿ΜͩΒ͢ ✴ͨ͠Βupstreamʹ pull request͢Δ
ຖࣄͰRubyॻ͍ͯ Ε࠷Ͱि1ճ୭ ͔ͷόά౿ΜͰΔͣ
Railsͷ߹ http:// contributors.rubyonrail s.org/
ਖੵΕ جຊతʹϋοΫ͢ΔͨΊ ͷϋοΫͯ͠ͳ͍ɻ ࣄͰ౿Μͩόάʹύον ͯͯΔ͚ͩɻ
͍ͭݴͬͯ·͕͢ɺ RailsόάͷๅݿͳͷͰ ͠ͳ͕Βͬͯͩ͘͞ ͍
Practice 3 Sending “pull request”
΄Μͱ͏ʹ͋ͬͨ μϝͳpull request https://github.com/ amatsuda/kaminari/ pull/181
https://github.com/amatsuda/ kaminari/pull/181 ૬ख͕ຊਓͰӳޠ Ͱॻ͍͍ͯͩ͘͞
ӳޠ͕ۤखʁ
ӳޠ͕ۤखʁ ษڧ͠Ζ
ӳޠ͕ۤखʁ ίʔυͰઆ໌͢Δͱ͍ ͏ςΫχοΫ
μϝͳྫ https://github.com/ amatsuda/everywhere/ pull/2
https://github.com/amatsuda/ everywhere/pull/2 “If you like this, please merge in.”
“If you like this, please merge in.” ͜ΕɺGitHubͱ͍͏ ΞϓϦͷػೳͷઆ໌ Ͱ͢ΑͶɻ
ڭ܇ ʮΑΖ͓͘͠ئ͍͠· ͢ʯཁΓ·ͤΜ Αʔɻ
Practice 4 ࣗͷϓϩμΫτΛ࡞ Δ
http://git.io/kaminari Kaminariͷ߹
Thank you for your +1 <3 <3 <3 1900+ watchers!!
Why I made it ✴Rails 3Ͱwill_paginate͕ಈ͔ͳ ͔ͬͨ ✴ࠔͬͨ ✴ιʔεಡΜͰΧΦεա࣏͗ͯͤ Δؾ͕͠ͳ͍
✴͠ΐ͏͕ͳ͍͔Β৽͍͠ͷ࡞ͬͨ
ެ։ͯ͠Έͨ ΈΜͳࠔͬͯͨΒ͠ ͘ɺΈΜͳ͕ඈͼ͍ͭ ͨ
ܦ࿏ ʮ࡞ͬͨΑʯͬͯtweet ͨ͠ RT @kakutani => ࠃ RT @jmettraux =>
ւ֎
Thank you @jmettraux ͜ͷΛआΓ͓ͯྱΛ ݴ͍͍ͨ
࠷৽࡞ http://git.io/ active_decorator
ڭ܇ ͕ࣗඞཁʹ͔ΒΕͯ ࡞ͬͨͷΈΜͳ ඞཁͳ͜ͱ͕͋Δɻ
μϝͳ(੯͍͠)ྫ ThinReports https:// github.com/thinreports
ThinReports @a_matsuda: @thinreports_org ͔ͯ͠͠GitHubͰ ιʔε͕ެ։͞Ε͍ͯͳ͔ͬͨΓ͠·͔͢ʁ ↓ ͍ɺGitHubͰͳ͘(ͳΜ͔ࣗલSVN)Ͱެ։ͯ͠· ͢ɻͰ͕͢ɺݱࡏGitHubʹϛϥʔ͠Α͏ͱըࡦதͰ͢ɻ ↓ ThinReports
ɺͦͷશͯͷιʔείʔυΛެ։͍ͯ͠ ·͢ɻιʔείʔυϝΠϯͷ Subversion ϦϙδτϦ ʹՃ͑ͯ GitHub ʹϛϥʔͱͯ͠ެ։͍ͯ͠·͢ɻ
ࠓ͔ΒΦʔϓϯιʔεΔͷʹ ࣗલSVNཁΒͳ͘ͳ͍ʁ ruby-lang͡Ό ͋Δ·͍͠
μϝͳ(੯͍͠)ྫ CastOff https://github.com/ soba1104/CastOff
Practice 5 ؒΛݟ͚ͭΖ
hocus_pocusͷ߹ http://git.io/hp
͋ΔGHʹDM͕ “colaborating with hocus_pocus” by @kurko
“colaborating with hocus_pocus” ✴ٿͷཪଆ͔Β ✴໘ࣝͳ͍ ✴ख͍͍ͨʂ ✴ςετॻ͘Αʂ ✴υΩϡϝϯτॻ͘Αʂ
So, I gave him a commit right Stay tuned, and
see how we work together!
ڭ܇ Πϯλʔωοτ͍͢͝
Practice 6 meet the people
RubyKaigi “RubyձٞͰ֎ࠃͷrubyistsͱຊͷ rubyistsྑ͍ਓؒؔΛੜΈग़ͤΔ ͱࢥ͏ɻͦΕͰɺདྷͷRubyձٞ ͳ͍͔Β൵͍͠ɻ” https://twitter.com/#!/ takoyakikamen/status/ 142439088052649985
RubyConf ຊਓ͍ͬͺ͍Ͱ ҆৺
RailsConf ✴RubyHero͕͏͡Ό͏ ͡Ό ✴RailsϓϩάϥϚʔͳΒ RubyConfΑΓָ͍ͣ͠
Conclusion
Why Ruby? ✴designed for Humans ✴ΈΜͳͰΩϝΔͱ ؾ࣋ͪྑ͍
Practices Hack Ruby and spread your commits!!