游客发表
企鹅号IT技术java交流
群里又有人贴出那段经典报错:NullPointerException at line 47。企鹅发帖的技a交人是个刚转Java三个月的新手,配文只有三个字:“救救我。企鹅”底下没人直接甩答案,技a交倒是企鹅有人先问:“你昨天是不是把那个HashMap传进方法里了?”过了两分钟,新手回了个“对”。技a交群里炸开锅,企鹅刷出一排“又是技a交它”。
这种场景几乎每周都在企鹅号这个Java交流群里重演。企鹅我混了两年多,技a交见过太多人栽在空指针上——不是企鹅不会用Optional,也不是技a交不知道判空,而是企鹅压根没养成“先想null再写代码”的习惯。群里有个老哥说得糙但准:“Java里一半的技a交bug,都是企鹅你默认别人会按你的想法传参。”这话我记到现在。
聊技术归聊技术,这群有个怪现象:白天聊框架、聊JVM调优,一到晚上十点后,画风突变。有人贴自己写的烂代码求骂,有人吐槽面试被问“Spring Bean生命周期”背到怀疑人生,还有人不定期分享自己踩过的生产事故。上周有个兄弟讲他怎么把SimpleDateFormat用在多线程里,结果时间错乱到用户数据全乱套——他花了整晚回滚,群里听完安静了三秒,然后有人默默发了句:“感谢兄弟用血泪帮我们复习线程安全。”
这种真实感是别处找不到的。不像技术论坛上那些精修过的教程,这里更多是半成品、错误和挣扎。我见过一个做电商后台的,把ConcurrentHashMap的size()方法性能问题翻来覆去讲了两个小时,最后结论是“别信网上的性能对比,得压测你自己的场景”。他贴出的测试代码粗糙得很,但那个结论比任何官方文档都戳人。
当然,群里也有让人血压升高的时刻。有人问“Java和JavaScript有什么区别”,底下立刻有人回“雷锋和雷峰塔的区别”。这种梗玩多了会腻,但奇怪的是,每次有人认真回答基础问题,总有几个潜水的老手跳出来补充细节——比如有人解释==和equals时,顺手把String常量池的内存布局画了个ASCII图。那种认真劲儿,和玩梗时的散漫判若两人。
我自己的改变也发生在这。以前写代码习惯“能跑就行”,有次在群里贴了段用List遍历删除元素的代码,被一个ID叫“老码农”的人批得体无完肤:“你这remove操作索引都乱了,用迭代器啊。”当时脸上挂不住,但回家试了迭代器,再跑一遍测试,数据全对。从那以后我写循环前会多想一步,这个习惯救了我好几次——上个月线上有个批量删除功能,同事用普通for循环删出bug,我瞄一眼就看出问题,因为那场景我早就在群里被教育过了。
说到这,想起群公告里那句一直没换过的话:“别问有没有简单办法,先问自己懂不懂原理。”底下跟了一行小字:“Java没有魔法,只有你没读懂的文档。”这话有点冲,但真话都带刺。群里来来去去几百号人,有人从新手熬成了能给别人答疑的老手,有人退了又加回来,唯一不变的是,每到深夜,总有人发一段报错截图,然后等一句:“贴一下你的完整堆栈。”
技术交流的本质不是教你怎么写代码,是让你看见别人怎么摔跤,再想想自己脚下的路。企鹅号这个群,恰好提供了这么个地方——乱糟糟的,但真实得够劲。
友情链接