很多公司的招聘JD上都会写“具有良好的代码习惯和代码洁癖者优先考虑”,可见代码规范在团队协作中还是很看重的。
恰好最近给公司的项目做了一次不小的重构,看到很多不规范的代码,闲暇之时总结一下我所理解的代码规范。
代码是写给人看的
不知大家有没有想过,为什么代码规范要在JD中明确列出来? 我认为就是这东西在很多团队中很重要但往往又都缺少,才需要明确列出来,而不会列比如:需要程序员打字速度快之类的技能要求。
程序员写代码就像我们学生时代写作文,语文里有的词组、语法,这些在编程语言里同样存在。但不同的是作文是写给人看的,人是有思想有情感的,好的文章不仅没有错别字、语法通畅、而且还讲究艺术形式。而代码是写给机器执行的,只要语法没毛病,编译能通过,机器就能读懂执行。
这正是有意思的地方,程序员写代码是脑力工作有充分的自由发挥的余地,而不是流水线作业。
但是,现在的软件开发早已不是一个人单打独斗了,我们要完成一个系统或功能往往都是团队合作的,写的代码很可能团队小伙伴之间会互相调试改动。如果你写的代码过于“高深晦涩、行云流水”,导致别的小伙伴要研究个半天才能看懂,那这岂不是降低了团队开发效率。要知道机器可不讲艺术,它只管快速执行。
什么是好的代码风格
我认为好的代码应该具备以下几个特点:
格式统一
就像写作文要求段落首行空两个字符一样,代码也应该有统一的格式。一个团队的成员应该都按照一个格式要求写代码,而不是你写你的风格,我写我的风格,然后大家互相吐槽对方写的不规范。
代码格式可以选择像CheckStyle这样的工