每个程序员只要不犯错,都能写出机器能看得懂的代码,程序能正常跑起来,自然就意味着机器正常识别了程序。
但是,真正牛逼的程序员是写出能让人看得懂的代码。
不要小看这个,虽说我们写的代码确实是跑给机器的,但是代码是人写的,而通常一个项目的开发,需要多个程序员一同协助开发,这时能写出 human readble 的代码就显得至关重要,因为不仅可以减少后期维护的时间成本,而且还能让后面加入的新同事能更快的上手项目。
要能写出干净、整洁并让人易懂的代码,必然离不开一些规则,只要自觉遵守、合理运用这些规则,代码通常都不会太差。
事实上,每个公司或者开源项目都有各自的编码风格指南文档,这些文档无不例外都罗列了十几个、上百个的条款,基本上都是干干巴巴的示例和说明,不说能不能看完, 即使看完了,也都忘了差不多,非常容易被劝退。
这次,我就从中抽离几个重要的条款,以及结合我工作的经验,把写出好的 code style 的几个注意事项跟大家说下。
只要注意代码格式、变量命名和注释三个方面,代码的“颜值”起码提高 80%。
往大的说,能写出“高颜值”的代码的人,也能从这个小事反映出他是一个细心的人,同时也具备责任感,只要把每一件小事做好、做到极致,渐渐的,你的同事和上级就会对你产生信任感。
代码格式
第一眼看代码就是看代码的整体格式,好的代码格式,一眼就能让人感到清爽、舒服,我们本身每天工作就比较繁忙了,还要面对乱糟糟的代码格式,心情肯定差到极点,感觉像是吃了一坨 shi。
文章也是一样,小林我也很注重文章的排版,我的排版也被很多读者夸赞过,不用追求花里胡哨的装饰,只要保持简洁、大方就行,虽说文章是我写的,但是文章是给别人看的,那我肯定要为读者的“眼睛”负责呀。
一个好的代码格式,只需要遵循五个字,那就是「留白的艺术」。
代码和文章,不要为了节约篇幅,把一大坨东西“挤”在一起,这样只会给人家带来压迫感。多运用空格和换行,用空格分隔开变量与操作符,用空行分割开代码块。
说了那么多口水话,接下来上点实际代码例子。
来,我上一大坨的代码给大家看看:
是吧,只需简单运用空格和空行,代码就显得很清爽,段落层次分明,读起来不会太累,也更加容易理清代码的逻辑。
所以,敲代码的同时,别忘了用空格和空行“装饰”下你的代码,你的每一处留白,都是在拯救别人的眼睛。
变量命名
不知道你是不是写过变量名为, 的代码,如果代码只是你测试用的,那也问题不大,但是我不信在你把代码越写越多后,还记得这些变量的作用。同样,也不要在一个多人维护的项目里,干出这样的事情,你十有八九会被同事孤立。
给变量命名是有讲究的,不是随意的,取的名字应该是让人知道该变量的作用,减少大家根据上下文才猜测的时间。
命名最好以英语的方式描述,而不要汉语拼音,英语词汇不过关也没事,敲代码本身就是一个“开卷考试”的事情,打开浏览器,随意都能在各种翻译 站找到合适的英语词汇。
另外,有一些变量名在程序员之间已经形成了普遍共识,这些都是可以直接使用的,比如:
- 用于循环的 ;
- 用于计数的 ;
- 表示指针的 ;
- 表示缓冲区的 ;
- 表示总和的 ;
- …
对于变量命名的风格,一般应用比较广泛的有三种。
第一种风格叫「匈牙利命名法」,早期是由微软的一个匈牙利人发明的,当时 IDE 并没有那么智能,识别不出变量的类型,代码量一大起来,要确定一个变量的类型是个麻烦的事情,于是就要求使用变量类型的缩写作为变量名的前缀字母,代码例子如下图:
关于变量命名还有一个问题是,名字的长度如何才是合理的。
有一个普遍被大家认可的原则是:名字越长,它的作用域应越广。也就是说,局部变量的名字可以短一些,全局变量的名字可以长一些。
注释
留白的艺术用上,变量名规范也用上,让每个人都能一眼看懂的代码,还差点东西,那就是注释。
注释存在的原因就是为了让人快速理解代码的逻辑,一个好的注释,是能让人只看注释就知道代码的意图。
我猜大家注释也写了不少,注释一般是用来阐述目的、用途、工作原理、注意事项等等,注释必须要正确、清晰、言简意赅,而且在修改代码逻辑时,也别忘记了要更正注释,否则就会误导其他人了。
再来,如果你发现某个地方的代码有改进或未实现的地方,而暂时没有时间去修改的时候,可以使用 来标识它,这样代码需要优化的时候,直接搜索这个关键词就可以了,也可以给将来的维护者一个提醒。比如:

注释要写的好,得要有换位思考的思维,想着写怎么样注释能让那些没有参与过该项目开发的人能最快速的理解,以便能加快他们融入该项目的速度。
总结
要写出高颜值的代码,离不开良好的编程习惯,今天主要提了三个重要点:
- 留白艺术的妙处,多运用空格和空行;
- 变量名、函数名、类名要起个让人容易理解的名字;
- 注释要写好,多换位思考,最好也要遵循一些注释标准,便于自动生成 API 文档;
文章知识点与官方知识档案匹配,可进一步学习相关知识Java技能树首页概览91492 人正在系统学习中
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!