【廣告】
SonarSource
代碼質(zhì)量是一個(gè)不斷增長(zhǎng)的市場(chǎng),中國(guó)sonarqube規(guī)則, 它是分析師對(duì)其大規(guī)模采用和大量投資回報(bào)的雷達(dá)。
介紹麥凱布的圈復(fù)雜度長(zhǎng)期以來(lái)一直是事實(shí)上的標(biāo)準(zhǔn)測(cè)量方法的控制流的復(fù)雜性。它的目的是 "確定軟件模塊將很難測(cè)試或維護(hù) "[1],代理商sonarqube規(guī)則, 但當(dāng)它準(zhǔn)確地計(jì)算xiao的測(cè)試用例需要完全覆蓋的方法, 它不是一個(gè)令人滿意的測(cè)量理解。這是因?yàn)榫哂邢嗟热?fù)雜度的方法不一定存在同樣的困難, 維護(hù), 導(dǎo)致一種感覺,測(cè)量 "啼狼" 由 over-valuing 一些結(jié)構(gòu), 而 under-valuing 其他構(gòu)造.同時(shí), 圈復(fù)雜度不再是全mian的。制定的Fortran 環(huán)境在 1976年, 它不包括現(xiàn)代語(yǔ)言結(jié)構(gòu), 如嘗試/捕zhuo,和 lambda。后, 因?yàn)槊總€(gè)方法都有一個(gè)xiao的圈復(fù)雜度得分, 它是不可能知道任何具有高聚合圈復(fù)雜度的給定類是否一個(gè)大的、易于維護(hù)的域類, 或一個(gè)具有復(fù)雜控制流的小類。在類級(jí)別之外, 人們普遍承認(rèn), 圈復(fù)雜度的分?jǐn)?shù)應(yīng)用程序與它們的代碼總計(jì)行相關(guān)聯(lián)。換言之, 圈復(fù)雜度是在方法級(jí)別上很少使用。作為對(duì)這些問題的一種補(bǔ)救, 認(rèn)知復(fù)雜性已經(jīng)被制定來(lái)解決現(xiàn)代語(yǔ)言結(jié)構(gòu), 并產(chǎn)生的價(jià)值是有意義的類和應(yīng)用程序級(jí)別。更重要的是, 它背離了基于數(shù)學(xué)模型, 使其能夠產(chǎn)生控制流的評(píng)估, 對(duì)應(yīng)于程序員的直覺的精神, 或認(rèn)知的努力, 需要了解這些流動(dòng).
SonarSource
如果您想知道項(xiàng)目使用的內(nèi)部或外部庫(kù),則可能需要查看項(xiàng)目的內(nèi)容,包括pom.xml文件。如果您使用SonarQube,則不再是這種情況,因?yàn)閹?kù)是一種組件,它會(huì)招募您的應(yīng)用程序所依賴的組件,并且比手動(dòng)搜索。
(以上是示例應(yīng)用程序的截圖)
也可以在任何儀表板上添加任何Widget(Widget是組成儀表板的組件),如下所示。
(以上是示例應(yīng)用程序的截圖)
問題向下鉆
只是被告知某事是錯(cuò)誤的,這里的分?jǐn)?shù)是多少錯(cuò)誤或不正確的東西,沒有幫助。一個(gè)更有建設(shè)性的反饋是,這里有什么問題,這是你可以做些什么來(lái)解決它。
問題鉆取是一個(gè)這樣的儀表板,我們可以找到這樣的信息或足以知道什么是錯(cuò)誤,以及如何去修復(fù)它(有時(shí))。它還存檔較舊的和封閉的問題,并通過給出各種嚴(yán)重程度來(lái)表明問題是多么糟糕,即阻止信息。
(以上是nemo.sonarsource.org上的示例應(yīng)用程序的截圖)
任何Dashboard頁(yè)面右上角的“管理信息中心”選項(xiàng)(如下)用于創(chuàng)建可以放置小部件的新的信息中心頁(yè)面。
同樣,每個(gè)“儀表板”頁(yè)面上的“配置”窗口小部件鏈接允許在“儀表板”頁(yè)面的任何位置添加,刪除或更改窗口小部件的位置。
(以上是Apache Comm Collection的截圖)
標(biāo)簽或詞云是一種非常受歡迎的概念,被大量用作可視化形式來(lái)傳達(dá)指標(biāo) - 如上所示,這是Apache Comm Collection庫(kù)的一個(gè)例證。
商業(yè)組件 - SQALE
SQALE是一個(gè)專有組件,社區(qū)版本不可用,盡管SonarQube的Nemo項(xiàng)目[07]提供了演示版本。 SQALE是一項(xiàng)技術(shù)債wu評(píng)估工具,更多細(xì)節(jié)可以在[08]找到。
SonarLint –為 c#、VB.NET、Java、Javascript、PHP 和 Python 提供一個(gè)免費(fèi)的靜態(tài)分析工具5月3日, 2017Code 質(zhì)量, 評(píng)論, Toolingsonar 皮棉, 視覺工作室這是一個(gè). NET 的重點(diǎn)帖子。
很高興看到人們正在構(gòu)建的東西, 現(xiàn)在 c# 編譯器是開源的。我們實(shí)際上是在工具中游泳, 這不是一件壞事, 但我需要考慮我的開發(fā)管道中有多少工具。我目前在日常工作中使用 ReSharper 和前綴。NDepend 和 PVS-工作室每周一次的基礎(chǔ)上,代理商sonarqube規(guī)則, 但只在個(gè)人和開源項(xiàng)目。我可以在混合中添加另一個(gè)嗎?確保!這不是侵入性的, 不會(huì)與 ReSharper 或 VS 代碼提示沖突。在報(bào)告代碼相關(guān)問題的方式上也有一些輕微的幽默。
通過 IDE 的用法
使用此工具的選項(xiàng)尚未更改, 但它支持三shou歡迎的 IDE 的:
IntelliJ視覺工作室蝕全mian的語(yǔ)言支持來(lái)自 IntelliJ 和 Eclipse 的 IDE。如果您使用的是 Visual Studio (VS), 那么您將得到一個(gè)很好的 c# 和 VB.NET 規(guī)則集。
您也可以在命令行中使用它, 這對(duì)于連續(xù)生成管線來(lái)說是的。需要通過 MSBuild 進(jìn)行分析, 因?yàn)樗鼈兊拿钚泄ぞ弋?dāng)前未按廣告方式工作。運(yùn)行分析是很容易的, 而且我可以在構(gòu)建的末尾處理一個(gè) XML 文件, 以生成報(bào)告或存儲(chǔ)某處以便隨著時(shí)間的推移進(jìn)行分析。需要注意的一點(diǎn)是, XML 報(bào)告將在每個(gè)項(xiàng)目目錄中生成一次。
msbuild MySolution.sln/p: RunCodeAnalysis = true/p: CodeAnalysisLogFile = MyXmlReport. xml1msbuild MySolution.sln/p: RunCodeAnalysis = true/p: CodeAnalysisLogFile = MyXmlReport. xml與 Visual Studio 中的規(guī)則交互
有一個(gè)廣泛的214規(guī)則 c# 和62的 VB.NET, 雖然它們不是所有的默認(rèn)啟用??梢詫?duì)規(guī)則進(jìn)行定制, 以便為一個(gè)項(xiàng)目運(yùn)行一個(gè)規(guī)則集, 并為另一個(gè)項(xiàng)目設(shè)置另一個(gè)規(guī)則集, 我將在短期內(nèi)解釋。
在真正的 VS 時(shí)尚代碼, 違反了其中的一個(gè)規(guī)則得到一個(gè)彎曲線下面的代碼行, 然后可以處理通過按 ctrl 。還有漂亮的功能,河北sonarqube規(guī)則, 這是新的 VS2017, 它使工作與分析儀更愉快。它不僅允許我修復(fù)當(dāng)前正在查看的問題, 而且還可以解決相同的問題文檔、項(xiàng)目或解決方案。很好。
正如您在下面所看到的, 還有用于禁止規(guī)則的選項(xiàng)。您可以內(nèi)聯(lián)或在它為您創(chuàng)建的全局抑制文件中執(zhí)行此項(xiàng)。
# 雜注指令還有一個(gè)說明作為注釋, 它可能對(duì)其他開發(fā)人員有幫助。通常我需要查找雜注代碼, 所以這是一個(gè)不錯(cuò)的 VS 功能, 提高了整個(gè)開發(fā)人員的經(jīng)驗(yàn)。
我真正喜歡的另一個(gè)特性是, 這些警告給出了一個(gè)簡(jiǎn)短的段落, 解釋了規(guī)則沖突背后的原因。這個(gè)特別的警告是真正引起共鳴的東西, 因?yàn)槲也幌矚g注釋代碼。應(yīng)刪除死代碼。如果有機(jī)會(huì), 你認(rèn)為你會(huì)需要它后, 那么沒有問題, 這就是源代碼管理的是!
如果您需要完整的規(guī)則列表, 我發(fā)現(xiàn)聯(lián)機(jī)幫助非常有用, 因?yàn)槟梢酝ㄟ^各種帶有標(biāo)記的規(guī)則類型進(jìn)行篩選。
定制規(guī)則
與 VS works 的代碼分析方式保持一致, 您可以通過右鍵單擊分析器節(jié)點(diǎn) inVS 并選擇 "打開活動(dòng)規(guī)則集" 來(lái)訪問規(guī)則列表。
從那里, 規(guī)則集只是另一個(gè)類別節(jié)點(diǎn)。如果您想了解有關(guān)定制規(guī)則集的更多信息, 我有一個(gè)關(guān)于 Visual Studio 代碼分析的博客文章, 它將在更深入地進(jìn)行。
一個(gè)知道的陷阱
我無(wú)法得到規(guī)則運(yùn)行在構(gòu)建和不斷得到這個(gè)錯(cuò)誤。
警告 CA0064: 由于無(wú)法加載指ding的規(guī)則集或不包含任何托管代碼分析規(guī)則, 因此未執(zhí)行任何分析。
我確實(shí)在 SonarLint 谷歌集團(tuán)發(fā)布了一個(gè)問題, 但據(jù)我所知, 它是孤立于我的機(jī)器。如果發(fā)生這種情況, 您需要添加分析器程序集 SonarAnalyzer.CSharp.dll, 如下所示。
如果希望分析在生成時(shí)運(yùn)行, 請(qǐng)通過 "項(xiàng)目屬性" 并單擊 "在生成時(shí)啟用代碼分析", 在每個(gè)項(xiàng)目基礎(chǔ)上啟用分析。
企業(yè): 蘇州華克斯信息科技有限公司
手機(jī): 13862561363
電話: 0512-62382981
地址: 蘇州工業(yè)園區(qū)新平街388號(hào)