与Java编程“十大怪兽”的一场持久战
优秀的程序员们能通过优雅的代码互相感受到对方的思考、灵感和审美。
代码审核是一件坚持要做的事情,代码质量更是一场持久战。大家努力吧。
物理学届有“四大神兽”困扰各路大神千年,最近半年工作复盘,给团队内的编码找出了“十大怪兽”——
1、魔法数字/字符。这个在萌新程序员的代码里最常见,我看不懂,几天后他也看不懂。
2、方法出现OR/AND。职责不单一;也有不得已为之的时候,可能是为了减少前后端交互次数,搞的一个聚合方法而已。
3、有if、else if就是没有else。往往是业务逻辑出问题的地方。
4、修改入参。不可变对象,副作用方法这些估计没有听说过,或者还给老师了,要补补。
5、多层嵌套的lambda。写过这样的代码,看起来很酷,但没法看。
6、循环中执行SQL,远程调用这些耗时耗力的操作。往往是性能的瓶颈,可调优。
7、无限制的内存队列。不小心只有生产没有消费,最后把内存都吃光。
8、单例有状态。一旦状态能通过方法改变,存在并发问题。
9、方法里调用一堆静态方法。思维都退化成过程编程,没面向对象不说,光单元测试就mock到吐。
10、吃掉异常。这种最可怕了,把问题掩盖,运维和开发维护的同事会骂死你们的。
欢迎朋友交流讨论:
顺带招聘Java Web高级开发工程师,坐标珠海。