麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > Ruby > 正文

Ruby元編程的一些值得注意的地方

2020-10-29 19:37:25
字體:
來源:轉載
供稿:網(wǎng)友

  避免無限循環(huán)的元編程。

    寫一個函數(shù)庫時不要使核心類混亂(不要使用 monkey patch)。

    代碼塊形式最好用于字符串插值形式。
        當你使用字符串插值形式,總是提供 __FILE__ 和 __LINE__,使得你的回溯有意義。

 class_eval 'def use_relative_model_naming?; true; end', __FILE__, __LINE__

        define_method 最好用 class_eval{ def ... }

    當使用 class_eval (或者其他的 eval)以及字符串插值,添加一個注釋塊使之在插入的時候顯示(這是我從 rails 代碼學來的實踐):

 # from activesupport/lib/active_support/core_ext/string/output_safety.rb UNSAFE_STRING_METHODS.each do |unsafe_method|  if 'String'.respond_to?(unsafe_method)  class_eval <<-EOT, __FILE__, __LINE__ + 1   def #{unsafe_method}(*args, &block)  # def capitalize(*args, &block)   to_str.#{unsafe_method}(*args, &block) # to_str.capitalize(*args, &block)   end          # end   def #{unsafe_method}!(*args)    # def capitalize!(*args)   @dirty = true       # @dirty = true   super         # super   end          # end  EOT  end end

    避免在元編程中使用 method_missing,它使得回溯變得很麻煩,這個習慣不被列在 #methods,拼寫錯誤的方法可能也在默默的工作,例如 nukes.launch_state = false。考慮使用委托,代理或者是 define_method ,如果必須這樣,使用 method_missing ,
        確保 也定義了 respond_to_missing?
        僅捕捉字首定義良好的方法,像是 find_by_*

主站蜘蛛池模板: 香蕉久久久久久 | 中文字幕在线看第二 | a黄在线观看| 久久久久久久亚洲精品 | 黄色片网站在线免费观看 | 久久精品久久精品国产大片 | av在线免费观看网 | 成人免费看视频 | 91精品国产乱码久久久久久久久 | 天天操天天碰 | 国产精品999在线观看 | 成人毛片免费 | 99极品视频 | 亚洲免费看片网站 | 毛片免费观看日本中文 | 三级国产三级在线 | 欧美大胆xxxx肉体摄影 | 国产成人精品一区在线播放 | 天天黄色片| 欧美三级欧美成人高清www | aaaaa国产欧美一区二区 | 久久精品高清 | 日本成人午夜 | 免费久久久久 | 成人三级免费电影 | 中文日韩欧美 | 精品成人在线观看 | 久久久裸体视频 | 在线看免费观看日本 | 蜜桃av网 | av电影在线观看网址 | 九九视频精品在线观看 | 男女羞羞视频 | 涩涩激情网 | 毛片免费视频观看 | 国产毛片在线高清视频 | www.17c亚洲蜜桃 | 欧美成人一区二区三区 | 毛片免费一区二区三区 | 黄色毛片免费看 | 亚洲人成网站在e线播放 |