从错误中学习
前两天在推上看到马斯克发了一张图,主题是从错误中学习,如下:
读完有点感触,想起最近在重新用到的 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 !
版权声明: 本文为 InfoQ 作者【FunTester】的原创文章。
原文链接:【http://xie.infoq.cn/article/60d97fa386da9121a2b160e16】。文章转载请联系作者。
评论