AVt天堂网 手机版,亚洲va久久久噜噜噜久久4399,天天综合亚洲色在线精品,亚洲一级Av无码毛片久久精品

當(dāng)前位置:首頁 > 科技  > 軟件

我用這十招,減少了80%的BUG

來源: 責(zé)編: 時間:2024-04-19 09:28:58 134觀看
導(dǎo)讀前言對于大部分程序員來說,主要的工作時間是在開發(fā)和修復(fù)BUG。有可能修改了一個BUG,會導(dǎo)致幾個新BUG的產(chǎn)生,不斷循環(huán)。那么,有沒有辦法能夠減少BUG,保證代碼質(zhì)量,提升工作效率?答案是肯定的。如果能做到,我們多出來的時間,多摸

36w28資訊網(wǎng)——每日最新資訊28at.com

前言

對于大部分程序員來說,主要的工作時間是在開發(fā)和修復(fù)BUG。36w28資訊網(wǎng)——每日最新資訊28at.com

有可能修改了一個BUG,會導(dǎo)致幾個新BUG的產(chǎn)生,不斷循環(huán)。36w28資訊網(wǎng)——每日最新資訊28at.com

那么,有沒有辦法能夠減少BUG,保證代碼質(zhì)量,提升工作效率?36w28資訊網(wǎng)——每日最新資訊28at.com

答案是肯定的。36w28資訊網(wǎng)——每日最新資訊28at.com

如果能做到,我們多出來的時間,多摸點魚,做點自己喜歡的事情,不香嗎?36w28資訊網(wǎng)——每日最新資訊28at.com

這篇文章跟大家一起聊聊減少代碼BUG的10個小技巧,希望對你會有所幫助。36w28資訊網(wǎng)——每日最新資訊28at.com

36w28資訊網(wǎng)——每日最新資訊28at.com

1.找個好用的開發(fā)工具

在日常工作中,找一款好用的開發(fā)工具,對于開發(fā)人員來說非常重要。36w28資訊網(wǎng)——每日最新資訊28at.com

不光可以提升開發(fā)效率,更重要的是它可以幫助我們減少BUG。36w28資訊網(wǎng)——每日最新資訊28at.com

有些好的開發(fā)工具,比如:idea中,對于包沒有引入,會在相關(guān)的類上面標(biāo)紅。36w28資訊網(wǎng)——每日最新資訊28at.com

36w28資訊網(wǎng)——每日最新資訊28at.com

并且idea還有自動補全的功能,可以有效減少我們在日常開發(fā)的過程中,有些單詞手動輸入的時候敲錯的情況發(fā)生。36w28資訊網(wǎng)——每日最新資訊28at.com

2.引入Findbugs插件

Findbugs是一款Java靜態(tài)代碼分析工具,它專注于尋找真正的缺陷或者潛在的性能問題,它可以幫助java工程師提高代碼質(zhì)量以及排除隱含的缺陷。36w28資訊網(wǎng)——每日最新資訊28at.com

Findbugs運用Apache BCEL 庫分析類文件,而不是源代碼,將字節(jié)碼與一組缺陷模式進(jìn)行對比以發(fā)現(xiàn)可能的問題。36w28資訊網(wǎng)——每日最新資訊28at.com

可以直接在idea中安裝FindBugs插件:36w28資訊網(wǎng)——每日最新資訊28at.com

36w28資訊網(wǎng)——每日最新資訊28at.com

之后可以選擇分析哪些代碼:36w28資訊網(wǎng)——每日最新資訊28at.com

36w28資訊網(wǎng)——每日最新資訊28at.com

分析結(jié)果:36w28資訊網(wǎng)——每日最新資訊28at.com

36w28資訊網(wǎng)——每日最新資訊28at.com

點擊對應(yīng)的問題項,可以找到具體的代碼行,進(jìn)行修復(fù)。36w28資訊網(wǎng)——每日最新資訊28at.com

36w28資訊網(wǎng)——每日最新資訊28at.com

Findbugs的檢測器已增至300多條,被分為不同的類型,常見的類型如下:36w28資訊網(wǎng)——每日最新資訊28at.com

  • Correctness:這種歸類下的問題在某種情況下會導(dǎo)致bug,比如錯誤的強制類型轉(zhuǎn)換等。
  • Bad practice:這種類別下的代碼違反了公認(rèn)的最佳實踐標(biāo)準(zhǔn),比如某個類實現(xiàn)了equals方法但未實現(xiàn)hashCode方法等。
  • Multithreaded correctness:關(guān)注于同步和多線程問題。
  • Performance:潛在的性能問題。
  • Security:安全相關(guān)。
  • Dodgy:Findbugs團隊認(rèn)為該類型下的問題代碼導(dǎo)致bug的可能性很高。

3.引入CheckStyle插件

CheckStyle作為檢驗代碼規(guī)范的插件,除了可以使用配置默認(rèn)給定的開發(fā)規(guī)范,如Sun、Google的開發(fā)規(guī)范之外,還可以使用像阿里的開發(fā)規(guī)范的插件。36w28資訊網(wǎng)——每日最新資訊28at.com

目前國內(nèi)用的比較多的是阿里的代碼開發(fā)規(guī)范,我們可以直接通過idea下載插件:36w28資訊網(wǎng)——每日最新資訊28at.com

36w28資訊網(wǎng)——每日最新資訊28at.com

如果想檢測某個文件:36w28資訊網(wǎng)——每日最新資訊28at.com

36w28資訊網(wǎng)——每日最新資訊28at.com

可以看到結(jié)果:36w28資訊網(wǎng)——每日最新資訊28at.com

36w28資訊網(wǎng)——每日最新資訊28at.com

阿里巴巴規(guī)約掃描包括:36w28資訊網(wǎng)——每日最新資訊28at.com

  • OOP規(guī)約
  • 并發(fā)處理
  • 控制語句
  • 命名規(guī)約
  • 常量定義
  • 注釋規(guī)范

Alibaba Java Coding Guidelines 專注于Java代碼規(guī)范,目的是讓開發(fā)者更加方便、快速規(guī)范代碼格式。36w28資訊網(wǎng)——每日最新資訊28at.com

該插件在掃描代碼后,將不符合規(guī)約的代碼按 Blocker、Critical、Major 三個等級顯示出來,并且大部分可以自動修復(fù)。36w28資訊網(wǎng)——每日最新資訊28at.com

它還基于Inspection機制提供了實時檢測功能,編寫代碼的同時也能快速發(fā)現(xiàn)問題。36w28資訊網(wǎng)——每日最新資訊28at.com

4.用SonarQube掃描代碼

SonarQube是一種自動代碼審查工具,用于檢測代碼中的錯誤,漏洞和代碼格式上的問題。36w28資訊網(wǎng)——每日最新資訊28at.com

它可以與用戶現(xiàn)有的工作流程集成,以實現(xiàn)跨項目分支和提取請求的連續(xù)代碼檢查,同時也提供了可視化的管理頁面,用于查看檢測出的結(jié)果。36w28資訊網(wǎng)——每日最新資訊28at.com

SonarQube通過配置的代碼分析規(guī)則,從可靠性、安全性、可維護性、覆蓋率、重復(fù)率等方面分析項目,風(fēng)險等級從A~E劃分為5個等級;36w28資訊網(wǎng)——每日最新資訊28at.com

同時,SonarQube可以集成pmd、findbugs、checkstyle等插件來擴展使用其他規(guī)則來檢驗代碼質(zhì)量。36w28資訊網(wǎng)——每日最新資訊28at.com

36w28資訊網(wǎng)——每日最新資訊28at.com

一般推薦它跟Jenkins集成,做成每天定時掃描項目中test分支中的代碼問題。36w28資訊網(wǎng)——每日最新資訊28at.com

5.用Fortify掃描代碼

Fortify 是一款廣泛使用的靜態(tài)應(yīng)用程序安全測試(SAST)工具。36w28資訊網(wǎng)——每日最新資訊28at.com

它具有代碼掃描、漏斗掃描和滲透測試等功能。它的設(shè)計目的是有效地檢測和定位源代碼中的漏洞。36w28資訊網(wǎng)——每日最新資訊28at.com

它能幫助開發(fā)人員識別和修復(fù)代碼中的安全漏洞。36w28資訊網(wǎng)——每日最新資訊28at.com

Fortify的主要功能:36w28資訊網(wǎng)——每日最新資訊28at.com

  • 靜態(tài)代碼分析:它會對源代碼進(jìn)行靜態(tài)分析,找出可能導(dǎo)致安全漏洞的代碼片段。它能識別多種類型的安全漏洞,如 SQL 注入、跨站腳本(XSS)、緩沖區(qū)溢出等。
  • 數(shù)據(jù)流分析:它不僅分析單個代碼文件,還跟蹤應(yīng)用程序的數(shù)據(jù)流。這有助于找到更復(fù)雜的漏洞,如未經(jīng)驗證的用戶輸入在應(yīng)用程序中的傳播路徑。
  • 漏洞修復(fù)建議:發(fā)現(xiàn)潛在的安全漏洞時,它會為開發(fā)人員提供修復(fù)建議。
  • 集成支持:它可以與多種持續(xù)集成(CI)工具(如 Jenkins)和應(yīng)用生命周期管理(ALM)工具(如 Jira)集成,實現(xiàn)自動化的代碼掃描和漏洞跟蹤。
  • 報告和度量:它提供了豐富的報告功能,幫助團隊了解項目的安全狀況和漏洞趨勢。

使用Fortify掃描代碼的結(jié)果:36w28資訊網(wǎng)——每日最新資訊28at.com

36w28資訊網(wǎng)——每日最新資訊28at.com

一般推薦它跟Jenkins集成,定期掃描項目中test分支中的代碼安全問題。36w28資訊網(wǎng)——每日最新資訊28at.com

6.寫單元測試

有些小伙伴可能會問:寫單元測試可以減少代碼的BUG?36w28資訊網(wǎng)——每日最新資訊28at.com

答案是肯定的。36w28資訊網(wǎng)——每日最新資訊28at.com

我之前有同事,使用的測試驅(qū)動開發(fā)模式,開發(fā)一個功能模塊之前,先把單元測試寫好,然后再真正的開發(fā)業(yè)務(wù)代碼。36w28資訊網(wǎng)——每日最新資訊28at.com

后面發(fā)現(xiàn)他寫的代碼速度很快,而且代碼質(zhì)量很高,是一個開發(fā)牛人。36w28資訊網(wǎng)——每日最新資訊28at.com

如果你后期要做系統(tǒng)的代碼重構(gòu),你只是重寫了相關(guān)的業(yè)務(wù)代碼,但業(yè)務(wù)邏輯并沒有修改。36w28資訊網(wǎng)——每日最新資訊28at.com

這時,因為有了之前寫好的單位測試,你會發(fā)現(xiàn)測試起來非常方便。36w28資訊網(wǎng)——每日最新資訊28at.com

可以幫你減少很多BUG。36w28資訊網(wǎng)——每日最新資訊28at.com

7.功能自測

功能自測,是程序員的基本要求。36w28資訊網(wǎng)——每日最新資訊28at.com

但有些程序員自測之后,BUG還是比較多,而有些程序員自測之后,BUG非常少,這是什么原因呢?36w28資訊網(wǎng)——每日最新資訊28at.com

可能有些人比較粗心,有些人比較細(xì)心。36w28資訊網(wǎng)——每日最新資訊28at.com

其實更重要的是測試的策略。36w28資訊網(wǎng)——每日最新資訊28at.com

有些人喜歡把所有相關(guān)的功能都開發(fā)完,然后一起測試。36w28資訊網(wǎng)——每日最新資訊28at.com

這種情況下,相當(dāng)于一個黑盒測試,需要花費大量的時間,梳理業(yè)務(wù)邏輯才能測試完整,大部分情況下,開發(fā)人員是沒法測試完整的,可能會有很多bug測試不出來。36w28資訊網(wǎng)——每日最新資訊28at.com

這種做法是沒有經(jīng)過單元測試,直接進(jìn)行了集成測試。36w28資訊網(wǎng)——每日最新資訊28at.com

看似節(jié)省了很多單元測試的時間,但其實后面修復(fù)BUG的時間可能會花費更多。36w28資訊網(wǎng)——每日最新資訊28at.com

比較推薦的自測方式是:一步一個腳印。36w28資訊網(wǎng)——每日最新資訊28at.com

比如:你寫了一個工具類的一個方法,就測試一下。如果這個方法中,調(diào)用了另外一個關(guān)鍵方法,我們可以先測試一下這個關(guān)鍵方法。36w28資訊網(wǎng)——每日最新資訊28at.com

這樣可以寫出BUG更少的代碼。36w28資訊網(wǎng)——每日最新資訊28at.com

8.自動化測試

有些公司引入了自動化測試的功能。36w28資訊網(wǎng)——每日最新資訊28at.com

有專門的程序,每天都會自動測試,保證系統(tǒng)的核心流程沒有問題。36w28資訊網(wǎng)——每日最新資訊28at.com

因為我們的日常開發(fā)中,經(jīng)常需要調(diào)整核心流程的代碼。36w28資訊網(wǎng)——每日最新資訊28at.com

不可能每調(diào)整一次,都需要把所有的核心流程都測試一遍吧,這樣會浪費大量的時間,而且也容易遺漏一些細(xì)節(jié)。36w28資訊網(wǎng)——每日最新資訊28at.com

如果引入了自動化測試的功能,可以幫助我們把核心流程都測試一下。36w28資訊網(wǎng)——每日最新資訊28at.com

避免代碼重構(gòu),或者修改核心流程,測試時間不夠,或者測試不完全的尷尬。36w28資訊網(wǎng)——每日最新資訊28at.com

自動化測試,可以有效的減少核心流程調(diào)整,或者代碼重構(gòu)中的BUG。36w28資訊網(wǎng)——每日最新資訊28at.com

9.代碼review

很多公司都有代碼review機制。36w28資訊網(wǎng)——每日最新資訊28at.com

我之前也參與多次代碼review的會議,發(fā)現(xiàn)代碼review確實可以找出很多BUG。36w28資訊網(wǎng)——每日最新資訊28at.com

比如:一些代碼的邏輯錯誤,語法的問題,不規(guī)范的命名等。36w28資訊網(wǎng)——每日最新資訊28at.com

這樣問題通過組內(nèi)的代碼review一般可以檢查出來。36w28資訊網(wǎng)——每日最新資訊28at.com

有些國外的大廠,采用結(jié)對編程的模式。36w28資訊網(wǎng)——每日最新資訊28at.com

同一個組的兩個人A和B一起開發(fā),開發(fā)完之后,A reivew B的代碼,同時B review A的代碼。36w28資訊網(wǎng)——每日最新資訊28at.com

因為同組的A和B對項目比較熟,對對方開發(fā)的功能更有了解,可以快速找出對外代碼中的一些問題。36w28資訊網(wǎng)——每日最新資訊28at.com

能夠有效減少一些BUG。36w28資訊網(wǎng)——每日最新資訊28at.com

10.多看別人的踩坑分享

如果你想減少日常工作中的代碼BUG,或者線上事故,少犯錯,少踩坑。36w28資訊網(wǎng)——每日最新資訊28at.com

經(jīng)常看別人真實的踩坑分享,是一個非常不錯的選擇,可以學(xué)到一些別人的工作經(jīng)驗,幫助你少走很多彎路。36w28資訊網(wǎng)——每日最新資訊28at.com

網(wǎng)上有許多博主寫過自己的踩坑記錄,大家可以上網(wǎng)搜一下。36w28資訊網(wǎng)——每日最新資訊28at.com

最后說一句,本文總結(jié)了10種減少代碼BUG的小技巧,但我們要根據(jù)實際情況選擇使用,并非所有的場景都適合。36w28資訊網(wǎng)——每日最新資訊28at.com

本文鏈接:http://www.tebozhan.com/showinfo-26-84023-0.html我用這十招,減少了80%的BUG

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: 用Go語言&&Redis實現(xiàn)分布式鎖,我還是第一次

下一篇: 領(lǐng)域驅(qū)動設(shè)計(DDD)中的應(yīng)用架構(gòu):六邊形、洋蔥、整潔與清晰

標(biāo)簽:
  • 熱門焦點
  • 盧偉冰長文解析K60至尊版 對Redmi有著里程碑式的意義

    在今天的Redmi后性能時代戰(zhàn)略發(fā)布會結(jié)束之后,Redmi總經(jīng)理盧偉冰又帶來了一篇長文,詳解了為什么 Redmi 要開啟后性能時代?為什么選擇和 MediaTek、Pixelworks 深度合作?以及后性
  • 俄羅斯:將審查iPhone等外國公司設(shè)備 保數(shù)據(jù)安全

    iPhone和特斯拉都屬于在各自領(lǐng)域領(lǐng)頭羊的品牌,推出的產(chǎn)品也也都是數(shù)一數(shù)二的,但對于一些國家而言,它們的產(chǎn)品可靠性和安全性還是在限制范圍內(nèi)。近日,俄羅斯聯(lián)邦通信、信息技術(shù)
  • 分布式系統(tǒng)中的CAP理論,面試必問,你理解了嘛?

    對于剛剛接觸分布式系統(tǒng)的小伙伴們來說,一提起分布式系統(tǒng),就感覺高大上,深不可測。而且看了很多書和視頻還是一臉懵逼。這篇文章主要使用大白話的方式,帶你理解一下分布式系統(tǒng)
  • 一篇文章帶你了解 CSS 屬性選擇器

    屬性選擇器對帶有指定屬性的 HTML 元素設(shè)置樣式。可以為擁有指定屬性的 HTML 元素設(shè)置樣式,而不僅限于 class 和 id 屬性。一、了解屬性選擇器CSS屬性選擇器提供了一種簡單而
  • 中國家電海外掘金正當(dāng)時|出海專題

    作者|吳南南編輯|胡展嘉運營|陳佳慧出品|零態(tài)LT(ID:LingTai_LT)2023年,出海市場戰(zhàn)況空前,中國創(chuàng)業(yè)者在海外紛紛摩拳擦掌,以期能夠把中國的商業(yè)模式、創(chuàng)業(yè)理念、戰(zhàn)略打法輸出海外,他們依
  • 東方甄選單飛:有些鳥注定是關(guān)不住的

    文/彭寬鴻編輯/羅卿東方甄選創(chuàng)始人俞敏洪帶隊的“7天甘肅行”直播活動已在近日順利收官。成立后一年多時間里,東方甄選要脫離抖音自立門戶的傳聞不絕于耳,“7
  • 2納米決戰(zhàn)2025

    集微網(wǎng)報道 從三強爭霸到四雄逐鹿,2nm的廝殺聲已然隱約傳來。無論是老牌勁旅臺積電、三星,還是誓言重回先進(jìn)制程領(lǐng)先地位的英特爾,甚至初成立不久的新
  • 朋友圈可以修改可見范圍了 蘋果用戶可率先體驗

    近日,iOS用戶迎來微信8.0.27正式版更新,除了可更換二維碼背景外,還新增了多項實用功能。在新版微信中,朋友圈終于可以修改可見范圍,簡單來說就是已發(fā)布的朋友圈
  • 與兆芯合作 聯(lián)想推出全新旗艦版筆記本電腦開天N7系列

    聯(lián)想與兆芯合作推出全新聯(lián)想旗艦版筆記本電腦開天 N7系列。這個系列采用兆芯KX-6640MA處理器平臺,KX-6640MA 處理器是采用了陸家嘴架構(gòu),16nm 工藝,4 核 4 線
Top