欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

GitHub倡導(dǎo)的Ruby代碼編寫風(fēng)格總結(jié)

 更新時(shí)間:2016年05月27日 18:40:33   作者:ningandjin  
GitHub網(wǎng)站服務(wù)器端主要就是使用的Ruby作為編程語言,因而GitHub所提倡采用的Ruby書寫規(guī)范也就顯得更有些說服力XD 下面我們就整理除了這份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)先使用()作為分隔符

相關(guān)文章

最新評(píng)論