<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>

          7個頂級靜態(tài)代碼分析工具

          共 3596字,需瀏覽 8分鐘

           ·

          2021-12-28 13:45

          作者丨Saif Sadiq 來自:infoQ策劃丨田曉旭

          靜態(tài)代碼分析或源代碼分析是指使用靜態(tài)代碼分析工具對軟件的“靜態(tài)”(不運行的) 代碼進行分析的一種方法,找出代碼中潛在的漏洞。靜態(tài)代碼分析器檢查源代碼,找出特定的漏洞,并檢查代碼是否符合各種編碼標(biāo)準(zhǔn)。

          1為什么要進行靜態(tài)代碼分析?
          • 在執(zhí)行代碼之前獲取代碼洞見;

          • 與動態(tài)分析相比,執(zhí)行速度更快;

          • 可以對代碼質(zhì)量維護進行自動化;

          • 在早期階段 (盡管不是所有階段) 可以自動檢索 bug;

          • 在早期階段可以自動發(fā)現(xiàn)安全問題;

          • 如果你在使用帶有靜態(tài)分析器的 IDE(例如遵循 PEP8 的 Pycharm),那你已經(jīng)在“船”上了。

          在知道了什么是靜態(tài)代碼分析之后,接下來就有必要了解一下市場上有哪些好用的靜態(tài)代碼分析工具。廢話不多說,讓我們來看看現(xiàn)在比較流行的靜態(tài)代碼分析工具。

          2DeepSource

          DeepSource 可以幫你在代碼評審期間自動發(fā)現(xiàn)并修復(fù)代碼中的問題。它可以與 Bitbucket、GitHub 或 GitLab 帳戶集成。這個工具可以找出反模式、bug 風(fēng)險、性能問題。DeepSource 還會生成并跟蹤各種指標(biāo)(例如依賴項計數(shù)、文檔覆蓋率等)。分析器先發(fā)現(xiàn)文件級別的問題 (如在特定位置發(fā)現(xiàn)反模式),并進一步發(fā)現(xiàn)代碼庫級別的問題 (如發(fā)現(xiàn)有些依賴項沒有安裝)。DeepSource Autofix 會為檢測到的問題提出修復(fù)建議,并創(chuàng)建一個修復(fù)的拉取請求。

          https://deepsource.io

          ?關(guān)鍵特性
          • 單個文件配置;

          • 對拉取請求進行質(zhì)量檢查;問題頻譜;

          • 維護活躍度分析器;

          • 可以詳細(xì)了解每一個問題;

          • 跟蹤代碼指標(biāo);

          • 定制分析,可以忽略掉一些問題;

          • 分析器可以為經(jīng)常發(fā)生的問題提出修復(fù)建議,如果允許的話,它們還可以創(chuàng)建修復(fù)過的拉取請求;

          • 對每個代碼提交和拉取請求進行 Black、YAPF、Go fmt 等代碼格式化。不需要進行 CI 設(shè)置。

          ?缺點

          不支持 PHP。

          ?支持的語言

          Python、JavaScript、Go、Ruby、Java、Docker、SQL、Terraform、Shell,以及 TestIdentify 和修復(fù) bug 風(fēng)險、提交代碼中的反模式、性能問題和安全缺陷。

          ?定價

          開源項目、學(xué)生和非營利組織可以免費使用。付費用戶從 12 美元 / 月起算。

          3SonarQube

          SonarQube 是一種很流行的靜態(tài)分析工具,用于持續(xù)檢查代碼庫的代碼質(zhì)量和安全性,并在代碼評審期間指導(dǎo)開發(fā)團隊。SonarQube 可與 CI/CD 集成,進行自動化代碼檢查。它還提供了質(zhì)量管理工具幫你主動糾正錯誤:IDE 集成、Jenkins 集成和代碼評審工具。

          https://www.sonarqube.org

          ?關(guān)鍵特性
          • 多語言支持;

          • 安全性分析;

          • 發(fā)布質(zhì)量代碼;

          • 可維護性;

          • 可以識別蹊蹺的問題。

          ?缺點
          • 并不是每個 IDE 都支持 SonarQube;

          • 不能選擇忽略團隊不需要去修復(fù)的問題。

          ?支持的語言

          25 種以上的編程語言,包括 Java、C#、JavaScript、TypeScript、C/C++、COBOL 及其他。

          ?定價

          社區(qū)版是免費和開源的。商業(yè)版起步價為 120 歐元。

          4Codacy

          Codacy()是一個靜態(tài)分析工具,可以幫助開發(fā)人員處理技術(shù)債務(wù)并提高代碼質(zhì)量。Codacy 監(jiān)控每一次代碼提交和 PR 的代碼質(zhì)量。你可以用它來加強代碼質(zhì)量標(biāo)準(zhǔn),加強安全實踐,并節(jié)省代碼評審時間。

          https://www.codacy.com

          ?關(guān)鍵特性
          • 代碼評審自動化;

          • 代碼質(zhì)量分析;

          • 安全代碼分析;

          • 集群安裝 / 多個實例。

          ?缺點
          • 缺乏與其他 SaaS 服務(wù)集成 (Sonatype、Blackduck、AWS API 網(wǎng)關(guān)的 API QOS 指標(biāo)或 UI/E2E SaaS 測試服務(wù)) 的能力;

          • 無法加密項目信息或限制對源代碼的訪問;

          • 社區(qū)相對較小。

          ?支持的語言

          30 多種語言,包括 Elixir、Go、Java、JavaScript、JSON、Kotlin、Python、Ruby、Scala、Swift、TypeScript 等等。

          ?定價

          對開源免費,付費用戶起步價為 15 美元 / 月。

          5DeepScan

          DeepScan 是一個支持 JavaScript、TypeScript、React 和 Vue.js 的靜態(tài)分析工具。你可以使用 DeepScan 來查找部分運行時錯誤和質(zhì)量問題,而不只是編碼風(fēng)格問題。將 DeepScan 與你的 GitHub 代碼庫集成起來,以此來發(fā)現(xiàn)項目的質(zhì)量問題。

          https://deepscan.io

          ?關(guān)鍵特性
          • 缺陷跟蹤;

          • 自動化構(gòu)建;

          • 代碼評審;

          • 協(xié)作;

          • 持續(xù)集成。

          ?缺點

          有限的語言支持。

          ?支持的語言

          JavaScript、TypeScript、React 和 Vue.js。

          ?定價

          對開源免費,付費用戶起步價為 9 美元 / 月。

          6Embold

          Embold是一個通用的靜態(tài)分析器,可以幫助開發(fā)人員在關(guān)鍵代碼問題成為障礙之前把它們找出來。它是一個有效診斷、轉(zhuǎn)換和維護應(yīng)用程序的得力工具。它集成了人工智能和機器學(xué)習(xí)技術(shù),可以找出一級問題,提供最佳解決方案,并在必要時重構(gòu)應(yīng)用程序。你可以在已有的 DevOps 技術(shù)棧中使用它,可以在內(nèi)部使用,也可以在私有云和公共云中使用它。

          https://embold.io

          ?關(guān)鍵特性
          • 直觀的 UI;

          • 更深入和更快的代碼檢查;

          • 智能地提高性能;

          • 無縫集成。

          ?缺點

          價格相對較高。

          ?支持的語言

          Java、C、C++、C#、Objective-C、TypeScript、JavaScript、Python、PHP、Go、Kotlin、Solidity、SQL。

          ?定價

          對開源免費,付費用戶每月 10 歐元。

          7Veracode

          Veracode 是一種流行的靜態(tài)代碼分析工具。它只針對安全問題,跨管道執(zhí)行代碼檢查,以便發(fā)現(xiàn)安全漏洞,并將 IDE 掃描、管道掃描和策略掃描作為其服務(wù)的一部分。它會創(chuàng)建用于審計的代碼評估,作為程序的一部分。

          https://www.veracode.com/products/binary-static-analysis-sast

          ?關(guān)鍵特性
          • 編碼時的安全性問題反饋;

          • 在管道中快速獲得結(jié)果;

          • 令人滿意的審計能力;

          • 不需要調(diào)整就可以獲得高精確度;

          • 專注于修復(fù)問題。

          ?缺點
          • 不支持自定義掃描規(guī)則;

          • 用戶體驗不是很好。

          ?支持的語言

          Java、.Net、JavaScript、Scala、Python、PHP、Ruby on Rails、ColdFusion、Swift、C/C++、COBOL、Visual Basic 6、RPG,等等。

          ?定價

          基于項目的規(guī)模定價,你可以在官網(wǎng)上提交表單來獲取報價。

          8Reshift

          Reshift 是一個基于 SaaS 的軟件平臺,它無縫地集成到軟件開發(fā)工作流中,讓企業(yè)可以持續(xù)地部署安全的軟件產(chǎn)品,而不會減慢它們的速度。Reshift 減少了查找和修復(fù)漏洞、識別數(shù)據(jù)泄露的潛在風(fēng)險以及幫助軟件公司實現(xiàn)合規(guī)性和法規(guī)要求的成本和時間。

          https://www.reshiftsecurity.com

          ?關(guān)鍵特性
          • 快速配置;

          • 安全性掃描;

          • 安全性職責(zé)。

          ?缺點

          不支持 Java 以外的語言。

          ?支持的語言

          Java

          ?定價

          對開源免費,付費用戶起步價是每月 99 美元。

          原文鏈接
          https://dzone.com/articles/top-7-static-code-analysis-tools


          PS:如果覺得我的分享不錯,歡迎大家隨手點贊、在看。

          ?關(guān)注公眾號:Java后端編程,回復(fù)下面關(guān)鍵字?


          要Java學(xué)習(xí)完整路線,回復(fù)??路線?

          缺Java入門視頻,回復(fù)?視頻?

          要Java面試經(jīng)驗,回復(fù)??面試?

          缺Java項目,回復(fù):?項目?

          進Java粉絲群:?加群?


          PS:如果覺得我的分享不錯,歡迎大家隨手點贊、在看。

          (完)




          加我"微信"?獲取一份 最新Java面試題資料

          請備注:666,不然不通過~


          最近好文


          1、Kafka 3.0重磅發(fā)布,棄用 Java 8 的支持!

          2、你只會用 ! = null 判空?嘿嘿!

          3、這次,Swagger-ui遇到對手了!

          4、一個基于Spring Boot+Vue+Redis的物聯(lián)網(wǎng)智能家居系統(tǒng)

          5、本機號碼一鍵登錄原理與應(yīng)用



          最近面試BAT,整理一份面試資料Java面試BAT通關(guān)手冊,覆蓋了Java核心技術(shù)、JVM、Java并發(fā)、SSM、微服務(wù)、數(shù)據(jù)庫、數(shù)據(jù)結(jié)構(gòu)等等。
          獲取方式:關(guān)注公眾號并回復(fù)?java?領(lǐng)取,更多內(nèi)容陸續(xù)奉上。
          明天見(??ω??)?
          瀏覽 77
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

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

          手機掃一掃分享

          分享
          舉報
          <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>
                  中国婬乱a| 靠逼无码 | 91综合网 | 先锋影音成人在线 | 国产精品久久久久久久久久 |