榜樣很重要?
——墨菲警官《機(jī)器戰(zhàn)警》
身為 Ruby 開發(fā)者,有件總是令我煩心的事——Python 開發(fā)者有一份好的編程風(fēng)格參考指南(PEP-8)而我們永遠(yuǎn)沒有一份官方指南,一份記錄 Ruby 編程風(fēng)格及最佳實(shí)踐的指南。我確信風(fēng)格很重要。我也相信像 Ruby 這樣的黑客社區(qū),應(yīng)該可以自己寫一份這個(gè)夢寐以求的文檔。
這份指南開始是作為我們公司內(nèi)部的 Ruby 編程指南 (在下所寫的)。后來,我決定要把成果貢獻(xiàn)給廣大的 Ruby 社區(qū),況且這個(gè)世界再多一份公司司內(nèi)部文件又有何意義。然而由社區(qū)制定及策動的一系列 Ruby 編程慣例、實(shí)踐及風(fēng)格,確能讓世界收益。
從編寫這份指南開始,我收到了優(yōu)秀 Ruby 社區(qū)的很多用戶反饋。感謝所有的建議及幫助!同心協(xié)力,我們能創(chuàng)造出讓每一個(gè) Ruby 開發(fā)者受益的資源。
順道一提,如果你對 Rails 感興趣,你可以看看這份?Ruby on Rails 3 風(fēng)格指南?作為補(bǔ)充。
這份 Ruby 風(fēng)格指南向你推薦實(shí)際使用中的最佳實(shí)踐,Ruby 程序員如何寫出可被別的 Ruby 程序員維護(hù)的代碼。我們只說實(shí)際使用中的用法。指南再好,但里面說的過于理想化結(jié)果大家拒絕使用或者可能根本沒人用,又有何意義。
本指南依照相關(guān)規(guī)則分成數(shù)個(gè)小節(jié)。我盡力在規(guī)則后面說明理由(如果省略了說明,那是因?yàn)槠淅碛娠@而易見)。
規(guī)則不是我憑空想出來的——絕大部分來自我作為從業(yè)多年的職業(yè)軟件工程師的經(jīng)驗(yàn),從 Ruby 社區(qū)成員得到的反饋及建議,和幾個(gè)評價(jià)甚高的 Ruby 編程資源,像?《Programming Ruby 1.9》?以及?《The Ruby Programming Language》。
本指南仍在完善中——某些規(guī)則缺乏實(shí)例,某些例子也不夠清楚。到時(shí)候都會解決的——放心吧。
你可以使用?Transmuter?生成本指南的 PDF 或 HTML 版本。
rubocop?項(xiàng)目會自動檢查你的 Ruby 代碼是否符合這份 Ruby 風(fēng)格指南。
本指南有以下翻譯版本:
更多建議: