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
object-oriented social coding scripting languag...
Search
Akira Matsuda
December 04, 2011
Programming
23
5k
object-oriented social coding scripting language Ruby
とちぎRuby会議04招待講演のスライド, 2011/12/3
http://regional.rubykaigi.org/tochigi04
Akira Matsuda
December 04, 2011
Tweet
Share
More Decks by Akira Matsuda
See All by Akira Matsuda
初心者のためのRubyKaigi入門/RubyKaigi Introduction
a_matsuda
13
4.4k
Hanamiを支える技術 2023 / Asakusa.rb Hanami 2023
a_matsuda
2
480
Rails 7.1をn倍速くした話
a_matsuda
11
11k
RubyKaigi 2022 After Talk
a_matsuda
0
380
Coming Soon…💎 / coming soon
a_matsuda
12
7.6k
Rails Performance Issues and Solutions
a_matsuda
9
35k
Extending Rails for Real World App Development
a_matsuda
9
7.3k
A RubyKaigi Talk
a_matsuda
8
2.2k
Ginza Rails 1
a_matsuda
6
1.1k
Other Decks in Programming
See All in Programming
connect-go で面倒くささと戦う / 2024-08-27 #newmo_layerx_go
izumin5210
2
610
暴走のウホーレン 〜想いってのはvimrcにしないと伝わらないんだぜ〜 / iosdc_japan_2024
uhooi
1
240
iOSの隠されたAPIを解明し、開発効率を向上させる方法/iOSDC24
noppefoxwolf
2
120
Rubyとクリエイティブコーディングの輪の広がり / The Growing Circle of Ruby and Creative Coding
chobishiba
1
230
dotfiles について話したい #湘なんか
stefafafan
2
290
The Sequel to a Dream of Ruby Parser's Grammar
ydah
1
190
GraphQL あるいは React における自律的なデータ取得について
quramy
2
860
dRuby 入門者によるあなたの身近にあるdRuby 入門
makicamel
4
340
GoのIteratorに詳しくなってしまう
inatonix
1
190
フロントエンドカンファレンス北海道2024 『小規模サイトでも使えるVite 〜HTMLコーディングをよりスマートに〜』長谷川広武(ハム)
h2ham
1
2.5k
Hono・Prisma・AWSでGeoなAPI開発
nokonoko1203
5
630
『ドメイン駆動設計をはじめよう』中核の業務領域
masuda220
PRO
5
890
Featured
See All Featured
How GitHub Uses GitHub to Build GitHub
holman
472
290k
Code Reviewing Like a Champion
maltzj
518
39k
Typedesign – Prime Four
hannesfritz
39
2.3k
Creatively Recalculating Your Daily Design Routine
revolveconf
215
12k
It's Worth the Effort
3n
182
27k
Producing Creativity
orderedlist
PRO
340
39k
Intergalactic Javascript Robots from Outer Space
tanoku
268
26k
Imperfection Machines: The Place of Print at Facebook
scottboms
263
13k
10 Git Anti Patterns You Should be Aware of
lemiorhan
653
58k
Building an army of robots
kneath
302
42k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
663
120k
Done Done
chrislema
180
16k
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!!