藏在代码中的“心机”设计

初级工程师往往被人吐槽为代码搬运工,大段大段的复制代码过来用,自己只要做稍微的业务调整。这个是每个程序员都需要经过的阶段,所以没什么好不舒服的。就算刚入行,不能行云流水的写代码,但还是可以写出行云流水的代码。

行云流水写代码是高级工程师的事,我们在这里不探讨。我们做为一个有理想的码农,一定是要能写出行云流水的代码。下面分享几个写高质量代码的技巧。

1. 一件事原则

一件事原则,即一个文件只做一件事,一个类只做一件事,一个函数只做一件事,甚至一行代码只做一件事。

分享个案例:以前有做个餐饮系统,业务流程很复杂,我们采用小前端(服务号)+ 大后台的结构实现,前端用VUE框架。应用已经上线运营,有天客户提要改需求,订单功能要加内容,业务内容我就不讲了,很复杂,采用智能分析,应用餐厅过往营业数据自动算出订单的内容。要改的内容,本来很简单,我估计也就一个小时搞定,就可以发个小版本,结果半天还没搞出来。

我就很奇怪,跑到工程师那里了解情况,工程师罗里吧嗦的给我讲了好多,搞不清楚他在讲些咋,直接看代码,发现他生成订单和查看订单详情做在同一个vue里,到处都是编辑和查看的判断,把自己搞迷糊了。

这种显然是有问题的,一个文件做两个功能,刚开始可能省事,但是你要祈祷客户不改需求,不然后面你就会连想死的心都有。

2. 编码规范

现在很多IDE都自带编码规范,网上也有很多大企业的编码规范,有阿里的,有华为的。如果公司有编码规范最好,按公司的编码规范写代码。如果公司没有,建议去找个编码规范,不需要全部执行,全部是执行不下去的。

给个建议,你从找来的编码规范中,挑最重要的十到二十条来执行,像注释、命名规范、大小写规范这些是一定要有的,这样你才能写出一致的代码出来。不然从张三那里复制过来的代码,采用的是匈牙利命名法printEmployeePaychecks();从李四那里复制过来的代码,采用的是下划线命名法print_employee_paychecks(),那你的代码就没眼看了。

3. 提取工具类库

把一些常用的,比如字符串的处理、日期时间的处理、图形图像的处理、文件的处理等,提取出来做成工具类库,随着你的工具类库的丰富,你写代码会越来越简单,开发速度会越来越快。而且代码也简洁明了,本来可能是十几行的代码,现在只是一个函数调用就搞定了。代码维护起来也方便。

4. 不要出现重复代码

我们直接复制代码是最快的,所以很多工程师写过一段代码,再用到的时候,习惯把这段复制过来,改一改值,功能就成了。

这种是非常不好的习惯,如果这段代码是业务代码,那就更麻烦,需求是随时变的,业务调整很正常,甚至一天三变都有,如果业务代码到处复制,刚开始你还记得几个地方都改,后面改多了,可能就开始少一个,再往后少的地置就越来越多。这个就是传说中的改一个bug,会产生更多的bug的一个方面。

所以在你按ctrl+C的时候,想一想,有没有可能做成一个函数?正常都是可以的,这样你的代码质量就会高很多。