我加入的几乎每一家公司都会有一套编程规范,虽然在一定程度上起到了统一代码风格的作用,不过我仍然认为,过分强调规范,其实是错误的;
首先,几乎每家公司都有自己的规范,每家公司的规范都不一样;甚至就是谷歌和c++标准委员会,他们的意见有时候也不统一,甚至大相径庭;那么谁的规范才是对的?才是标准?
我认为写代码是一件很自由的事,就像下围棋,本来就应该是自由自在的,所谓的规范可以看成是定式,但是这些所谓的定式,就一定对吗?我想随着AI的出现,结果大家都看到了;
总是说代码应该这样写,而不应该那样写,只有这样写是对的,写代码难道不应该是自由的吗?
每个篮球运动员都有自己的风格,比赛中虽然有战术,真正的超级球星是不会拘泥于战术的,你可以来个超远三分,你也可以突破,闪开防守球员来个非常规投篮’
没有哪个战术会说超远三分就合理,能得分就是合理,能赢球就是合理;
这些代码,本身就不是最本质的东西,所有的代码在执行前都会被编译器翻译一遍,最后计算机执行的那些指令才是本质的东西;
我始终坚持逻辑性正确才是最重要的东西,其它的根本就不重要
非要说什么指针就一定要判空,花括号一定要2个空格或者4个空格,代码多了一个空行?代码一定要加注释或者一定不能有注释,等等,等等;这真的很扯淡,写代码难道不应该是自由的吗??
有些所谓的大公司给代码风格加上了很多条条框框,自认为这是正确的,实际上就是束缚了程序猿的创造力,是一种犯罪,只不过自己没有意识到,还自认为这是正确的,真的很可笑。
说到这里,必然有反驳:说代码规范是为了统一风格,便于管理;每个人都写自己的,代码怎么维护?我怎么理解别人的代码,怎么协作?
说到这里,我就问,
1,为什么我一定维护别人的代码?或者别人一定要维护我的代码?
2, 如果一个人真的想维护另外一个人的代码?难道他会因为那么点代码风格的个性差异,他就看不懂吗?或者就耽误了多少时间吗?
我想好的代码,即使风格不一样,依然好读懂;为什么好代码只能一种表达形式,而不能是多样的;
首先,毫无以问,维护自己的代码永远是最高效的,这是不变真理;维护别人代码?我认为这种一般发生在工作交接,这种都会给一段专门的时间去读代码;
如果一个公司总是需要一个程序员时不时的去维护别人的代码,那么这个公司的管理是有问题的,是低效率的;程序员花了大部分时间,去看别人的代码,而不是创造价值;
如果说世界上真的有编程规范,我想这个规范就只有一句话:
没有规范就是唯一的规范;写代码应该是自由的