GitHub倡導的Ruby代碼編寫風格總結_ruby專題

來源:互聯網
上載者:User

原始碼布局方面:
1、所有源檔案以UTF-8編碼
2、使用2個空格的縮排
3、使用Unix風格的分行符號(\n),windows(\r\n)。可使用git config --global core.autocrlf true 防止產生windows風格的分行符號。
4、在‘,',‘;'後,操作符(除指數操作之外),‘{',‘}'的前後增加空格,增加代碼的可讀性。
5、在‘(',‘)',‘[',‘]'符號後不要加空格。
6、Case和When處於同一代碼層次。
7、2個def之間使用一個空行隔開
8、對於一個方法有多個參數導致太長的時候,按如下方式處理

def send_mail(source)  Mailer.deliver(to: 'bob@example.com',          from: 'us@example.com',          subject: 'Important message',          body: source.text) end 

9、使用Rdoc生產系統的API文檔,在注釋和def之間不要有空行。
10、每行不超過80行
11、每行的結尾不要有空白字元。

文法方面:
1、一個方法如果沒參數就省略括弧,有參數就使用括弧
2、如無必要,不要使用for,而使用each做迴圈
3、不要使用then
4、使用三元操作?:代替if,else。
5、不要在if else的內部使用?:操作符
6、使用when X then ...,因為when x ....在ruby1.9被刪除了
7、使用&&和||做boolean操作,使用and,or做流程式控制制。
8、unless和else不要一起用
9、除非是判斷條件涉及賦值操作,否則不不需要括起來
10、把多行語句塊使用{}包含,
11、不需要使用的return的時候就不要用
12、不要使用‘\'串連2行代碼
13、使用||=來初始話變數,但是不能用來初始化boolean變數
14、不要使用perl風格的變數名,$1-9之類的
15、運行Ruby的時候,加上“-w”以提示我們代碼中不好的地方
16、使用Ruby1.9的文法寫lambda和hash

命名規範:
1、使用小寫+“_"命名變數和方法
2、使用首字母大寫命名Module和Class
3、使用全大寫+”_"命名常量
4、對於傳回值是boolean的方法加個“?”尾碼
5、對於一些有潛在風險的方法加“!”尾碼,比方說有exit,修改了self,或者變數等等

注釋:
1、關於注釋就一條,代碼即注釋,

類:
1、符合liskov原則,子類可以替換父類。
2、盡量讓類做到SOLID (Single responsibility, Open-closed, Liskov substitution, Interface segregation and Dependency inversion)
3、為每個類都寫一個to_s的方法以查看類的狀態。
4、使用attr家族的方法做類屬性的存取控制
5、考慮增加新的Factory 方法做一些有意義的執行個體初始化工作。
6、使用DuckTyping而非繼承。因為動態語言的特性,不在需要多態了。
7、避免使用@@,全域變數,
8、根據訪問情況,合理使用存取控制符。
9、使用self來定義單例方法,而不是使用類名。

異常:
1、不要放過一些異常
2、不要使用異常做流程式控制制
3、不要捕獲Exception,異常基類。
4、根據異常類型的覆蓋面排列異常
5、把所有的外部資源放到異常捕獲模組中
6、優先使用庫內建的異常,而不是自己建立異常

集合:
1、優先使用%w建立字串數組
2、按需建立數組
3、使用Set去除List中的重複元素
4、使用Symbol做Hash key,而不是String,不要使用可變對象做Hash Key。
5、不要在遍曆一個列表的同時,又在改變它。

Strings:
1、使用“#{String} #{string}”優於String+String
2、未使用#{}形式的String時,使用‘'表示
3、在做執行個體變數的串連時,不要使用{}
4、使用<<而不是+做字串串聯

Regex:
1、使用命名組而非$1-9以便於跟蹤。
2、‘^','$'表示匹配整行,匹配整個字串應使用'\A','\Z'
3、使用'x'修飾符修飾複雜的regex語句,增加可讀性,但是注意空格的去除問題

%的文法:
1、多使用%w
2、需要字串內嵌運算式的時候使用%()
3、使用%r當Regex中出現多個/
4、不要使用%q ,%Q,%x,%W,%s這些字元
5、在%後優先使用()作為分隔字元

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.