我们之所以认为旧代码一团糟,其实是由编程的一个基本定律决定的,那就是:写代码容易,读代码难。
那么,当作为程序员的你,读别人的代码到底是怎样一种心理体验呢?快来分享你的心得吧!
● 文字 50 字以上(需原创,禁止转载)
回答赞同数 TOP10 的用户将有机会获得精美定制小礼品一份
腾讯云开发者社区小助手 8 月 13 日在获奖评论下通知答主
1. 居然能TM这么写?
2. 居然能TM这么写!
相信好多程序员朋友们都会面临这样一个问题,那就是可能要阅读其他人的代码,好多人内心其实都是拒绝的,很少有人在阅读其他人代码时产生愉悦的感觉,大多数都是觉得痛苦,甚至边看边骂。
接下来咱们就来主要分析一下心理体验。
首先写自己的代码时自己是一个创造者的角色,自己想要干什么是明确的,代码的设计是按照自己的习惯去设计的,实现过程都是按照自己的思维习惯去实现,完全随着自己的性子,自己的风格去走,因此写代码时会让人产生愉悦感,看到一行行的代码积累,并形成了自己的产品,并能运行看到想要的结果是十分有成就感的一件事情了,而读代码就不一样了,读代码时自己是一个挖掘者的角色,因为要看的代码是做什么的,想实现什么功能事先是不知道的,在未知事情之前人们都有一种紧张恐慌的心情,随着代码量的增加,这种紧张和恐慌就越强烈。这就是好多人读代码时觉得痛苦的原因。
每个人都有自己的思维习惯,在自己的思维习惯里取思考问题就是停留在自己的思维舒适区,是舒适的。如果用另外一种不属于自己的思维去思考问题,好多人都是难以做到。看别人的代码就是这样,好多人在看别人的代码时都是拿着自己的思维习惯去看别人的代码,如果这个人的思维习惯与你相似,那么你看他的代码还有可能相对轻松一点,如果他的思维习惯与你差异很大,那么你看他的代码一定是痛苦的,在看代码的过程就是两种思维方式的较量,两种思维方式在你的大脑里在斗争,思维方式差异越大,就斗争的越厉害,读代码者就表现的越痛苦。
总结,以一种平静的心态去读别人的代码,然后就是把自己从创造者角色给拉出来,做一个挖掘者,梳理者,以侦探的姿态去读别人的代码,再然后就是放空自己的固有思维去读别人的代码,坚持做到这几点去读别人的代码,长时间下来,你会发现,不但了解到更多人的思维方式,从中学习了一些优秀的思维方式,而且读别人的代码会变得愉悦起来,而不是痛苦的感觉。
我接手了这个项目,发现整个系统对外交互的接口就这一个orderController(里面不止订单维度的接口。。。)
它果然幸不辱命2370行代码。(我看不下去了就新增了一个PartnerController,希望我走后controller这个文件夹里面能多一些成员。)
槽点太多,代码太深估计各位看着我debug截图也费头发,所以挑一个简单代码规范来说
插播上面吐槽:重复代码太多,业务代码里面有这个,Utils里面也有这个,哎,我就不用,我就是玩,我就要自己造
无用代码做的非常好,懂得注释掉,不像有些地方没有用的代码还在那里放着,也不知道到底有,有没有用
还有些麻烦的写不出来!
大家上次还嘲笑我芝麻糊+奶粉,我最近还要买六个核桃补补脑
实事求是,读别人代码一般有两个极端:
一种是感觉写的非常糟糕,并不一定是逻辑不对,而是各种奇奇怪怪的换行空格,命名规范和一个长达200行代码的方法没有一句注释,甚至是一个判断里面有5~6个(++i),读着真的是非常不舒服啊,尤其是一大片的空白换行,真的是要逼死强迫症啊;
另一种是感觉写的非常好的,一般都是经过很长的技术沉淀的大佬,方法写的很简洁,逻辑也非常清楚,注释不一定要非常多,但关键点的一两行注释有一种顿悟的感觉,读这些代码真的如沐浴春风啊,和尚强烈建议读一些Google的源码,大部分写的都非常好;
不管是糟糕的代码还是优秀的代码,不出Bug的代码才是好代码,和尚陪大家一起学习,争取向好代码进步;
最后还是希望天下无Bug!!!