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

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

作者头像
一猿小讲
发布于 2020-06-23 15:52:41
发布于 2020-06-23 15:52:41
7300
举报
文章被收录于专栏:一猿小讲一猿小讲

鲁迅说:嬉笑怒骂里充满了无奈和妥协。 小猿说:先生说的不对,在程序员的世界里,编写代码处处充满了无奈和妥协。

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

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

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

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

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

上次讨论了一下如何借助注解来精简代码,代码修炼的系列分享,书接上篇,本次继续探讨一下:还有哪些奇淫技巧,能助力写出精简的代码?

1

编码时:删除多余,才会更精简。

很多项目流转到你手中时,很多功能模块已废弃 ... ...

胆放大,心留细,一定要敢于动手去重构。少即是多,只有去除多余的代码,方能让代码更精简更完美。

精简代码时,能想到的事项如下:

  • 多余的 Maven 依赖删除;
  • 多余的配置信息删除;
  • 废弃的 Module、API 、包、类、方法 删除;
  • 多余的 常量、变量 删除;
  • 多余的 导入、注解、注释、日志 删除;
  • 多余的 TODO 删除;

举个栗子?

多余的 TODO,搞的后人不知所措。

再举个栗子??

由于功能下线,导致配置文件中依然维护多余的配置,每次上线还担心线上网络不通,解除后顾之忧,势必要去除多余的配置信息。

再举个栗子???

如截图示意,深入分析一下:

  • 标注 3:接口中的方法默认都是 public 修饰,可以去除;
  • 标注 2、4:子类都没有实现定义的方法,可以去除;
  • 标注 1:子类没有实现该接口,则该接口可以去除。

当然,写出精简的代码,仁者见仁智者见智,主要与团队的开发规范有一定关系。

在项目研发中,还有哪些可以简化代码的地方呢?

  • 利用反射进行对象赋值,可以简化大批量的赋值代码(计划:单独开篇去讨论);
  • 利用设计模式,例如工厂模式、模板方法模式,可以消除大量的重复代码,甚至 if else 语句;
  • 利用属性拷贝工具,例如 BeanUtils,可以消除大量赋值代码(以往已经提及过);
  • 利用封装好的工具类,例如 StringUtils、CollectionUtils等可以简化大量的判断语句;
  • 利用增强的 for 循环遍历集合和数组,会简化代码;
  • 善于使用 return 关键字提前终止流程,会简化程序结构。

其实,还有很多,不一一枚举,下面简单看几张图,看看这些坏习惯,你是否犯过?

2

编码时:坏习惯,让代码显得冗长。

举个栗子?:

正解:采用 for-each 进行循环遍历集合,代码会相对简化一点。

以往分享过的栗子?:

正解:else 略显多余,可以去除。

心里话:提前终止语句,快速失败,会让代码简化不少,效率提升不少。

以往分享过的栗子?:

正解:在 return 前的判断,貌似略显多余,可以修改为。

心里话:在编码时,利用好 return 关键字,可以提前让函数返回,避免定义很多中间变量。

拿个项目中的栗子?:

正解:利用 return 关键字,可以适当调整如下。

心里话:在编码时,提前终止程序,会减少圈的复杂度,结构更清晰。

3

寄语写最后

老子曰:有道无术,术尚可求也。有术无道,止于术。

庄子曰:以道驭术,术必成。离道之术,术必衰。

古人曰:上人用道,中人用术,下人用力。

小猿曰:管它什么道与术,能助力搬砖采石就足矣,因为我等采石之人心怀大教堂之愿景

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

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

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

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
(五)改掉这些坏习惯,还怕写不出精简的代码?
招式一不多说,徒手造轮子而已;重点说说招式二,引用 Hibernate Validator 类库替换参数校验,如下图示意,只需通过注解就轻松实现参数的基本验证。
一猿小讲
2020/06/23
6260
编码时易忽略的坏习惯-优化编码(仅用于个人学习,不喜勿喷--持续更新)
解惑:使用 Long.valueOf(long) 代替 new Long(long),可以提高性能。
botkenni
2022/12/07
5890
编码时易忽略的坏习惯-优化编码(仅用于个人学习,不喜勿喷--持续更新)
(四)改掉这些坏习惯,还怕写不出健壮的代码?
摘一段跑在生产环境上的代码,代码咋一看没啥问题,主要功能是获取请求参数;然后完成数据校验。
一猿小讲
2020/06/16
4500
(四)改掉这些坏习惯,还怕写不出健壮的代码?
(三)改掉这些坏习惯,还怕写不出优雅的代码?
类似上面这种写法,if/else 就显得有点高射炮打蚊子,有的同学就会按照下面方式进行简化。
一猿小讲
2020/06/09
5700
(三)改掉这些坏习惯,还怕写不出优雅的代码?
(一)改掉这些坏习惯,还怕写不出健壮的代码?
近期对团队负责的项目,进行了一次 Code Review,代码评审过程中遇到的那些编码坏习惯,笑的合不拢嘴。不过,评审中很多代码编写问题,以往都多次提及过,所以气还是不打一处来。
一猿小讲
2020/06/02
6160
(一)改掉这些坏习惯,还怕写不出健壮的代码?
(二)改掉这些坏习惯,还怕写不出优雅的代码?
上期分享,通过示例剖析编码中一些经常触犯的性能点,以及编码时常犯的一些小毛病,来告诉新手程序员如何写出健壮的代码。
一猿小讲
2020/06/04
6860
Java 代码精简之道
其中:“道”指“规律、道理、理论”,“术”指“方法、技巧、技术”。意思是:“道”是“术”的灵魂,“术”是“道”的肉体;可以用“道”来统管“术”,也可以从“术”中获得“道”。
JAVA葵花宝典
2020/06/04
2.1K0
让你编程能力秃飞猛进的好习惯
大家好,我是鱼皮,上回说到,很多同学在学编程时不注重代码质量,养成坏习惯的同时,失去了提升自己编程能力的机会。
程序员鱼皮
2021/06/01
4830
【方向盘】超爱的IDEA提效神器Save Actions,卸载了
一切工具,都是为了提效。效率的提升一般来讲并不改变事务的本质,但足够高的效率也能引起质变,这和程序员熟悉的量变引起质变道理一样。
YourBatman
2022/09/16
1.3K0
【方向盘】超爱的IDEA提效神器Save Actions,卸载了
谈一谈开发团队代码质量如何管控与提升
今天我们谈一下开发团队代码质量如何做到管控与提升,我相信很多公司都会面临这样的问题,开发团队大人员技术水平参差不齐,代码写的不够规范,代码扫描问题修改太过滞后,代码库管理每个团队都不一致,偶尔还会合并丢失一些代码,code review费人费时效率不高,开发任务的管理以及任务与代码的可追溯问题,等等之类的问题,我们能否制定一套从设计到开发再到交付一整套的管控方案来帮助开发团队管控代码的质量?下来我就针对这些问题展开来谈谈我的想法。
测试开发技术
2023/08/21
6220
谈一谈开发团队代码质量如何管控与提升
赋能开发者,腾讯云与你共探AI提升十倍生产力之路
AI 技术发展迅速,对于开发者而言,AI 既可能是提高生产力的神兵利器,也可能成为职业生涯潜在的“威胁”。开发者如何与 AI 协同进化,提升个人能力和价值;如何利用提高 AI 生产力,推动企业创新,实现降本提效?
TVP官方团队
2024/04/25
2460
赋能开发者,腾讯云与你共探AI提升十倍生产力之路
如何提高代码的可读性? - 读《编写可读代码的艺术》
很多同行在编写代码的时候往往只关注一些宏观上的主题:架构,设计模式,数据结构等等,却忽视了一些更细节上的点:比如变量如何命名与使用,控制流的设计,以及注释的写法等等。以上这些细节上的东西非常影响代码的可读性。
用户2932962
2018/08/30
1.2K0
如何提高代码的可读性? - 读《编写可读代码的艺术》
66岁还在写代码,这个程序员想把bug扼杀在“摇篮”里
在刘新铭长达 36 年的职业生涯中,他有一半的时间都在写代码。据刘新铭估计,他写的代码有百万行到 150 万行了。如今,作为鉴释联合创始人兼首席架构师,66 岁的他依然会写代码,不过主要专注在核心算法层面。在国内,这个年纪仍坚持编写代码的情况非常少见。
深度学习与Python
2020/12/07
4970
关于技术人员晋级答辩实用小Tips
笔者一共参加过3次公司内的晋级答辩,均为一次通过。从评委反馈评价来看,也是一个逐渐向好的过程。除此之外,笔者还曾经担任过部门的晋级答辩小助手,全程参与过一次小组晋级答辩的组织工作。
ruoyuliu
2023/08/26
1.6K1
关于技术人员晋级答辩实用小Tips
程序员坐牢了,继续被安排写代码。。
点击关注公众号,Java干货及时送达 来源:www.zhihu.com/question/483752248/answer/2127520344 今天给大家分享一篇有意思的爽文,但也是根据多年之前一个真实报道改编而来的。本文字数较多,建议先收藏,上下班路上、带薪上厕所、浑水摸鱼时再慢慢看~ 本故事纯属虚构 请大家不要随意模仿,后果自负! —  —  —  —  —  —  —  — 因为删库跑路,我坐牢了。 公司老板经营不善,拖欠工资半年,我终于忍无可忍,提出离职。 而老板居然说:爱走就走,一毛没有。滚吧!
Java技术栈
2022/08/25
1.2K0
程序员坐牢了,继续被安排写代码。。
面向失败设计之道、术、技
2015 年 5 月,杭州市萧山区某地光缆被挖断,某公司支付软件受到影响,用户反复登录却无法使用,一时间#XXX炸了#成为微博热词;2021 年 7 月 ,某视频网站深夜宕机,各系产品所有功能似乎全崩,直至次日凌晨才恢复服务。这两个故事,导致吃瓜群众对企业技术实力产生了质疑和误解,影响颇深……
黄啊码
2022/06/20
8021
【笔记】《重构: 改善既有代码的设计》
好久不见, 忙完一阵子开始继续更新了, 先让我水一篇杂的. 前段时间为了更好地重构自己的代码而看了《重构: 改善既有代码的设计》这本书, 以下是当时阅读期间做的简单笔记.
ZifengHuang
2021/11/30
1.6K0
【笔记】《重构: 改善既有代码的设计》
软件开发项目管理经验总结
这是我从事软件外包工作以来的项目管理经验的总结,编写文章的目的是为了回顾和总结自己的一些想法,如果其中有不足的地方大家可以一起讨论交流。
全栈程序员站长
2022/08/27
1.2K0
软件开发项目管理经验总结
想成为优秀前端,你需要知道这些!(基本素养、代码规范、开发技巧)
前端开发工程师分了好多级别,所谓级别的差异,无非就是专业技能、思想素养、经验技巧这几个方面的差异,修炼成大神的路上,这三门功夫缺一不可。
五月君
2023/10/24
1.6K0
想成为优秀前端,你需要知道这些!(基本素养、代码规范、开发技巧)
几乎刷完了力扣所有的树题,我发现了这些东西。。。
先上下本文的提纲,这个是我用 mindmap 画的一个脑图,之后我会继续完善,将其他专题逐步完善起来。
Nealyang
2020/12/03
3.3K0
几乎刷完了力扣所有的树题,我发现了这些东西。。。
推荐阅读
相关推荐
(五)改掉这些坏习惯,还怕写不出精简的代码?
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档