【Teams】如何使用sonarqube(docker版)掃描dotnet core版本的Teams項目的代碼質量

        作爲碼農,日常幹得最多的事兒就是coding(小聲:debugging),那完成功能後,一般流程我們需要code review(衡量代碼質量的一種方式便是會議上sh*t的數量了)。那爲了減少code review時被噴的次數,減小我們幼小心靈的創傷,我們最好提前消滅掉醜陋的代碼。

        正好前兩天閱讀Teams的一款應用源代碼的時候,想着能拿着它掃描一把,看會不會發現一些可以改進的地方,順便介紹下我使用的方法和工具。

        環境準備(在Mac上操作,win上大家自行變通,玩法相通):

  1. dotnet core環境:.NET Core SDK 3.1.101
  2. visual studio code:1.44.0
  3. docker(基於docker運行sonarqube鏡像):version 19.03.5, build 633a0ea(docker desktop version 2.1.0.5)
  4. java:version "13-ea" 2019-09-17

        以上便是需要的環境。接下來簡單介紹下具體步驟(我們省略掉寫代碼的過程,直接分析代碼),今天直接分析開源Teams項目lucky draw的源代碼(https://github.com/Office365DevOps/lucky-draw-bot,自行克隆,如有興趣,也可PR,歡迎大家推廣使用這款Teams應用,自己用過,感覺很香)

  • 安裝sonarqube的dotnet版本scanner,戳這裏。確認安裝成功。
  • docker拉取sonarqube鏡像(默認latest tag就可以)
  • docker中運行sonarqube的鏡像:
    網頁中打開sonarqube的portal
  • 用戶名密碼都爲admin,登入。
  • 點擊右上角創建項目
  • 輸入key和項目名稱(這裏就輸入lucky-draw-bot)
  • 輸入名稱(init-token)生成token,用戶後續sonarqube分析數據並上傳到sonarqube的portal(localhost:8888)

生成token後,點擊continue按鈕,進入下一步,準備分析項目(大家忽略sonarqube的端口,我自己啓了兩個,大家玩的時候,用一個就好了),如下:

當然這裏是針對msbuild生成的腳本語句,對於我們的dotnetcore項目,使用我們第一步安裝的dotnetcore版本的scanner,所以對應的語句應該依次爲:
1)

dotnet-sonarscanner begin /k:"bot" /d:sonar.host.url="http://localhost:8888" /d:sonar.login="8587694913910d903290a98a75607f2e7bf1c642"

2) 

dotnet build

3) 

dotnet-sonarscanner end /d:sonar.login="8587694913910d903290a98a75607f2e7bf1c642"
  • run完以上語句後,刷新sonarqube的項目,則會出現對應的分析數據,包括code smells,test coverage(如果有的話),還有其他相關指標


    上面分析結果我們可以看出很多問題,及時修復。比如代碼的複雜度也可以通過已有規則掃描出來(也可以自定義規則,自行某度),這樣我們就可以在code review時少被diss,其實code review是大家一起審視代碼,這裏只是將表明顯的問題提前暴露出來,及時fix,並不能完全代替code review。


    其實,通過sonarqube的scanner,會在根目錄下生成一系列分析文件,也就是說,不用sonarqube也能看出來一系列warning,sonarqube的portal可以分析這些讀起來不怎麼友好的文件,再生成report/便於查看的形式,提高fix的效率。


總結:今天主要跟大家介紹這個掃描工具,日後大家如果開發Teams應用,也可以及時使用它來掃描代碼質量,對日後迭代可以起到很重要的作用。後續還有什麼工具可以幫助我們開發Teams應用,我也會分享出來。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章