<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    莊周夢蝶

    生活、程序、未來
       :: 首頁 ::  ::  :: 聚合  :: 管理

    Clojure世界:靜態代碼分析

    Posted on 2012-03-23 21:28 dennis 閱讀(4572) 評論(0)  編輯  收藏 所屬分類: Clojure
        Java世界里有findbugs這樣的神器,可以讓你避免很多“簡單愚蠢”的bug。同樣,Clojure世界里也有相應的替代品,這就是今天要介紹的kibit。不過kibit現在還比較年輕,判斷的規則較少,但是已經可以使用起來做clojure代碼的靜態檢查。

    項目主頁:https://github.com/jonase/kibit
    使用:
    1.安裝lein插件:
    lein plugin install jonase/kibit 0.0.2

    2.在項目的根目錄運行
    lein kibit

    kibit會分析項目里所有clojure源碼,每個namespace分別分析,例如我分析clojure-control的輸出:

    == control.commands ==
    == control.core ==
    [186] Consider (zero? (:status (ssh host user cluster (str "test -e " file)))) instead of (= (:status (ssh host user cluster (str "test -e " file))) 0)
    == control.main ==
    == leiningen.control ==
    [null] Consider Integer/parseInt instead of (fn* [p1__61444#] (Integer/parseInt p1__61444#))
    [null] Consider Integer/parseInt instead of (fn* [p1__65254#] (Integer/parseInt p1__65254#))

        顯然,kibit一個一個namespace分析過去,并且按照規則對它認為有問題的地方打印出來,并提出建議。例如這里它建議我用
    (zero? (:status (ssh host user cluster (str "test -e " file))))
        替換control.core里186行的:
     (= (:status (ssh host user cluster (str "test -e " file))) 0)

        目前kibit大多數是這類代碼風格上的檢查,還沒有做到類似findbugs那樣更豐富的檢查,例如NPE異常檢查等。此外kibit還提供反射檢查,任何有反射調用的地方都給出警告。
        kibit是基于core.logic實現的,它的規則都放在了這里,通過defrules宏來定義檢查規則,源碼中對算術運算的規則定義:
    (defrules rules
      [(+ ?x 1) (inc ?x)]
      [(+ 1 ?x) (inc ?x)]
      [(- ?x 1) (dec ?x)]

      [(* ?x (* . ?xs)) (* ?x . ?xs)]
      [(+ ?x (+ . ?xs)) (+ ?x . ?xs)])
       
        第一個規則,任何對類似(+ 1 x)的代碼,都建議替換成(inc x),后面的與此類似。理論上你也可以自定義規則,并提交給官方。總體上說kibit仍然是比不上findbugs的,期待未來發展的更好。
    主站蜘蛛池模板: 久久精品国产大片免费观看| 久久久久久久久亚洲| 亚洲 日韩经典 中文字幕 | 无套内谢孕妇毛片免费看看| 九九九精品成人免费视频| 91亚洲国产成人久久精品| 最近中文字幕电影大全免费版 | sihu国产精品永久免费| 国产亚洲精品不卡在线| 精品无码国产污污污免费网站国产| 亚洲一级片免费看| 韩国免费A级毛片久久| 亚洲成a人片在线观看无码 | 国产一卡2卡3卡4卡2021免费观看| 亚洲系列国产精品制服丝袜第| 最好看的中文字幕2019免费| 亚洲国产成人精品青青草原| 午夜两性色视频免费网站| 狼色精品人妻在线视频免费| 国产成人亚洲精品91专区手机| a国产成人免费视频| 久久精品国产亚洲AV麻豆网站 | 国产成人精品免费视频大全| 国产精品亚洲一区二区三区在线| 免费国产黄网站在线观看视频| 亚洲欧洲日产专区| 亚洲?V乱码久久精品蜜桃| 2022免费国产精品福利在线| 亚洲成熟xxxxx电影| 成人免费视频一区二区三区| 亚洲第一视频在线观看免费| 亚洲综合一区二区精品导航| 国产美女无遮挡免费视频网站 | 亚洲免费在线观看视频| 亚洲国产精品精华液| 国产成人A亚洲精V品无码| 思思re热免费精品视频66| 美景之屋4在线未删减免费| 亚洲AV无码国产在丝袜线观看| 永久免费观看的毛片的网站| a级毛片在线视频免费观看|