成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

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

開發 開發工具
如果你想減少日常工作中的代碼BUG,或者線上事故,少犯錯,少踩坑。經??磩e人真實的踩坑分享,是一個非常不錯的選擇,可以學到一些別人的工作經驗,幫助你少走很多彎路。

前言

對于大部分程序員來說,主要的工作時間是在開發和修復BUG。

有可能修改了一個BUG,會導致幾個新BUG的產生,不斷循環。

那么,有沒有辦法能夠減少BUG,保證代碼質量,提升工作效率?

答案是肯定的。

如果能做到,我們多出來的時間,多摸點魚,做點自己喜歡的事情,不香嗎?

這篇文章跟大家一起聊聊減少代碼BUG的10個小技巧,希望對你會有所幫助。

1.找個好用的開發工具

在日常工作中,找一款好用的開發工具,對于開發人員來說非常重要。

不光可以提升開發效率,更重要的是它可以幫助我們減少BUG。

有些好的開發工具,比如:idea中,對于包沒有引入,會在相關的類上面標紅。

并且idea還有自動補全的功能,可以有效減少我們在日常開發的過程中,有些單詞手動輸入的時候敲錯的情況發生。

2.引入Findbugs插件

Findbugs是一款Java靜態代碼分析工具,它專注于尋找真正的缺陷或者潛在的性能問題,它可以幫助java工程師提高代碼質量以及排除隱含的缺陷。

Findbugs運用Apache BCEL 庫分析類文件,而不是源代碼,將字節碼與一組缺陷模式進行對比以發現可能的問題。

可以直接在idea中安裝FindBugs插件:

之后可以選擇分析哪些代碼:

分析結果:

點擊對應的問題項,可以找到具體的代碼行,進行修復。

Findbugs的檢測器已增至300多條,被分為不同的類型,常見的類型如下:

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

3.引入CheckStyle插件

CheckStyle作為檢驗代碼規范的插件,除了可以使用配置默認給定的開發規范,如Sun、Google的開發規范之外,還可以使用像阿里的開發規范的插件。

目前國內用的比較多的是阿里的代碼開發規范,我們可以直接通過idea下載插件:

如果想檢測某個文件:

可以看到結果:

阿里巴巴規約掃描包括:

  • OOP規約
  • 并發處理
  • 控制語句
  • 命名規約
  • 常量定義
  • 注釋規范

Alibaba Java Coding Guidelines 專注于Java代碼規范,目的是讓開發者更加方便、快速規范代碼格式。

該插件在掃描代碼后,將不符合規約的代碼按 Blocker、Critical、Major 三個等級顯示出來,并且大部分可以自動修復。

它還基于Inspection機制提供了實時檢測功能,編寫代碼的同時也能快速發現問題。

4.用SonarQube掃描代碼

SonarQube是一種自動代碼審查工具,用于檢測代碼中的錯誤,漏洞和代碼格式上的問題。

它可以與用戶現有的工作流程集成,以實現跨項目分支和提取請求的連續代碼檢查,同時也提供了可視化的管理頁面,用于查看檢測出的結果。

SonarQube通過配置的代碼分析規則,從可靠性、安全性、可維護性、覆蓋率、重復率等方面分析項目,風險等級從A~E劃分為5個等級;

同時,SonarQube可以集成pmd、findbugs、checkstyle等插件來擴展使用其他規則來檢驗代碼質量。

一般推薦它跟Jenkins集成,做成每天定時掃描項目中test分支中的代碼問題。

5.用Fortify掃描代碼

Fortify 是一款廣泛使用的靜態應用程序安全測試(SAST)工具。

它具有代碼掃描、漏斗掃描和滲透測試等功能。它的設計目的是有效地檢測和定位源代碼中的漏洞。

它能幫助開發人員識別和修復代碼中的安全漏洞。

Fortify的主要功能:

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

使用Fortify掃描代碼的結果:

一般推薦它跟Jenkins集成,定期掃描項目中test分支中的代碼安全問題。

6.寫單元測試

有些小伙伴可能會問:寫單元測試可以減少代碼的BUG?

答案是肯定的。

我之前有同事,使用的測試驅動開發模式,開發一個功能模塊之前,先把單元測試寫好,然后再真正的開發業務代碼。

后面發現他寫的代碼速度很快,而且代碼質量很高,是一個開發牛人。

如果你后期要做系統的代碼重構,你只是重寫了相關的業務代碼,但業務邏輯并沒有修改。

這時,因為有了之前寫好的單位測試,你會發現測試起來非常方便。

可以幫你減少很多BUG。

7.功能自測

功能自測,是程序員的基本要求。

但有些程序員自測之后,BUG還是比較多,而有些程序員自測之后,BUG非常少,這是什么原因呢?

可能有些人比較粗心,有些人比較細心。

其實更重要的是測試的策略。

有些人喜歡把所有相關的功能都開發完,然后一起測試。

這種情況下,相當于一個黑盒測試,需要花費大量的時間,梳理業務邏輯才能測試完整,大部分情況下,開發人員是沒法測試完整的,可能會有很多bug測試不出來。

這種做法是沒有經過單元測試,直接進行了集成測試。

看似節省了很多單元測試的時間,但其實后面修復BUG的時間可能會花費更多。

比較推薦的自測方式是:一步一個腳印。

比如:你寫了一個工具類的一個方法,就測試一下。如果這個方法中,調用了另外一個關鍵方法,我們可以先測試一下這個關鍵方法。

這樣可以寫出BUG更少的代碼。

8.自動化測試

有些公司引入了自動化測試的功能。

有專門的程序,每天都會自動測試,保證系統的核心流程沒有問題。

因為我們的日常開發中,經常需要調整核心流程的代碼。

不可能每調整一次,都需要把所有的核心流程都測試一遍吧,這樣會浪費大量的時間,而且也容易遺漏一些細節。

如果引入了自動化測試的功能,可以幫助我們把核心流程都測試一下。

避免代碼重構,或者修改核心流程,測試時間不夠,或者測試不完全的尷尬。

自動化測試,可以有效的減少核心流程調整,或者代碼重構中的BUG。

9.代碼review

很多公司都有代碼review機制。

我之前也參與多次代碼review的會議,發現代碼review確實可以找出很多BUG。

比如:一些代碼的邏輯錯誤,語法的問題,不規范的命名等。

這樣問題通過組內的代碼review一般可以檢查出來。

有些國外的大廠,采用結對編程的模式。

同一個組的兩個人A和B一起開發,開發完之后,A reivew B的代碼,同時B review A的代碼。

因為同組的A和B對項目比較熟,對對方開發的功能更有了解,可以快速找出對外代碼中的一些問題。

能夠有效減少一些BUG。

10.多看別人的踩坑分享

如果你想減少日常工作中的代碼BUG,或者線上事故,少犯錯,少踩坑。

經??磩e人真實的踩坑分享,是一個非常不錯的選擇,可以學到一些別人的工作經驗,幫助你少走很多彎路。

網上有許多博主寫過自己的踩坑記錄,大家可以上網搜一下。

最后說一句,本文總結了10種減少代碼BUG的小技巧,但我們要根據實際情況選擇使用,并非所有的場景都適合。

責任編輯:姜華 來源: 蘇三說技術
相關推薦

2021-02-06 14:05:29

代碼語言bug

2020-04-13 08:46:22

MongoDBES服務器

2025-04-10 09:32:23

2024-07-17 08:25:44

2022-03-08 14:02:35

GuavaMapjava

2020-11-26 06:29:20

代碼非業務程序員

2019-06-14 08:48:46

Tomcat日志SpringBoot

2022-02-03 23:55:26

Windows 10電腦性能

2011-08-03 13:04:54

2014-07-28 16:13:19

Gitlinux開源

2020-04-14 08:40:50

碼農bug編程

2020-02-28 08:00:13

網絡安全黑客網絡攻擊

2012-06-06 09:33:00

存儲虛擬化

2022-07-03 16:28:55

加密貨幣數字資產數據

2012-09-24 11:06:39

社交產品創業創業秘訣

2016-08-23 00:15:28

2025-01-14 12:00:00

Java開發代碼

2025-02-28 13:00:00

JavaScrip開發語言

2022-11-16 09:57:23

優化接口

2020-02-20 11:16:58

Python數據函數
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 草逼网站 | 亚洲一区视频在线播放 | 亚洲欧美在线视频 | 久久精品二区 | 久久国产精品一区二区三区 | 一级做a爰片性色毛片 | 欧美成人一区二区 | 久久久久久综合 | 欧美日日日日bbbbb视频 | 亚洲精品国产综合区久久久久久久 | 欧美一二三四成人免费视频 | 在线资源视频 | 久久视频精品在线 | 色婷婷av一区二区三区软件 | 91激情视频 | 少妇无套高潮一二三区 | 久久免费精品 | 欧美一级特黄aaa大片在线观看 | 在线一区二区三区 | 亚洲三区在线观看 | 91精品国产综合久久久密闭 | 国产大学生情侣呻吟视频 | 91麻豆精品国产91久久久更新资源速度超快 | 日本电影免费完整观看 | 狠狠干天天干 | av毛片在线播放 | 欧美日韩国产在线观看 | 在线成人福利 | 日韩精品一区二区三区在线播放 | 91视频在线网站 | 成人免费看电影 | 日韩有码一区二区三区 | 亚洲视频免费在线观看 | 日日摸日日碰夜夜爽2015电影 | 91精品久久久久久久久久 | 一区二区三区四区在线视频 | 黑人巨大精品欧美一区二区一视频 | 国产日韩欧美中文字幕 | 欧美激情在线一区二区三区 | 天天澡天天狠天天天做 | 狠狠色综合欧美激情 |