<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 年你寫了多少代碼?這個(gè) Go 工具幫你統(tǒng)計(jì)

          共 6464字,需瀏覽 13分鐘

           ·

          2021-12-31 09:30

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

          大家好,我是 polarisxu。

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

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

          本文簡單對比兩個(gè)工具:cloc 和 scc。

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

          $?brew?install?cloc?scc

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

          使用這兩個(gè)工具統(tǒng)計(jì) github.com/studygolang/studygolang 項(xiàng)目。

          $?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)計(jì)花了近 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 速度很快,幾乎瞬間完成。

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

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

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

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

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


          如果要統(tǒng)計(jì) 2021 年你寫了多少代碼,可能不是簡單地運(yùn)行 scc 就能搞定,因?yàn)槎喟氪a不是你一個(gè)人寫的,可能需要借助 git 輔助。有興趣的小伙伴可以研究研究。

          參考資料

          [1]

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




          往期推薦


          我是 polarisxu,北大碩士畢業(yè),曾在 360 等知名互聯(lián)網(wǎng)公司工作,10多年技術(shù)研發(fā)與架構(gòu)經(jīng)驗(yàn)!2012 年接觸 Go 語言并創(chuàng)建了 Go 語言中文網(wǎng)!著有《Go語言編程之旅》、開源圖書《Go語言標(biāo)準(zhǔn)庫》等。


          堅(jiān)持輸出技術(shù)(包括 Go、Rust 等技術(shù))、職場心得和創(chuàng)業(yè)感悟!歡迎關(guān)注「polarisxu」一起成長!也歡迎加我微信好友交流:gopherstudio


          瀏覽 58
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <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>
                  91人爽 | 亚洲欧洲欧美日韩中文字幕 | 国产色视频在线看 | 亚洲中文无码视 | 中文字幕欧美色图 |