我写代码时的小倔强

作者 | 鱼皮
来源 | 程序员鱼皮(ID:coder_yupi)

分享自己写代码时的好习惯,让你的编程能力突飞猛进!
很多同学在学编程时不注重代码质量,养成坏习惯的同时,失去了提升自己编程能力的机会 。如何有意提升自己的代码质量呢?我根本就发现不了自己代码中的问题,以为已经写得很棒棒了,怎么办?
我写代码时的小倔强

文章插图
要解决这个问题其实非常简单,既然自己经验不足、或者是 “只缘身在此山中”,看不出来代码哪里写的不好,那就找其他朋友或有经验的程序员帮你看看代码,给出一些意见 。
虽然每个正常的程序员都无法忍受自己写的代码被人说是辣鸡,但是虚心接受指正,并加以修改,的确能大大加深我们的印象,下次写代码时就会注意了 。慢慢地,就养成了好习惯,不仅注重自己的代码质量,还会 “继承传统”,开始说别人写的代码辣鸡,从而帮助更多人改进 。
我写代码时的小倔强

文章插图
但有一个很残酷的现实,谁这么好心帮我看代码呢?
我大学期间,虽然做过很多项目,写过很多代码,但是自己的代码基本都只给自己看 。即使把大作业的代码交给老师,他们也根本不看代码,只看运行效果的,这也是上次提到的为什么大家越来越不注重代码质量的原因之一 。而且实不相瞒,我也曾经求学长帮我看代码,但换位思考一下,如果不是和你关系非常好,谁闲的蛋疼免费去帮你看你写的辣鸡代码?
我写代码时的小倔强

文章插图
求人不得,只能求己 。
一种方式就是把自己开发好的作品上线,让用户来使用它,从而帮你发现一些自己没注意到的 Bug 或功能问题,驱使你去仔细阅读和改进代码 。还可以把自己的代码公开到 GitHub 等代码托管平台,允许其他同学阅读和指出问题 。但是,这种方式过于硬核,前期需要耗费大量精力去做推广,否则根本没人用你的项目,也没人去看你的 GitHub!
硬核的方式咱玩不了,那我就教大家人人都能轻松学会的一招,也是我自己一直坚持的编程习惯 。
下面一起来看看我写代码时的小倔强吧,有效提高你的代码质量,编程能力突飞猛进!
我写代码时的小倔强

文章插图
我写代码时的小倔强

文章插图
 
我的编程习惯就像之前说的,我们之所以发现不了代码中的问题,很大程度上是因为我们的编程态度是 “乐观” 的,相信视频教程、相信书本、相信编辑器,只要没报错,那就是对的 。
但我写代码时,非常地 “悲观” 且倔强,我会细致入微地把自己写过的每一行代码都看作是病人,坚持认为他们是有问题的,甚至可以说是从鸡蛋里挑骨头!
【我写代码时的小倔强】有同学说了,你特么不就是在说废话么,这不就是仔细检查代码?或者说是防御性编程?
先别急,这和防御性编程可不一样,我有多倔,举个栗子你就明白了,下面请跟上我的思路~
我写代码时的小倔强

文章插图
我写代码时的小倔强

文章插图
 
我有多倔?假如我写了这样一端前端代码,作用是获取某条狗的名字:
 // 默认狗名let name = '无名狗';// 狗、狗信息、狗名称都存在if (dog && dog.info && dog.info.name) { name = dog.info.name;}你觉得这段代码有问题么?
如果你觉得没有问题,那么很好,你很乐观 。
无所谓了,我才不要你觉得,我很倔,我就偏偏觉得这段代码有问题,没问题我也得挑挑问题。
我写代码时的小倔强

文章插图
嗯,代码逻辑好像没毛病,那硬要说有问题的话,代码量是不是有点多?
比如在获取狗名时,为了防止报错,要先判断狗是否存在,再判断狗的信息是否存在,最后才能取到狗名,好啰嗦啊 。如果还要获取一堆其他的信息,这代码简直没法看了 。
所以,我就开始思考,如何让这段代码更加精简,有没有更好的写法呢?
通过百度,我发现了一个牛逼的玩意儿,叫 可选链操作符( ?. ),允许读取对象深处的属性值,而不必明确验证链中的每个引用是否有效;在引用为空的情况下不会引起错误,会自动短路返回值 。


推荐阅读