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

    1. <var id="nj6pd"><legend id="nj6pd"></legend></var>
      <nobr id="nj6pd"></nobr>

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

       更新時間: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個空格的縮進
      3、使用Unix風(fēng)格的換行符(\n),windows(\r\n)。可使用git config --global core.autocrlf true 防止產(chǎn)生windows風(fēng)格的換行符。
      4、在‘,',‘;'后,操作符(除指數(shù)操作之外),‘{',‘}'的前后增加空格,增加代碼的可讀性。
      5、在‘(',‘)',‘[',‘]'符號后不要加空格。
      6、Case和When處于同一代碼層次。
      7、2個def之間使用一個空行隔開
      8、對于一個方法有多個參數(shù)導(dǎo)致太長的時候,按如下方式處理

      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、一個方法如果沒參數(shù)就省略括號,有參數(shù)就使用括號
      2、如無必要,不要使用for,而使用each做循環(huán)
      3、不要使用then
      4、使用三元操作?:代替if,else。
      5、不要在if else的內(nèi)部使用?:操作符
      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風(fēng)格的變量名,$1-9之類的
      15、運行Ruby的時候,加上“-w”以提示我們代碼中不好的地方
      16、使用Ruby1.9的語法寫lambda和hash

      命名規(guī)范:
      1、使用小寫+“_"命名變量和方法
      2、使用首字母大寫命名Module和Class
      3、使用全大寫+”_"命名常量
      4、對于返回值是boolean的方法加個“?”后綴
      5、對于一些有潛在風(fēng)險的方法加“!”后綴,比方說有exit,修改了self,或者變量等等

      注釋:
      1、關(guān)于注釋就一條,代碼即注釋,

      類:
      1、符合liskov原則,子類可以替換父類。
      2、盡量讓類做到SOLID (Single responsibility, Open-closed, Liskov substitution, Interface segregation and Dependency inversion)
      3、為每個類都寫一個to_s的方法以查看類的狀態(tài)。
      4、使用attr家族的方法做類屬性的訪問控制
      5、考慮增加新的工廠方法做一些有意義的實例初始化工作。
      6、使用DuckTyping而非繼承。因為動態(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)建字符串數(shù)組
      2、按需創(chuàng)建數(shù)組
      3、使用Set去除List中的重復(fù)元素
      4、使用Symbol做Hash key,而不是String,不要使用可變對象做Hash Key。
      5、不要在遍歷一個列表的同時,又在改變它。

      Strings:
      1、使用“#{String} #{string}”優(yōu)于String+String
      2、未使用#{}形式的String時,使用‘'表示
      3、在做實例變量的連接時,不要使用{}
      4、使用<<而不是+做字符串串聯(lián)

      正則表達式:
      1、使用命名組而非$1-9以便于跟蹤。
      2、‘^','$'表示匹配整行,匹配整個字符串應(yīng)使用'\A','\Z'
      3、使用'x'修飾符修飾復(fù)雜的regex語句,增加可讀性,但是注意空格的去除問題

      %的語法:
      1、多使用%w
      2、需要字符串內(nèi)嵌表達式的時候使用%()
      3、使用%r當正則表達式中出現(xiàn)多個/
      4、不要使用%q ,%Q,%x,%W,%s這些字符
      5、在%后優(yōu)先使用()作為分隔符

      相關(guān)文章

      最新評論