前言
这是一篇如何写好代码的水文,因为最近输出了不少干货,但是大家点赞太少,我越来越没有激情了,那就放放水啦。所以如果大家觉得我的分享对你有用,动动发财小手,赞起来吧!虽然是一篇水文,但是我依然建议你能听我唠叨唠叨,说不定还是会有共呜的。
关于好代码
能跑不就报错是好代码?
能跑不报错的的代码只能算是基本合格,如果总分是100分,这只能算是60分。小伙伴,如果你是这样想的:能跑不就行了,那还真不挑不出什么毛病,毕竟你也是及格了,完成了业务方的需求。但我并建议你这么做,编程之路太长了,不能刚开始就给自己画一个圈,固步自封了。
性能至上的代码是好代码?
能在自己写的程序上追求至少性能的人,是值得欣赏的,至少是一个有追求的人,但是一味追求性能也不能算是好代码。我去隔壁村串个门,给我造一架宇宙飞船干嘛,一个自行车就够了,所以极致的性能未必就是好代码,除非业务方有这样的需求。那么性能不重要吗?性能当然重要,代码最终是要给机器执行的,但是首先是给人看的,所以如果让我在高效的性能和良好的阅读性之间做选择的话,我会先选良好的阅读性,其次才是高效的性能。
各种技巧的堆砌是好代码吗?
熟练掌握了很多优秀的编码技巧的人,比如lambda表达式,肯定也是对技术有追求的人,这很好。但是有没有想过,一个项目通常是有多个人协作完成,如果其他人,对一些新颖的技巧并没有掌握熟练,他在阅读你的这些技巧的时候,必然要花费更多的时间,你的本意实际是想用新颖的技巧来提高效率,实际上只是提高了自己的效率,可能拉低了团队的整体效率。技巧这种东西,归根结底是锦上添花的东西,会用说明能力比较强,不会用也并不说明能力就差,因此,我不认为技巧是好代码的标准之一,我始终坚持“大家好才是真的好”。如果你能把一个优秀的技巧分享给更多的人,让更多的人都掌握了,你的强就已经超越技巧本身了。
什么是好的代码?
是不是要疯了,那到底什么才算是好代码?我不是学术派,我不认为存在有固定好代码的标准,适合自己的就是最好的,鞋合不合脚,只有自己知道。就比如我所就职的公司,是一家外包性质的公司,服务好好客户是我们的第一准则,能够满足最短的时间交付、最好质量的标准就是好标准。没有什么比客户满意,及时签字验收,更重要的事了。在平时的实际开发中,也会制定一些编码规范,这些规范的出发点也是围绕业务方展开的,客户就是上帝,这和一些有固定产品线的公司有所不同。
当然,外包性质并妨碍对优秀技术标准的追求,我们鼓励创新,鼓励进步,但一定是在服务好客户的前提下。其实不管是什么场景,好的东西应该是能给人带来实在好处的,才是真的好。如果一个优秀的技术标准,不能给客户带去效益,也不能提高生产力,那就让它待在纸上吧。能抓老鼠的猫才是好猫,但波斯猫只适合心跳舞。
怎么写出好的代码
最近研究了几部网文小说,突发灵感,如果用网文小说的套路去写代码,那一定是能写出来好代码。读过网文小说的小伙伴一般都知道网文小说有几个特点:
主人公的名字起好听一点,如欧阳烟、西门吹雪、司马长风、萧晨;
段落小一些,传统小说一段动不动都半页、一整页,网文小说里大段落基本没有,对话、一两句就是一段;
情节紧凑,爽点很多,满足了绝大多数人的幻想;
那么写代码的时候,是不是也可以学习一下这个套路:首先,把类名、属性名、方法名、变量名起得优雅一点,别动不动就a1、a2,还有m、n的,谁知道这啥意思,基本让人能见名知义吧,太长的名字用一下缩写,别不动一个类名几十个字符;还有那些英文、拼音混着来的起名的,见着这种的简直锤死你的心都有;
其次,就是方法的长度,别动不动写一个方法就800、900行,能不能学习一个网文小说中的段落部局,根据业务稍微封装一下,把每个方法控制在100行,最多150行以内,起码后续阅读的时候舒服一点;
再者,就是多搞点注释,特别是逻辑比较复杂的地方,代码逻辑要清晰,注释也要表达清楚;
今天就水到这吧。嗨,小伙伴,共鸣了没?
没共鸣也没关系,这是好事。