写点什么

从错误中学习

用户头像
FunTester
关注
发布于: 刚刚

前两天在推上看到马斯克发了一张图,主题是从错误中学习,如下:



读完有点感触,想起最近在重新用到的 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 !

发布于: 刚刚阅读数: 2
用户头像

FunTester

关注

公众号:FunTester,650+原创,欢迎关注 2020.10.20 加入

Have Fun,Tester! 公众号FunTester,坚持原创文章的测试人。 FunTester测试框架作者,DCS_FunTester分布式性能测试框架作者。

评论

发布
暂无评论
从错误中学习