從錯誤中學習

FunTester發表於2021-10-26

前兩天在推上看到馬斯克發了一張圖,主題是從錯誤中學習,如下:

從錯誤中學習

讀完有點感觸,想起最近在重新用到的 Java 靜態測試工具SpotBugs,昨天聽組內技術分享,突然想起來這個工具了,有興趣的可以看看Intellij 靜態程式碼掃描外掛 SpotBugs

為什麼要說這個外掛呢,因為它本身能發現專案中大量不規範或者非最佳實踐的程式碼,堪稱程式碼 BUG 的百科全書,一般千行程式碼的不規範點都在 10 以上,當然其中大部分都是重複的。還有他能檢測出很多的效能問題,雖然都是小問題,比如冗餘的程式碼呼叫,無用的程式碼行,以及非效能最佳實踐的程式碼。

每次開啟SpotBugs的報告,都能看到一推的紅色警告,然後翻一翻就能得到一些新的體會,也算是一種工作積累。

在我自學的過程中,深刻認識到現在的能力都是過往的 BUG 積累出來的。在無數個下班的夜裡,跟 BUG 戰鬥到天亮。吃一塹長一智,每次經過 BUG 的洗禮,都感覺自己水平上升了另外一個階段。沒掌握一個 Java 的知識點,至少遇到 10 次 error。在不斷嘗試的過程中也是能遇到無數個 error 才能確認完全掌握某個 API。這在我最近學習 Golang 的過程中依然適用。

最近在整理一份 Java 的教程中,就覺得大多數時候一個 API 正確的使用方式只有少量幾種,但是錯誤的方式卻成倍增加。而這些錯誤的方式其實都是隱藏的知識點。對於學習一門語言來說,即使 SDK 自帶的 API 呼叫也是很多變的。一般我都是先搜一個最佳實踐的程式碼,然後不斷嘗試換一個別的使用姿勢,這其中相當於擴充了這個知識點關聯的知識點了。而且透過不斷試錯和練習,也能加深自己對這個知識點的理解。

就我自己的經驗來講SpotBugs屬於從別人的錯誤中學習,自己在學習過程中不斷試錯從自己的錯誤中學習。程式語言以及其生態圈中的各類框架都有非常多隱藏的 BUG,偶爾發現一個還是挺奇妙的。比如我之前寫過兩個 BUG:Math.abs() 求絕對值返回負值 BUG 分享Intellij 執行 Java 程式啟動等待 BUG 分享

圖中的第一項應當是人人都需要避免的,而後兩項距離過於遙遠,是在沒啥經驗。

別讓錯誤從手中悄悄溜走!

Have Fun ~ Tester !

  • FunTester 測試框架架構圖初探
  • 頗具年代感的《JMeter 中文操作手冊》
  • 140 道面試題目(UI、Linux、MySQL、API、安全)
  • 圖解 HTTP 腦圖
  • 分享一份 Fiddler 學習包
  • 測試之 JVM 命令腦圖
  • 好書推薦《Java 效能權威指南》
  • JSON 基礎
  • Math.abs() 求絕對值返回負值 BUG 分享
  • moco 框架介面命中率統計實踐
  • 效能測試中集合點和多階段同步問題初探
  • 利用 python+plotly 製作雙波源干涉三維影像
  • 程式碼審查如何保證軟體質量
  • 自動化如何選擇用例

相關文章