> 榜樣很重要?
> ——墨菲警官《機器戰警》
身為 Ruby 開發者,有件總是令我煩心的事——Python 開發者有一份好的編程風格參考指南([PEP-8](http://www.python.org/dev/peps/pep-0008/))而我們永遠沒有一份官方指南,一份記錄 Ruby 編程風格及最佳實踐的指南。我確信風格很重要。我也相信像 Ruby 這樣的黑客社區,應該可以自己寫一份這個夢寐以求的文檔。
這份指南開始是作為我們公司內部的 Ruby 編程指南 (在下所寫的)。后來,我決定要把成果貢獻給廣大的 Ruby 社區,況且這個世界再多一份公司司內部文件又有何意義。然而由社區制定及策動的一系列 Ruby 編程慣例、實踐及風格,確能讓世界收益。
從編寫這份指南開始,我收到了優秀 Ruby 社區的很多用戶反饋。感謝所有的建議及幫助!同心協力,我們能創造出讓每一個 Ruby 開發者受益的資源。
順道一提,如果你對 Rails 感興趣,你可以看看這份?[Ruby on Rails 3 風格指南](https://github.com/bbatsov/rails-style-guide)?作為補充。
# Ruby 風格指南
這份 Ruby 風格指南向你推薦實際使用中的最佳實踐,Ruby 程序員如何寫出可被別的 Ruby 程序員維護的代碼。我們只說實際使用中的用法。指南再好,但里面說的過于理想化結果大家拒絕使用或者可能根本沒人用,又有何意義。
本指南依照相關規則分成數個小節。我盡力在規則后面說明理由(如果省略了說明,那是因為其理由顯而易見)。
規則不是我憑空想出來的——絕大部分來自我作為從業多年的職業軟件工程師的經驗,從 Ruby 社區成員得到的反饋及建議,和幾個評價甚高的 Ruby 編程資源,像?[《Programming Ruby 1.9》](http://pragprog.com/book/ruby4/programming-ruby-1-9-2-0)?以及?[《The Ruby Programming Language》](http://www.amazon.com/Ruby-Programming-Language-David-Flanagan/dp/0596516177)。
本指南仍在完善中——某些規則缺乏實例,某些例子也不夠清楚。到時候都會解決的——放心吧。
你可以使用?[Transmuter](https://github.com/TechnoGate/transmuter)?生成本指南的 PDF 或 HTML 版本。
[rubocop](https://github.com/bbatsov/rubocop)?項目會自動檢查你的 Ruby 代碼是否符合這份 Ruby 風格指南。
本指南有以下翻譯版本:
* [簡體中文](https://github.com/JuanitoFatas/ruby-style-guide/blob/master/README-zhCN.md)
* [繁體中文](https://github.com/JuanitoFatas/ruby-style-guide/blob/master/README-zhTW.md)
* [法文](https://github.com/porecreat/ruby-style-guide/blob/master/README-frFR.md)
* [德文](https://github.com/arbox/de-ruby-style-guide/blob/master/README-deDE.md)
* [日文](https://github.com/fortissimo1997/ruby-style-guide/blob/japanese/README.ja.md)
* [韓文](https://github.com/dalzony/ruby-style-guide/blob/master/README-koKR.md)
* [葡萄牙文](https://github.com/rubensmabueno/ruby-style-guide/blob/master/README-PT-BR.md)
* [俄文](https://github.com/arbox/ruby-style-guide/blob/master/README-ruRU.md)
* [西班牙文](https://github.com/alemohamad/ruby-style-guide/blob/master/README-esLA.md)
* [越南文](https://github.com/scrum2b/ruby-style-guide/blob/master/README-viVN.md)