1. 是否需要有代码规范
对于是否需要有代码规范,请考虑下列论点并反驳/支持:
- 这些规范都是官僚制度下产生的浪费大家的编程时间、影响人们开发效率, 浪费时间的东西。
- 我是个艺术家,手艺人,我有自己的规范和原则。
- 规范不能强求一律,应该允许很多例外。
- 我擅长制定编码规范,你们听我的就好了。
首先,代码规范是一定要有的,这一点不容置疑。记得刚学C语言时,老师跟我们讲一些编码的例子,譬如说等号两边要加空格,运算符的两边也要加空格。那个时候打心眼里觉得这些规矩太过繁琐迂腐,觉得咱们中国人就是喜欢搞这种形式化的东西。
大二的上学期,我在coursera上面报名了一门普林斯顿大学的算法课程,这门课程可谓是好评如潮。然而在第一次提交编程作业时我就傻眼了,评测系统甚至对于代码的风格也有明确的测试,有一处不通过都无法正确提交。风格甚至细化到for循环内部的分号和下一语句间要空一格,If语句的括号两边都要有空格……
说心里话,按照系统的提示,将代码一点一点修改后,明显感觉到代码从视觉上更为美观了。与此同时我也逐步发现身边的同学们也在养成这样的习惯,自己也理解了这样规范的意义所在。所谓规范,更像是一种约定俗成的惯例,你可以选择不遵守,规范并不是法律。但是只要你需要融入一个集体,需要和一群人进行交流,合作完成一个项目,需要阅读别人的代码也需要把自己的代码供他人阅读,这时候,规范的价值就得以体现。如果团体内的成员都能够遵守同样的规范,养成一种被普遍接受的代码风格,那么会减少很多阅读习惯带来的困扰,能够让大家心情愉悦。
基于以上的感悟,其实上面的几个问题就不难回答了。
1.比起在命名上花点心思、敲几个空格浪费的时间,读代码时不能正确理解变量的含义,因为代码堆在一起看着心情烦躁更加影响效率、浪费时间。
2.这一点并没有问题,如果你的能力特别强,能够独立支撑起一个庞大的项目,在今后的工作中完全不需要和别人合作,那你可以特立独行。
3.适度的例外没有什么问题,像是大括号的使用习惯大家就各有不同。但是太多的话,还是尽量使自己适应大众习惯好一些。
4.有资格说这句话的人,整个计算机科学界,死了的都算上也就不超过十个吧。