GitHub倡導(dǎo)的Ruby代碼編寫風(fēng)格總結(jié)
源代碼布局方面:
1、所有源文件以UTF-8編碼
2、使用2個(gè)空格的縮進(jìn)
3、使用Unix風(fēng)格的換行符(\n),windows(\r\n)。可使用git config --global core.autocrlf true 防止產(chǎn)生windows風(fēng)格的換行符。
4、在‘,',‘;'后,操作符(除指數(shù)操作之外),‘{',‘}'的前后增加空格,增加代碼的可讀性。
5、在‘(',‘)',‘[',‘]'符號(hào)后不要加空格。
6、Case和When處于同一代碼層次。
7、2個(gè)def之間使用一個(gè)空行隔開
8、對(duì)于一個(gè)方法有多個(gè)參數(shù)導(dǎo)致太長的時(shí)候,按如下方式處理
def send_mail(source) Mailer.deliver(to: 'bob@example.com', from: 'us@example.com', subject: 'Important message', body: source.text) end
9、使用Rdoc生產(chǎn)系統(tǒng)的API文檔,在注釋和def之間不要有空行。
10、每行不超過80行
11、每行的結(jié)尾不要有空白字符。
語法方面:
1、一個(gè)方法如果沒參數(shù)就省略括號(hào),有參數(shù)就使用括號(hào)
2、如無必要,不要使用for,而使用each做循環(huán)
3、不要使用then
4、使用三元操作?:代替if,else。
5、不要在if else的內(nèi)部使用?:操作符
6、使用when X then ...,因?yàn)閣hen x ....在ruby1.9被刪除了
7、使用&&和||做boolean操作,使用and,or做流程控制。
8、unless和else不要一起用
9、除非是判斷條件涉及賦值操作,否則不不需要括起來
10、把多行語句塊使用{}包含,
11、不需要使用的return的時(shí)候就不要用
12、不要使用‘\'連接2行代碼
13、使用||=來初始話變量,但是不能用來初始化boolean變量
14、不要使用perl風(fēng)格的變量名,$1-9之類的
15、運(yùn)行Ruby的時(shí)候,加上“-w”以提示我們代碼中不好的地方
16、使用Ruby1.9的語法寫lambda和hash
命名規(guī)范:
1、使用小寫+“_"命名變量和方法
2、使用首字母大寫命名Module和Class
3、使用全大寫+”_"命名常量
4、對(duì)于返回值是boolean的方法加個(gè)“?”后綴
5、對(duì)于一些有潛在風(fēng)險(xiǎn)的方法加“!”后綴,比方說有exit,修改了self,或者變量等等
注釋:
1、關(guān)于注釋就一條,代碼即注釋,
類:
1、符合liskov原則,子類可以替換父類。
2、盡量讓類做到SOLID (Single responsibility, Open-closed, Liskov substitution, Interface segregation and Dependency inversion)
3、為每個(gè)類都寫一個(gè)to_s的方法以查看類的狀態(tài)。
4、使用attr家族的方法做類屬性的訪問控制
5、考慮增加新的工廠方法做一些有意義的實(shí)例初始化工作。
6、使用DuckTyping而非繼承。因?yàn)閯?dòng)態(tài)語言的特性,不在需要多態(tài)了。
7、避免使用@@,全局變量,
8、根據(jù)訪問情況,合理使用訪問控制符。
9、使用self來定義單例方法,而不是使用類名。
異常:
1、不要放過一些異常
2、不要使用異常做流程控制
3、不要捕獲Exception,異?;?。
4、根據(jù)異常類型的覆蓋面排列異常
5、把所有的外部資源放到異常捕獲模塊中
6、優(yōu)先使用庫自帶的異常,而不是自己創(chuàng)建異常
集合:
1、優(yōu)先使用%w創(chuàng)建字符串?dāng)?shù)組
2、按需創(chuàng)建數(shù)組
3、使用Set去除List中的重復(fù)元素
4、使用Symbol做Hash key,而不是String,不要使用可變對(duì)象做Hash Key。
5、不要在遍歷一個(gè)列表的同時(shí),又在改變它。
Strings:
1、使用“#{String} #{string}”優(yōu)于String+String
2、未使用#{}形式的String時(shí),使用‘'表示
3、在做實(shí)例變量的連接時(shí),不要使用{}
4、使用<<而不是+做字符串串聯(lián)
正則表達(dá)式:
1、使用命名組而非$1-9以便于跟蹤。
2、‘^','$'表示匹配整行,匹配整個(gè)字符串應(yīng)使用'\A','\Z'
3、使用'x'修飾符修飾復(fù)雜的regex語句,增加可讀性,但是注意空格的去除問題
%的語法:
1、多使用%w
2、需要字符串內(nèi)嵌表達(dá)式的時(shí)候使用%()
3、使用%r當(dāng)正則表達(dá)式中出現(xiàn)多個(gè)/
4、不要使用%q ,%Q,%x,%W,%s這些字符
5、在%后優(yōu)先使用()作為分隔符
- github 常用命令總結(jié)大全
- github pull最新代碼實(shí)現(xiàn)方法
- github pull最新代碼實(shí)現(xiàn)方法
- GitHub上一些實(shí)用的JavaScript的文件壓縮解壓縮庫推薦
- github版本庫使用詳細(xì)圖文教程(命令行及圖形界面版)
- ruby實(shí)現(xiàn)github第三方認(rèn)證
- 在GitHub Pages上使用Pelican搭建博客的教程
- github配置使用指南
- 兩分鐘學(xué)會(huì)如何在github托管代碼
- Git客戶端圖文詳解 如何安裝配置GitHub操作流程攻略
- python使用心得之獲得github代碼庫列表
- GitHub Eclipse配置使用教程詳解
相關(guān)文章
Ruby中任務(wù)構(gòu)建工具rake的入門學(xué)習(xí)教程
這篇文章主要介紹了Ruby中任務(wù)構(gòu)建工具rake的入門學(xué)習(xí)教程,講解了包括命名空間和默認(rèn)任務(wù)的執(zhí)行等基礎(chǔ)知識(shí),需要的朋友可以參考下2016-03-03Ruby的字符串與數(shù)組求最大值的相關(guān)問題討論
這篇文章主要介紹了Ruby中的字符串與數(shù)組求最大值的相關(guān)問題,文中還提到了sort排序方法的相關(guān)用法,需要的朋友可以參考下2016-03-03Ruby on Rails實(shí)現(xiàn)最基本的用戶注冊(cè)和登錄功能的教程
這里我們主要以has_secure_password的用戶密碼驗(yàn)證功能為中心,來講解Ruby on Rails實(shí)現(xiàn)最基本的用戶注冊(cè)和登錄功能的教程,需要的朋友可以參考下2016-06-06Ruby中的String對(duì)象學(xué)習(xí)筆記
這篇文章主要介紹了Ruby中的String對(duì)象學(xué)習(xí)筆記,本文講解了String對(duì)象的定義、String對(duì)象的操作、使用數(shù)組下標(biāo)的方式操作字符串等內(nèi)容,需要的朋友可以參考下2014-11-11以MVC的思維方式來理解Ruby on Rails框架的設(shè)計(jì)結(jié)構(gòu)
Ruby on Rails是Ruby世界中Web開發(fā)框架的代名詞,人氣相當(dāng)之高,本文就帶大家以MVC的思維方式來理解Ruby on Rails框架的設(shè)計(jì)結(jié)構(gòu),需要的朋友可以參考下2016-05-05