Ruby/Rails 生態圈 Ecosystem
一個成功的開放原始碼程式語言和框架,背後一定有一個強大的社群在支持。團隊和個人的時間成本有限,你不可能每個用到的工具和函式庫工具都自己從頭開發。因此,熟悉一個程式語言,不只是了解其語法而已,能夠熟悉它的生態圈、社群和領導廠商,了解有什麼工具和資源可以運用、了解當遇到問題的時候,有什麼管道可以幫助你,也是一件非常重要的事情。
台灣社群
Ruby Taiwan http://ruby.tw 社群成立於2008年10月,主要是針對Ruby程式語言及軟體開發,進行業界的交流及分享,提昇開發人員的技術深度與廣度。實體活動包括:
- 不定期週二的Ruby Tuesday聚會,形式為技術分享演講。
- Ruby on Rails工作坊,與中研院OSSF合作舉辦。
- RubyConf Taiwan http://rubyconf.tw大會,為國內唯一的 Ruby 程式語言年會,目標對象為所有Ruby相關的IT技術人員、系統管理員及程式開發者,並邀請來自國內外專業講者來分享他們的專案及經驗。
Ruby Taiwan旗下還包括:
- 找文件http://guides.ruby.tw/
- 找工作http://jobs.ruby.tw/
- Ruby程式語言 中文官網 http://www.ruby-lang.org/zh_TW
新聞網站
Ruby on Rails的官方部落格http://weblog.rubyonrails.org/包括最新的Rails版本發佈、安全性維護通知、新功能介紹等等。
Ruby Inside http://www.rubyinside.com/是最熱門的Ruby新聞部落格,由Peter Cooper創立。
Ruby Weekly http://rubyweekly.com/也是由Peter Cooper每週整理的Ruby重點新聞,透過E-mail訂閱寄送,包括最新頭條、推薦文章以及最新函式庫工具等。筆者非常推薦訂閱一讀。
Ruby5 Podcast http://ruby5.envylabs.com/每週兩次的五分鐘Podcast Ruby社群新聞,由Gregg Pollack主持。
Ruby Show http://rubyshow.com/每週一次的Podcast Ruby社群新聞,由Jason Seifer主持。
Ruby Flow http://www.rubyflow.com/相較於上述的新聞透過編輯來過濾,Ruby Flow可以讓網友自行張貼新聞。也因為如此所以訊息量比較混雜一些。如果你有開放原始碼專案或Ruby相關消息想要告知給Ruby社群,這裡倒是個好地方。
文件、工具網站
- http://rubygems.org RubyGems官方套件儲存庫
- http://github.com GitHub是Ruby社群最多人使用的源碼儲存空間
- http://ruby-toolbox.com/ 整理分類Ruby常用套件,並根據Github Watchers和RubyGems下載排行
- http://raa.ruby-lang.org/ Ruby套件分類目錄
- http://railsapi.com/ 線上可即時搜尋的Ruby和Rails文件
- http://www.ruby-forum.com/ Ruby論壇
- http://guides.rails.info/ Rails官方導覽文件
- http://guides.rubygems.org/ Rubygems導覽文件
- http://railscasts.com 錄影介紹Rails技巧,由Ryan Bates主持。
- http://asciicasts.com/ 文字版的Railscasts
- http://www.engineyard.com/blog/ Engine Yard是Ruby社群的領導廠商,贊助了Rails、JRuby、Rubinius、Rails Installer等開源專案。公司部落格包括有豐富的技術資訊
- http://edgerails.info/ 介紹Rails下一版本最新功能
- http://peepcode.com 精美的技術錄影教學,值得一買
書籍
Ruby(線上免費)
- Learn to Program 適合完全的程式語言初學者
- Beginning Ruby
- Why’s (Poignant) Guide
- Mr. Neighborly’s Humble Little Ruby Book
- Ruby Best Practices
Rails(線上免費)
Ruby程式語言
- Programming Ruby 1.9 (Pragmatic)
- The Well-Grounded Rubyist (Manning)
- The Ruby Way 2nd. (Addison-Wesley)
- The Ruby Programming Language (O’Reilly)
- Eloquent Ruby (Addison-Wesley)
- Ruby Best Practices (O’Reilly)
- Design Patterns in Ruby (Addison-Wesley)
- Refactoring: Ruby Edition (Addison-Wesley)
- The RSpec Book (Pragmatic)
- Distributed Programming with Ruby (Addison-Wesley)
Rails
- Agile Web Development with Rails 4th. (Pragmatic)
- The Rails 3 Way (Addison-Wesley)
- Rails3 in Action (Manning)
- Rails Antipatterns (Addison-Wesley)
- Rails Test Prescriptions (Pragmatic)
- Advanced Rails Recipes (Pragmatic)
- Enterprise Recipes with Ruby and Rails (Pragmatic)
- Enterprise Rails (O’Reilly)
- Security on Rails (Pragmatic)
- Service-Oriented Design with Ruby and Rails (Addison-Wesley)
- Crafting Rails Applications (Pragmatic)
年度大會
Ruby社群熱衷於世界各地舉辦研討會,請參考Ruby There http://rubythere.com/獲知最近舉辦的研討會。
美國
- RubyConf http://rubyconf.org
- RailsConf http://www.railsconf.com/
- RubyNation http://www.rubynation.org/ 東岸
- RubyConf MountainWest http://mtnwestrubyconf.org/ 西岸
- JRubyConf http://jrubyconf.com/ JRuby專屬大會
Confreasks上有包括RubyConf在內的許多演講錄影,其中Keynote基調演講推薦一看,其他可以挑有興趣的主題一看。
歐洲
- EuRuKo http://euruko.org/ 歐洲最大的研討會,德國
- Scottish Ruby Conference http://scottishrubyconference.com 英國
- Frozen Rails https://frozenrails.eu/ 芬蘭
亞洲
- RubyKaigi http://rubykaigi.org 日本
- RubyConf India http://rubyconfindia.org 印度
- RubyConf Taiwan http://rubyconf.tw 台灣
- RubyConf China http://rubyconfchina.org/ 中國
- reddotrubyconf http://reddotrubyconf.com/ 新加坡
社群中知名活躍的Rubyist幾乎都有個Twitter帳號,如果想知道第一手消息和八卦,可以從以下帳號開始Follow:
Ruby 核心
Ruby committers成員http://rubycommitters.org/
- @yukihiro_matz 松本行弘、Ruby發明人
- @yugui 園田裕貴、Ruby核心團隊成員、Ruby 1.9 release manager
- @JEG2 Ruby核心團隊成員、Ruby Quiz一書作者、FasterCSV作者
- @tenderlove Ruby和Rails核心團隊成員、Nokogiri作者
- @david_a_black Ruby核心團隊成員、The Well-Grounded Rubyist一書作者
- @jimweirich Ruby核心團隊成員、Rake作者
- @drbrain Ruby核心團隊成員、Rubygems和RDoc維護者
- @_why Ruby社群傳奇人物,於2009/8/19消失,行蹤成謎,成為Ruby社群第一大懸案。
Rails 核心
Rails核心成員http://rubyonrails.org/core及所有貢獻者http://contributors.rubyonrails.org/
- @DHH Rails發明人
- @wycats Rails核心團隊成員、JQuery核心團隊成員、Rails 3架構師
- @josevalim Rails核心團隊成員
- @lifo Rails核心團隊成員
- @bitsweat Rails核心團隊成員
- @fxn Rails核心團隊成員,主要負責維護Rails Guides文件
- @nzkoz Rails核心團隊成員
- @joshpeek Rails核心團隊成員
- @spastorino Rails核心團隊成員、prototype.js作者
知名Rubyists
- @pragdave Programming Ruby一書作者,此書是第一本英文Ruby程式語言書籍,有重要的Bible地位。
- @peterc Ruby Inside站長
- @chadfowler 美國Ruby協會(Ruby Central, Inc.)會長,主辦每年的RubyConf
- @takahashim 高橋征義、日本Ruby協會會長,他有兩本著作有中文翻譯:高橋流簡報和Ruby Programming-向 Ruby 之父學程式設計。高橋先生每年都來台灣參加OSDC.TW。
- @kakutani 角谷信太郎、日本Ruby協會,日本RubyKaigi大會主辦人
- @greggpollack Ruby5 podcast主持人
- @ezmobius VMware Cloud Foundry核心成員
- @merbist MacRuby: The Definitive Guide一書作者
- @obie The Rails 3 Way一書作者
- @evanphx Rubinus核心成員
- @igrigorik 知名部落客
- @rbates Railscasts站長
- @rtomayko Sinatra核心成員
- @headius JRuby核心成員
- @tmm1 EventMachine核心成員
- @edavis10 前Redmine核心成員、目前Fork出ChiliProject
- @qrush Rubygems.org站長
- @raasdnil Ruby Mail gem作者
- @svenfuchs Ruby i18n gem作者
- @dchelimsky RSpec作者
- @seacreature Ruby Best Practices一書作者、Prawn作者
- @wayneeseguin RVM作者
- @jm Humble Little Ruby Book一書作者
- @ryanbigg Rails 3 in Action一書作者
- @evan Twitter架構師、Memcached Ruby Client作者
- @topfunky Peepcode作者
- @drbrain Rubygems維護者
- @zedshaw Mongrel作者,因幹勦Rails團隊而成為風雲人物,現已轉戰Python陣營
另外,每年會頒發一次Ruby Heros獎項。
知名廠商
- @37signals Rails的發源公司
- @engineyard Rails雲端服務的領導廠商
- @github 不用再介紹了吧
- @heroku Ruby的PaaS雲端服務平台領導廠商
- @phusion_nl 出產Passenger和REE的公司
- @thoughtbot 知名顧問公司
- @pivotallabs 知名顧問公司
- @hashrocket 知名顧問公司
其他
- @ruby_news Ruby News
- @RubyInside Ruby Inside
- @rails Rails
- @rspec RSpec
- @jruby JRuby
- @rubinius Ribinius
- @macruby MacRuby
- @seattlerb 西雅圖Ruby社群
- @sdruby 聖地亞哥Ruby社群
講中文的Rubyists
- @rubytaiwan Ruby Taiwan社群。另外,這個帳號Follow了台灣Ruby相關開發者。
- @ihower 本書作者
- @xdite 台灣知名部落客
- @godfat PTT Ruby版板主
- @flyerhzm Rails Best Practices Gem作者
- @robbinfan 大陸ITeye站長
- @lgn21st 上海Shanghaionrails社群組織者
如何回報問題及貢獻開源社群
如果你發現一個可能是Ruby、Rails核心或任何函式庫的Bug,請先從它們的Issue Tracking System找找看有沒有類似發生過的問題,或許有人已經回報這個問題,並獲得解答或原作者說法。如果沒有,也請不要吝嗇回報你的發現,如果可以順道找出原因,並附上程式Patch那就更好了。
- Ruby程式語言的Issue Tracking System使用Redmine,也有Mirror在Github上,你也可以直接送Pull request,不過建議還是要在Redmine上開票。
- Rails的Issue Tracking System使用Github的Issue tracking system,除了開Issue之外,如果想送Patch,可以在Fork這個專案,完成之後送Pull request請求Core Team合併。如果你的Commits被接受的話,恭喜你就會列名在Rails Contributors上。
目前大部分的Ruby開源軟體都使用Github來做版本控制,你可以透過它提供的Issue回報問題給作者,或是透過README得知作者聯絡方式。另外,你也可以利用Github提供的Fork功能,分支一個版本做修正補丁,完成後發Pull Request請求原作者合併你的修改。
除了發現Bug回報補丁,你也可以貢獻文件:
- Rails文件http://guides.rubyonrails.org/contribute.html
- Ruby Taiwan的文件http://guides.ruby.tw
投影片下載
參考資料
- http://rubyonrails.org/ecosystem
- https://github.com/h3rald/ruby-compendium