GitHub倡導(dǎo)的Ruby代碼編寫(xiě)風(fēng)格總結(jié)
源代碼布局方面:
1、所有源文件以UTF-8編碼
2、使用2個(gè)空格的縮進(jìn)
3、使用Unix風(fēng)格的換行符(\n),windows(\r\n)??墒褂胓it config --global core.autocrlf true 防止產(chǎn)生windows風(fēng)格的換行符。
4、在‘,',‘;'后,操作符(除指數(shù)操作之外),‘{',‘}'的前后增加空格,增加代碼的可讀性。
5、在‘(',‘)',‘[',‘]'符號(hào)后不要加空格。
6、Case和When處于同一代碼層次。
7、2個(gè)def之間使用一個(gè)空行隔開(kāi)
8、對(duì)于一個(gè)方法有多個(gè)參數(shù)導(dǎo)致太長(zhǎng)的時(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、每行不超過(guò)80行
11、每行的結(jié)尾不要有空白字符。
語(yǔ)法方面:
1、一個(gè)方法如果沒(méi)參數(shù)就省略括號(hào),有參數(shù)就使用括號(hào)
2、如無(wú)必要,不要使用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、除非是判斷條件涉及賦值操作,否則不不需要括起來(lái)
10、把多行語(yǔ)句塊使用{}包含,
11、不需要使用的return的時(shí)候就不要用
12、不要使用‘\'連接2行代碼
13、使用||=來(lái)初始話(huà)變量,但是不能用來(lái)初始化boolean變量
14、不要使用perl風(fēng)格的變量名,$1-9之類(lèi)的
15、運(yùn)行Ruby的時(shí)候,加上“-w”以提示我們代碼中不好的地方
16、使用Ruby1.9的語(yǔ)法寫(xiě)lambda和hash
命名規(guī)范:
1、使用小寫(xiě)+“_"命名變量和方法
2、使用首字母大寫(xiě)命名Module和Class
3、使用全大寫(xiě)+”_"命名常量
4、對(duì)于返回值是boolean的方法加個(gè)“?”后綴
5、對(duì)于一些有潛在風(fēng)險(xiǎn)的方法加“!”后綴,比方說(shuō)有exit,修改了self,或者變量等等
注釋?zhuān)?
1、關(guān)于注釋就一條,代碼即注釋?zhuān)?/p>
類(lèi):
1、符合liskov原則,子類(lèi)可以替換父類(lèi)。
2、盡量讓類(lèi)做到SOLID (Single responsibility, Open-closed, Liskov substitution, Interface segregation and Dependency inversion)
3、為每個(gè)類(lèi)都寫(xiě)一個(gè)to_s的方法以查看類(lèi)的狀態(tài)。
4、使用attr家族的方法做類(lèi)屬性的訪(fǎng)問(wèn)控制
5、考慮增加新的工廠(chǎng)方法做一些有意義的實(shí)例初始化工作。
6、使用DuckTyping而非繼承。因?yàn)閯?dòng)態(tài)語(yǔ)言的特性,不在需要多態(tài)了。
7、避免使用@@,全局變量,
8、根據(jù)訪(fǎng)問(wèn)情況,合理使用訪(fǎng)問(wèn)控制符。
9、使用self來(lái)定義單例方法,而不是使用類(lèi)名。
異常:
1、不要放過(guò)一些異常
2、不要使用異常做流程控制
3、不要捕獲Exception,異?;?lèi)。
4、根據(jù)異常類(lèi)型的覆蓋面排列異常
5、把所有的外部資源放到異常捕獲模塊中
6、優(yōu)先使用庫(kù)自帶的異常,而不是自己創(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語(yǔ)句,增加可讀性,但是注意空格的去除問(wèn)題
%的語(yǔ)法:
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的文件壓縮解壓縮庫(kù)推薦
- github版本庫(kù)使用詳細(xì)圖文教程(命令行及圖形界面版)
- ruby實(shí)現(xiàn)github第三方認(rèn)證
- 在GitHub Pages上使用Pelican搭建博客的教程
- github配置使用指南
- 兩分鐘學(xué)會(huì)如何在github托管代碼
- Git客戶(hù)端圖文詳解 如何安裝配置GitHub操作流程攻略
- python使用心得之獲得github代碼庫(kù)列表
- GitHub Eclipse配置使用教程詳解
相關(guān)文章
Ruby的25個(gè)編程細(xì)節(jié)(技巧、實(shí)用代碼段)
這篇文章主要介紹了Ruby的25個(gè)編程細(xì)節(jié)(技巧、實(shí)用代碼段),本文直接給出主題和相應(yīng)代碼,需要的朋友可以參考下2015-05-05
Ruby中用線(xiàn)程實(shí)現(xiàn)經(jīng)典的生產(chǎn)者消費(fèi)者問(wèn)題代碼實(shí)例
這篇文章主要介紹了Ruby中用線(xiàn)程實(shí)現(xiàn)經(jīng)典的生產(chǎn)者消費(fèi)者問(wèn)題代碼實(shí)例,本文直接給出實(shí)現(xiàn)代碼和運(yùn)行效果,需要的朋友可以參考下2015-01-01
在Ruby程序中連接數(shù)據(jù)庫(kù)的詳細(xì)教程
這篇文章主要介紹了在Ruby程序中連接數(shù)據(jù)庫(kù)的詳細(xì)教程,包括介紹數(shù)據(jù)庫(kù)支持Ruby的接口等,是學(xué)習(xí)Ruby on Rails的基礎(chǔ),需要的朋友可以參考下2015-04-04
Ruby程序中發(fā)送基于HTTP協(xié)議的請(qǐng)求的簡(jiǎn)單示例
這篇文章主要介紹了Ruby程序中發(fā)送基于HTTP協(xié)議的請(qǐng)求的簡(jiǎn)單示例,包括對(duì)HTTPS請(qǐng)求的介紹,需要的朋友可以參考下2016-03-03
在Ruby on Rails中使用Rails Active Resource的教程
這篇文章主要介紹了在Ruby on Rails中使用Rails Active Resource的教程,本文來(lái)自于IBM官方網(wǎng)站技術(shù)文檔,需要的朋友可以參考下2015-04-04

