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

年薪10万与年薪100万的程序员,写出代码的区别 编程是一门创造性的工作,是一门艺术。我们每天与代码打交道,为什么普通码农辛苦一年只拿十万,而高级架构师年薪百万。最主要的就是我们敲出来的代码有差别,差别在意大部分码农敲出来坏的代码,而高级架构师能敲出优雅的好的代码。 我们每天都会敲代码,但当被问道什么是好的优雅的代码时,大家可能会先愣一下,然后给出的回答要么比较空泛,要么比较散,没办法简单明了地概括出来。显然,这个问题并没有唯一的标准答案,谁都可... 阅读详情

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

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

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

1. 编码时:少一点不行 

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

反例:

正解:

  • 日志打印时,占位符 {} 要严格与参数相对应,如果对应不上,按照截图示意,日志输出则不会打印 queryString 的参数,会直接输出 {},但是某些版本下会出现空指针异常。
  • 说一句废话:图中的 isVarfiy 是什么鬼?莫非是 isVerify,单词好好拼,千万别拼错,不然易被后人拍砖。

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

反例:

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

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

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

正解:

  • 采用 switch 时,当所有 case 都不匹配时,会走 default 逻辑。为了程序更完成、更优雅,在一个 switch 块内,都必须包含一个 default 语句并且放在最后,即使它什么代码也没有。
  • 说一句废话:截图中的代码格式,尤其是 break 前的分号,你能忍受吗?

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

反例:

正解:

  • 在一个 switch 块内,每个 case 要么通过 break/return 等来终止,要么注释说明程序将继续执行到哪一个 case 为止;
  • 注意 break 是退出 switch 语句块,而 return 是退出方法体。

2. 编码时:多一点不行 

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

反例:

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

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

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

反例:

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

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

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

反例:

正解:

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

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

反例 1:

反例 2:

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

3.寄语写最后 

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

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

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

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

一起聊技术、谈业务、喷架构,少走弯路,不踩大坑。会持续输出原创精彩分享,敬请期待!

推荐阅读:

(一)改掉这些坏习惯,还怕写不出健壮的代码?

Ubuntu下安装Hive3.1.2教程(附MySQL安装方法及安装包) 文章目录前言一、安装Hive1. 下载压缩包并解压2. 安装Hive3. 配置环境变量4. 修改配置文件二、MySQL安装与配置1. 安装MySQL2. 安装MySQL jdbc包3. 为Hive创建MySQL账号三、验证Hive安装及错误处理1. 启动Hadoop2. 启动hive3. 运行Hive实例总结 前言 Hive 的安装需要建立在 Hadoop 的之上(类似于Hbase),关于 Hadoop 的单机安装以及伪分布式安装可以参考作者的另两篇博客: Ubuntu下单机安装Hadoop详细教程(附 阅读详情

相关推荐

单片机笔记十二:华大HC32L136超低功耗设计实战

本文详细介绍了华大HC32L136单片机的超低功耗设计实战,包括深度睡眠模式下仅0.5μA的电流消耗、五种功耗模式的对比与配置、外设使用技巧及硬件级优化方法。通过实际项目案例,展示了如何利用ARM Cortex-M0+内核的HC32L136显著延长电池寿命,适用于智能门锁、额温枪等低功耗设备。

weixin_29189373的博客 394

代码越写越乱?聊聊如何写出优雅的代码

大家好,我是陈哥,今天给大家推荐一本优秀的书籍!文末送三本!所谓练武不练功,到老一场空,以技术为驱动的程序员同样如此。面向对象编程范式、设计原则、代码规范、重构技巧和设计模式这些程序员基本功在根本上决定了这个职业的发展高度。把这些基本功练好,可以让你成为一个合格且优秀的程序员、摆脱“码农”身份成为真正的技术专家。今天推荐一本前谷歌工程师王争重磅新书《设计模式之美》,这本书来源于极客时间高口碑专栏,...

码猿技术专栏 730

复现CVE-2014-085(Apache ZooKeeper 未授权访问漏洞)

默认安装配置完的zookeeper允许未授权访问,管理员未配置访问控制列表(ACL)。导致攻击者可以在默认开放的2181端口下通过执行envi命令获得大量敏感信息(系统名称、java环境)导致任意用户可以在网络不受限的情况下进行未授权访问读取数据。

记录并分享学习安全的知识点.. 2175

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

Code Review 是一场苦涩但有意思的修行。书接上篇,本次一起继续探讨一下,该如何写出优雅的代码?1编码时:搞的复杂并不好坏习惯一:多余的 if/else。反例:类似上面这种写...

一猿小讲 2036

把 SAP Fiori Launchpad Designer 的 Catalog 与 Group 传输讲透:从 CONF、CUST 到 Transport Request 的完整理解

SAP Fiori项目中,catalog和group的传输问题往往源于对FLPD层次模型的理解不足。FLPD包含configuration(系统级)和customizing(客户端级)两个层面,分别对应workbench request和customizing request传输方式。常见误区包括:混淆/UI2/FLPD_CONF和/UI2/FLPD_CUST入口、未提前创建传输请求、不了解层次覆盖机制(customizing会覆盖configuration)。当客户端修改configuration层的对象

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 101

swl安装无法与服务器建立链接,如何解决?

🏆本文收录于《全栈Bug调优(实战版)》专栏,主要记录项目实战过程中所遇到的Bug或因后果及提供真实有效的解决方案,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!! 备注:部分问题/疑难杂症搜集于互联网。

**My Coding Family** 2075

如何将代码写的更加优雅?

Hello Everyone,好像又有好久没发文章了哈哈哈,不过没关系,好的文章一般都是需要经过长久的酝酿的,就好比你正在看的这篇文章,一看标题就知道肯定是干货!

做兴趣使然的Hero 1万+

论文分栏前后内容不连续?教你word如何删除分节符

问题 当我们在写论文的时候,很多期刊的模板都是两栏的格式,但有的时候我们插入的图像尺寸可能太大,两栏格式放不下,因此需要将其以一栏的格式出入,如下: 但当我们把图片删除后,再将其转换成两栏格式,前后内容就出现不连续的情况: 正常情况下应该是如下: 正确处理方式 里面有个分页符,把分页符去掉,或者把你的文字全部复制到记事本里,然后重新复制回word就可以取消原有的格式了。 删除分节符的方法(以word 2019为例) -点击菜单栏上的“视图”,点击“大纲视图”。 可以看到word文档以整列的形式展开:

左手の明天的博客 1万+

刚入行不久,如何写出优雅的Java代码?

点击上方蓝色“java大数据修炼之道”,选择“设为星标”每晚九点: 技术干货 ???? 必定奉上 哈喽,各位新来的小伙伴们,大家好!由于公众号做了改版,为了保证公众号的资源能准时推送到你...

hello world! 521

AHB—SRAMC项目(结构图,核心代码、Testbench架构)

文章目录一、AHB_SRAMC项目介绍1.1.AHB总线控制单元(ahb_slv_if.v)1.2.SRAM控制单元(sramc_top.v)1.3.主要的传输路径二、结构框图2.1.AHB_SRAMC结构图(重点)2.2.总线控制单元与SRAM控制单元结构图三、部分核心代码(重点理解)四、SystemVerilog Testbench架构(重点)五、目录结构 一、AHB_SRAMC项目介绍 本项...

Mr.翟的博客 3万+

绕过App某加密企业版加固Frida检测

可以发现dlsym函数加载了两次pthread_create,可以认为这两个进程(或某一个进程)是和Frida的检测有关的,于是为了绕过检测,我们可以让它加载一个虚假的pthread_create函数,得到一个空结果绕过检测。成功绕过了libnllvm1717052779924.so的检测,又到了libface_nllvm.so的检测,使用同样的方法去绕过libface_nllvm.so的检测,代码我这里就不上了,大家可以自己修改以下。dlsym()函数的作用是在已经加载的动态链接库中查找指定符号的地址。

墨痕诉清风的博客 1621

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

Code Review 是一场苦涩但有意思的修行。上期分享,通过示例剖析编码中一些经常触犯的性能点,以及编码时常犯的一些小毛病,来告诉新手程序员如何写出健壮的代码。咱们书接上篇,本次一起来探讨一下,该如何写出优雅的代码?编码时:少一点不行 坏习惯一:记录日志时,缺失参数。反例:正解:1. 日志打印时,占位符 {} 要严格与参数相对应,如果对应不上,按照截图示意,日志输出则不会打印 queryStr...

weixin_42509708的博客 102

MATLAB 与 STK 互联导出导弹轨迹及速度数据(csv导出)

本文介绍了如何通过 MATLAB 脚本连接 STK 提取导弹三维轨迹数据,并以 CSV 格式导出,包含以下关键内容:自动连接 STK 场景;获取所有导弹对象;提取 J2000 坐标系下的位置和速度;加入任务优先级与状态;导出为标准 CSV 文件;

weixin_52370774的博客 778

(六)改掉这些坏习惯,还怕写不出精简的代码?

鲁迅说:嬉笑怒骂里充满了无奈和妥协。小猿说:先生说的不对,在程序员的世界里,编写代码处处充满了无奈和妥协。(一)改掉这些坏习惯,还怕写不出健壮的代码?(二)改掉这些坏习惯,还怕写不出优...

一猿小讲 1850

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

(五)改掉这些坏习惯,还怕写不出精简的代码?

鲁迅说:嬉笑怒骂里充满了无奈和妥协。小猿说:先生说的不对,在程序员的世界里,编写代码处处充满了无奈和妥协。Code Review 是一场苦涩但有意思的修行。(一)改掉这些坏习惯,还怕写...

一猿小讲 1976

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

改掉这些坏习惯,还怕写不出精简的代码

鲁迅说:嬉笑怒骂里充满了无奈和妥协。 小猿说:先生说的不对,在程序员的世界里,编写代码处处充满了无奈和妥协。 (一)改掉这些坏习惯,还怕写不出健壮的代码? (二)改掉这些坏习惯,还怕写不出优雅的代码? (三)改掉这些坏习惯,还怕写不出优雅的代码? (四)改掉这些坏习惯,还怕写不出健壮的代码? (五)改掉这些坏习惯,还怕写不出精简的代码? 上次讨论了一下如何借助注解来精简代码,代码修炼的系列分享,书接上篇,本次继续探讨一下:还有哪些奇淫技巧,能助力写出精简的代码? 1 编...

slw20010213的博客 195

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

(四)改掉这些坏习惯,还怕写不出健壮的代码?

Code Review 是一场苦涩但有意思的修行。(一)改掉这些坏习惯,还怕写不出健壮的代码?(二)改掉这些坏习惯,还怕写不出优雅的代码?(三)改掉这些坏习惯,还怕写不出优雅的代码?书接...

一猿小讲 1930

优雅参数判空_优雅参数判空_(三)改掉这些坏习惯,还怕写不出优雅的代码?...

Code Review 是一场苦涩但有意思的修行。书接上篇,本次一起继续探讨一下,该如何写出优雅的代码?1编码时:搞的复杂并不好坏习惯一:多余的 if/else。反例:类似上面这种写法,if/else 就显得有点高射炮打蚊子,有的同学就会按照下面方式进行简化。addBool = (i == 0) ? true : false;这种方式简化当然跑起来没问题,代码确实简化了不少,但是还是略显冗余啊。正...

weixin_35148943的博客 197

优雅参数判空_(三)改掉这些坏习惯,还怕写不出优雅的代码?

Code Review 是一场苦涩但有意思的修行。书接上篇,本次一起继续探讨一下,该如何写出优雅的代码?1编码时:搞的复杂并不好坏习惯一:多余的 if/else。反例:类似上面这种写法,if/else 就显得有点高射炮打蚊子,有的同学就会按照下面方式进行简化。addBool = (i == 0) ? true : false;这种方式简化当然跑起来没问题,代码确实简化了不少,但是还是...

weixin_39868663的博客 142

(四)改掉这些坏习惯,还怕写不出健壮的代码?(转载)

Code Review 是一场苦涩但有意思的修行。 (一)改掉这些坏习惯,还怕写不出健壮的代码? (二)改掉这些坏习惯,还怕写不出优雅的代码? (三)改掉这些坏习惯,还怕写不出优雅的代码? 书接上篇,本次继续探讨一下,该如何写出健壮的代码? 编码时:看似顺眼,实则不然。 举个栗子: String amount = request.getParameter(“amount”); // 校验金额小数点后最多两位小数 BigDecimal a = new BigDecimal(amount); if (a.d

shuirenbushijun的博客 177

(五)改掉这些坏习惯,还怕写不出精简的代码?(转载)

鲁迅说:嬉笑怒骂里充满了无奈和妥协。 小猿说:先生说的不对,在程序员的世界里,编写代码处处充满了无奈和妥协。 Code Review 是一场苦涩但有意思的修行。 (一)改掉这些坏习惯,还怕写不出健壮的代码? (二)改掉这些坏习惯,还怕写不出优雅的代码? (三)改掉这些坏习惯,还怕写不出优雅的代码? (四)改掉这些坏习惯,还怕写不出健壮的代码? 代码修炼的系列分享,书接上篇,本次探讨一下:该如何利用注解写出精简的代码? 编码时:重复的校验,随处可见。 举个栗子: 再举个栗子: 如栗子示意,项目中参数校验随

zhongqill的博客 180

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

Code Review 是一场苦涩但有意思的修行。 书接上篇,本次一起继续探讨一下,该如何写出优雅的代码? 编码时:搞的复杂并不好 坏习惯一:多余的 if/else。 反例: 类似上面这种写法,if/else 就显得有点高射炮打蚊子,有的同学就会按照下面方式进行简化。 addBool = (i == 0) ? true : false; 这种方式简化当然跑起来没问题,代码确实简化了不少,但是还是略显冗余啊。 正解: addBool = (i == 0); 坏习惯二:多余的 else。 反例: 仅以上图为

zhongqill的博客 156

java十进制小数转化为二进制小数代码 乘二取整法_(四)改掉这些坏习惯,还怕写不出健壮的代码?...

Code Review 是一场苦涩但有意思的修行。(一)改掉这些坏习惯,还怕写不出健壮的代码?(二)改掉这些坏习惯,还怕写不出优雅的代码?(三)改掉这些坏习惯,还怕写不出优雅的代码?书接上篇,本次继续探讨一下,该如何写出健壮的代码?1编码时:看似顺眼,实则不然。举个栗子?:String amount = request.getParameter("amount");// 校验金额小数...

weixin_29284201的博客 355

写Java六年,我总结了这些代码坏习惯

这不是形式主义,是让后来人少死几万个脑细胞。代码是写给人看的,只是顺带让机器执行。

2501_90410679的博客 7

写 Python 时的 5 个坏习惯

很多文章都有介绍怎么写好 Python,我今天呢,相反,说说写代码时的几个坏习惯。有的习惯会让 Bug 变得隐蔽难以追踪,当然,也有的并没有错误,只是个人觉得不够优雅。 注意:示例代码在 Python 3.6 环境下编写 1 用列表作函数的默认参数 看下面这个例子 正常我们期望的结果应该是这样的 a:1 b: [1] a:2 b: [2] 但当我们执行代码后,只会得到这样的结...

人生苦短, 还不用Python? 229

写 Python 时的 5 个坏习惯 | python3

很多文章都有介绍怎么写好 Python,我今天呢,相反,说说写代码时的几个坏习惯。有的习惯会让 Bug 变得隐蔽难以追踪,当然,也有的并没有错误,只是个人觉得不够优雅。 注意:示例代码在 Python 3.6 环境下编写 1 用列表作函数的默认参数 看下面这个例子 正常我们期望的结果应该是这样的 但当我们执行代码后,只会得到这样的结果 与预期不一致。为什...

python学习者的博客 505
上一篇: (一)改掉这些坏习惯,还怕写不出健壮的代码?
下一篇: (三)改掉这些坏习惯,还怕写不出优雅的代码?
一猿小讲
博客等级 码龄15年 294粉丝 156原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值