<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          2021 年你寫了多少代碼?這個 Go 工具幫你統(tǒng)計

          共 6365字,需瀏覽 13分鐘

           ·

          2022-01-14 06:14

          閱讀本文大概需要 4 分鐘。

          大家好,我是 polarisxu。

          2021 你寫了多少代碼?其中 Go 代碼又有多少呢?雖然大家一般討厭將代碼行數(shù)作為考核業(yè)績指標,但我們自己對一年的代碼量有一個基本掌握還是挺有必要的。

          如果你搜索,會發(fā)現(xiàn)代碼統(tǒng)計工具有很多。比如 sloccount[1]、github.com/AlDanial/cloc 等,似乎大家很喜歡統(tǒng)計代碼行數(shù)。當然,也有人直接使用 grep、awk 之類的工具。

          本文簡單對比兩個工具:cloc 和 scc。

          這兩個工具的原理類似。在 Mac 下,通過 brew 安裝:

          $?brew?install?cloc?scc

          其中 cloc 使用 Perl 實現(xiàn),有 13.1k+ Star;而 scc 是 Go 實現(xiàn)的,項目地址:https://github.com/boyter/scc,有 3k+ Star。

          使用這兩個工具統(tǒng)計 github.com/studygolang/studygolang 項目。

          $?cloc?.
          ????4287?text?files.
          ????4028?unique?files.
          Complex?regular?subexpression?recursion?limit?(32766)?exceeded?at?/usr/local/Cellar/cloc/1.82/libexec/bin/cloc?line?9334.
          ?????580?files?ignored.

          github.com/AlDanial/cloc?v?1.82??T=5.68?s?(658.0?files/s,?85679.8?lines/s)
          --------------------------------------------------------------------------------
          Language??????????????????????files??????????blank????????comment???????????code
          --------------------------------------------------------------------------------
          JavaScript?????????????????????2458??????????32504??????????90981?????????174284
          JSON????????????????????????????415????????????127??????????????0??????????86826
          Markdown????????????????????????359??????????13566??????????????0??????????31219
          Go??????????????????????????????200???????????4962???????????2238??????????20772
          HTML????????????????????????????153???????????1019?????????????79??????????14358
          CSS??????????????????????????????42???????????1219????????????292???????????6952
          YAML?????????????????????????????45?????????????56?????????????12???????????1209
          SQL???????????????????????????????2?????????????74??????????????0????????????847
          XML??????????????????????????????10????????????137????????????489????????????790
          TypeScript???????????????????????15?????????????33????????????228????????????293
          SVG??????????????????????????????15??????????????0??????????????0????????????279
          INI???????????????????????????????2?????????????41?????????????46????????????144
          XSLT??????????????????????????????1??????????????8??????????????1????????????101
          make??????????????????????????????6?????????????44??????????????4?????????????95
          Bourne?Shell??????????????????????3??????????????9?????????????11?????????????50
          DOS?Batch?????????????????????????4?????????????26??????????????0?????????????44
          diff??????????????????????????????1??????????????6?????????????20?????????????25
          Nix???????????????????????????????1??????????????1??????????????0?????????????19
          zsh???????????????????????????????1??????????????4?????????????14??????????????7
          Bourne?Again?Shell????????????????1??????????????4?????????????16??????????????7
          Dockerfile????????????????????????1??????????????4??????????????1??????????????5
          CoffeeScript??????????????????????2??????????????1??????????????0??????????????1
          --------------------------------------------------------------------------------
          SUM:???????????????????????????3737??????????53845??????????94432?????????338327
          --------------------------------------------------------------------------------

          統(tǒng)計花了近 6 秒。

          $?scc
          ───────────────────────────────────────────────────────────────────────────────
          Language?????????????????Files?????Lines?????Code??Comments???Blanks?Complexity
          ───────────────────────────────────────────────────────────────────────────────
          JavaScript????????????????2523????298987???207834?????63356????27797??????33769
          JSON???????????????????????419?????31849????31660?????????0??????189??????????0
          Markdown???????????????????375?????46820????32663?????????0????14157??????????0
          License????????????????????275??????6279?????5081?????????0?????1198??????????0
          Go?????????????????????????200?????27972????20776??????2243?????4953???????4447
          HTML???????????????????????154?????15617????14525????????79?????1013??????????0
          YAML????????????????????????51??????1303?????1247?????????0???????56??????????0
          CSS?????????????????????????44??????8463?????6952???????297?????1214??????????0
          Plain?Text??????????????????34????594575???594394?????????0??????181??????????0
          TypeScript?Typings??????????17???????741??????367???????340???????34?????????27
          SVG?????????????????????????15???????279??????279?????????0????????0??????????0
          XML?????????????????????????10??????1416??????790???????516??????110??????????0
          Makefile?????????????????????6???????143???????95?????????4???????44??????????6
          gitignore????????????????????5????????64???????45?????????3???????16??????????0
          Batch????????????????????????4????????70???????42?????????2???????26??????????5
          Shell????????????????????????3????????70???????47????????14????????9?????????13
          CoffeeScript?????????????????3?????????2????????1?????????0????????1??????????0
          Patch????????????????????????2??????1527?????1430?????????0???????97??????????0
          SQL??????????????????????????2???????921??????847?????????0???????74??????????0
          Nix??????????????????????????1????????20???????19?????????0????????1??????????0
          Zsh??????????????????????????1????????25????????6????????15????????4??????????0
          Fish?????????????????????????1????????10????????1?????????7????????2??????????0
          Dockerfile???????????????????1????????10????????5?????????1????????4??????????0
          BASH?????????????????????????1????????27????????6????????17????????4??????????0
          ───────────────────────────────────────────────────────────────────────────────
          Total?????????????????????4147???1037190???919112?????66894????51184??????38267
          ───────────────────────────────────────────────────────────────────────────────
          Estimated?Cost?to?Develop?$34,924,659
          Estimated?Schedule?Effort?59.194452?months
          Estimated?People?Required?69.888518
          ───────────────────────────────────────────────────────────────────────────────

          scc 速度很快,幾乎瞬間完成。

          這兩個工具的功能類似,但也會有差別。不過 scc 速度快很多,無疑,大家應該會更喜歡 Go 語言實現(xiàn)的 scc。

          scc,又叫做 ?Sloc、Cloc 和 Code,即取這三個單詞的首字母:SCC。scc 是一個非常快速準確的代碼計數(shù)器,具有復雜度計算和 COCOMO 估計,用純 Go 編寫。

          scc 允許查看代碼使用的每種編程語言、行數(shù)、注釋、文件等。這是一個非常快速且有用的工具。大部分語言 scc 都支持,通過 scc --languages 查看支持的語言,目前有 201 種。

          在第一屆 GopherCon AU 上 scc 作者 boyter 作了關(guān)于 scc 設(shè)計和實現(xiàn)的演講,這里有 PPT:https://boyter.org/static/gophercon-syd-presentation/,也有視頻:https://www.youtube.com/watch?v=jd-sjoy3GZo。

          關(guān)于 scc 的更多信息,可以訪問項目首頁查看:https://github.com/boyter/scc。


          如果要統(tǒng)計 2021 年你寫了多少代碼,可能不是簡單地運行 scc 就能搞定,因為多半代碼不是你一個人寫的,可能需要借助 git 輔助。有興趣的小伙伴可以研究研究。

          參考資料

          [1]

          sloccount: https://dwheeler.com/sloccount/



          推薦閱讀


          福利

          我為大家整理了一份從入門到進階的Go學習資料禮包,包含學習建議:入門看什么,進階看什么。關(guān)注公眾號 「polarisxu」,回復?ebook?獲取;還可以回復「進群」,和數(shù)萬 Gopher 交流學習。

          瀏覽 36
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  日韩 国产 在线 | 在线观看一区视频 | 久久影院三极片 | 亚洲人一级电影 | 中文字幕av一区二区三区 |