Loading [MathJax]/jax/input/TeX/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >(二)改掉这些坏习惯,还怕写不出优雅的代码?

(二)改掉这些坏习惯,还怕写不出优雅的代码?

作者头像
一猿小讲
发布于 2020-06-04 10:08:54
发布于 2020-06-04 10:08:54
6890
举报
文章被收录于专栏:一猿小讲一猿小讲

Code Review 是一场苦涩但有意思的修行。

上期分享,通过示例剖析编码中一些经常触犯的性能点,以及编码时常犯的一些小毛病,来告诉新手程序员如何写出健壮的代码。

咱们书接上篇,本次一起来探讨一下,该如何写出优雅的代码?

1

编码时:少一点不行

坏习惯一:记录日志时,缺失参数。

反例:

正解:

1. 日志打印时,占位符 {} 要严格与参数相对应,如果对应不上,按照截图示意,日志输出则不会打印 queryString 的参数,会直接输出 {},但是某些版本下会出现空指针异常。

2.说一句废话:图中的 isVarfiy 是什么鬼?莫非是 isVerify,单词好好拼,千万别拼错,不然易被后人拍砖。

坏习惯二:记录日志时,缺失占位符 {}。

反例:

正解:类似的这种问题,多数程序员都犯过。记录日志时占位符少,而参数值多,日志输出时想打印的参数,日志中却没有打印。

如上面截图中代码所示,想输出请求的 queryString,但是由于缺失对应的占位符 {},则不会打印到日志中。

坏习惯三:使用 switch 时,缺失 default。

正解:

1. 采用 switch 时,当所有 case 都不匹配时,会走 default 逻辑。为了程序更完成、更优雅,在一个 switch 块内,都必须包含一个 default 语句并且放在最后,即使它什么代码也没有。

2. 说一句废话:截图中的代码格式,尤其是 break 前的分号,你能忍受吗?

坏习惯四:使用 switch 时,缺失 break。

反例:

正解:

1. 在一个 switch 块内,每个 case 要么通过 break/return 等来终止,要么注释说明程序将继续执行到哪一个 case 为止;

2. 注意 break 是退出 switch 语句块,而 return 是退出方法体。

2

编码时:多一点不行

毛病一:看似判 null 很严谨,实则多余。

反例:

正解:这应该是吃过空指针的亏,刚 new 出来的对象,二话不说又判断对象是否为 null,真是多余的判断。

这么写并不能彰显代码很 new B(),反而使代码有失大雅。

毛病二:担心对象使用出现空指针,就疯狂 new。

反例:

正解:创建对象而没有使用,除了白白的浪费内存空间,如果在高并发情况下,效率、内存占用可想而知。

难道上面代码是为了 new B(),百思不得其真解。

毛病三:多分支对应功能却是一模一样。

反例:

正解:

解惑:功能相同的分支进行合并到一起,代码确实能简化不少,优雅不少。

毛病四:闲置不用的对象,到处都是。

反例 1:

反例 2:

正解:闲置不用的对象,到处都是,若留着就是耗内存,而且影响雅观,不用的变量、代码段建议删除。

3

寄语写最后

常在河边站哪有不湿鞋,金无足赤人无完人,再牛逼的团队,编码都会有出 Bug 的时候。近期微信公众号推出了一个专辑功能,而我迫不及待的想体验。

谁成想,当我点击创建专辑时,输入专辑名称「码农心声」等信息,然后点击保存,却发现列表页面出现了多个「码农心声」,而且赶紧截了个图,不知道是不是个 Bug?

But who cares?多出来的直接删除就行啦,又不影响使用。

好了,编码中易犯的那些臭毛病,本次就谈到这里,不知道有多少条是触动了你的心弦,希望有则改之。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-06-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 一猿小讲 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
编码时易忽略的坏习惯-优化编码(仅用于个人学习,不喜勿喷--持续更新)
解惑:使用 Long.valueOf(long) 代替 new Long(long),可以提高性能。
botkenni
2022/12/07
5900
编码时易忽略的坏习惯-优化编码(仅用于个人学习,不喜勿喷--持续更新)
(三)改掉这些坏习惯,还怕写不出优雅的代码?
类似上面这种写法,if/else 就显得有点高射炮打蚊子,有的同学就会按照下面方式进行简化。
一猿小讲
2020/06/09
5700
(三)改掉这些坏习惯,还怕写不出优雅的代码?
(一)改掉这些坏习惯,还怕写不出健壮的代码?
近期对团队负责的项目,进行了一次 Code Review,代码评审过程中遇到的那些编码坏习惯,笑的合不拢嘴。不过,评审中很多代码编写问题,以往都多次提及过,所以气还是不打一处来。
一猿小讲
2020/06/02
6190
(一)改掉这些坏习惯,还怕写不出健壮的代码?
写 Python 时的 5 个坏习惯
很多文章都有介绍怎么写好 Python,我今天呢,相反,说说写代码时的几个坏习惯。有的习惯会让 Bug 变得隐蔽难以追踪,当然,也有的并没有错误,只是个人觉得不够优雅。
sergiojune
2018/10/09
3870
(四)改掉这些坏习惯,还怕写不出健壮的代码?
摘一段跑在生产环境上的代码,代码咋一看没啥问题,主要功能是获取请求参数;然后完成数据校验。
一猿小讲
2020/06/16
4510
(四)改掉这些坏习惯,还怕写不出健壮的代码?
(六)改掉这些坏习惯,还怕写不出精简的代码?
上次讨论了一下如何借助注解来精简代码,代码修炼的系列分享,书接上篇,本次继续探讨一下:还有哪些奇淫技巧,能助力写出精简的代码?
一猿小讲
2020/06/23
7300
(五)改掉这些坏习惯,还怕写不出精简的代码?
招式一不多说,徒手造轮子而已;重点说说招式二,引用 Hibernate Validator 类库替换参数校验,如下图示意,只需通过注解就轻松实现参数的基本验证。
一猿小讲
2020/06/23
6260
写代码需要养成的好习惯
记得读大学那会,刚学做各种各样的管理系统,都是用MVC模式,也就是controller、service、mapper、entity。如果未来业务扩展,你没有拆分业务结构的话,很可能就会发现,一个service包下,有上百个服务。。。
默 语
2024/11/20
970
写代码需要养成的好习惯
论一个优秀的工程师应该如何做好异常处理和日志记录
应用中不可直接使用日志系统(log4j,logback)中的API,应该使用日志框架中的 使用门面模式的日志框架,有利于维护和各个类的日志处理方式统一
攻城狮Chova
2022/01/22
5560
程序员写出这样的代码,能不挨骂吗?
针对接口输入参数,没有进行严格校验,尤其是要插入数据库库的参数,一路透传到底(数据库层面),数据库就报数据插入异常。
一猿小讲
2020/03/25
3720
10个写TypeScript代码的坏习惯
近几年 TypeScript 和 JavaScript 一直在稳步发展。我们在过去写代码时养成了一些习惯,而有些习惯却没有什么意义。以下是我们都应该改正的 10 个坏习惯。
疯狂的技术宅
2021/02/25
7110
10个写TypeScript代码的坏习惯
代码工程规范
codes - 代码目录。 configurations - 配置目录。一般存放项目相关的配置文件。如 maven 的 settings.xml,nginx 的 nginx.conf 等。 demos - 示例目录。 docs - 文档目录。 libs - 第三方库文件。 scripts - 脚本目录。一般存放用于启动、构建项目的可执行脚本文件。 packages - 打包文件目录。Java 项目中可能是 jar、war 等;前端项目中可能是 zip、rar 等;电子书项目中可能是 pdf 等。
硬件开源小站
2023/04/07
3000
工作总结!日志打印的15个建议
大家好,我是程序员田螺。日志是快速定位问题的好帮手,是撕逼和甩锅的利器!打印好日志非常重要。今天我们来聊聊日志打印的15个好建议~
捡田螺的小男孩
2021/09/29
1.7K0
工作总结!日志打印的11条建议
大家好,我是 JavaPub。日志是我们定位问题的得力助手,也是我们团队间协作沟通(甩锅)、明确责任归属(撕B)的利器。没有日志的程序运行起来就如同脱缰的野🐎。打印日志非常重要。今天我们来聊聊日志打印的 N 个好建议~
JavaPub
2024/03/16
3220
工作总结!日志打印的11条建议
Go 语言开发设计指北
友情提示:此篇文章大约需要阅读 20分钟33秒,不足之处请多指教,感谢你的阅读。订阅本站 此文章首发于 Debug客栈 |https://www.debuginn.cn
Meng小羽
2021/03/08
5360
【JAVA】Java 日志打印规范
规范的日志是养成良好编程习惯的开始,也是关键时刻解决严重BUG的救命稻草。程序员开发的过程中可以打印debug日志,在复杂业务中提供日志来排查问题,也可以在出现生产问题的时候快速问题,及时处理。无论如何了解和学习日志的规范是程序员必备的基本功。
阿东
2022/12/30
5.6K0
【JAVA】Java 日志打印规范
写了多年的Java,直到看到Kotlin,原来代码可以如此优雅!
如果你是像我一样是一名 优秀 的Java开发者 _ ,而且已经想用kotlin来实现你的程序,那么,抱歉!不要用Java的语法思维来写Kotlin,不要让kotlin的优雅埋没。如果你没有Java开发经验,下面的内容也对你会有帮助。。。
一个会写诗的程序员
2018/08/17
3.4K0
编码规范 - 养成良好的Java编码习惯
最近在整理公司编码规范方面的内容,2017年阿里巴巴发布了编码规范插件,强烈建议大家安装使用,好的编码习惯是通往成功的阶梯。 SpringBoot配套源码地址:https://gitee.com/hengboy/spring-boot-chapter SpringCloud配套源码地址:https://gitee.com/hengboy/spring-cloud-chapter SpringBoot相关系列文章请访问:目录:SpringBoot学习目录 QueryDSL相关系列文章请访问:QueryD
恒宇少年
2018/06/27
1.6K0
这代码写的跟狗屎一样!怎么优化?19招搞定它
今天主要是分享如何优化我们的Java代码,代码写的好,自然bug就会少很多,但不是所有Bug都是代码导致,可能是其他方面,比如:数据问题、奇葩的需求等。
田维常
2022/03/22
2690
Spring Boot:优雅地处理全局异常以及格式化输出
在Spring Boot应用程序中,全局异常处理是一种非常重要的功能。它可以帮助我们捕获未处理的异常,进行统一处理,并返回给客户端一个友好的错误信息。本文将介绍如何使用Spring Boot优雅地处理全局异常,并提供一些实用的代码示例。
Front_Yue
2024/07/24
2.1K0
Spring Boot:优雅地处理全局异常以及格式化输出
推荐阅读
相关推荐
编码时易忽略的坏习惯-优化编码(仅用于个人学习,不喜勿喷--持续更新)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档