当前位置: 首页 > 科技观察

看了这么多代码,再来说说代码风格吧!

时间:2023-03-21 01:33:37 科技观察

?本周又是N女王,又是解数独,又是回溯算法的大总结。信息量很大,记录者需要消化,所以今天聊的很轻松,但是对生活有用哈哈。?其实在交流群里,经常可以看到大家发的代码.可见很多记录者可能对代码规范了解不多,代码看着也不是很舒服。因此,让我告诉您有关代码规范的信息。我主要以C++代码为例。需要强调的是,代码规范不仅仅是为了让代码看起来舒服,这是一个很重要的习惯。题外话:下班后,“尤其是在大厂,不用看谁技术牛逼,不用看谁代码牛逼,看一眼代码风格,立马就能分辨出来无论是正规军还是野程序员”。很多人甚至不屑于看懂代码规范,认为实现功能就可以了。这种观点在上个世纪其实很普遍,因为那时候一般写代码是不需要合作的。.现在一些小公司,甚至大公司的一些技术团队都不注重代码规范,只是及时推出功能来完成工作。这种情况要从两个方面来看:第一种情况:项目在生意上挣钱,每年年末都几十万。在项目初期,你还是比较关心代码风格的。赶上进度,推出功能,就赚不到钱了,比如15年的王者荣耀。第二种情况:项目没赚到钱,半死不活,代码没有设计好,没有规范化,对技术人员的伤害很大。这方面的例子比比皆是。“99.99%不注重代码风格的团队都是第二种情况。”如果你赶上了第一种情况,那么恭喜你,本文后面的内容就不用看了,哈哈。代码规范变量命名这里我简单说一下规范问题。“权威的C++规范主要是Google的”,我给大家下载了一个中文版,在公众号“CodeCaprice”后台回复:googlec++编程规范,你就可以搞定。“具体规范要根据自己团队的风格来定。”最重要的是融入团队。先说变量的命名。主流有以下三种变量规则:Smallcamelcase,largecamelcasenomenclatureUnderscorenomenclature匈牙利语命名法smallcamelcase,第一个词的首字母小写,后面其他词的首字母大写。例如,intmyAge;CamelCase也将第一个单词的首字母大写。例如:intMyAge;一般来说,java和go都是驼峰命名,C++的函数和结构也是用大驼峰命名的。函数命名用驼峰命名,入乡随俗。”下划线命名法是名称中的每个逻辑断点都用下划线标出,例如:intmy_age,"下划线命名法是随着C语言的出现而流行起来的。如果你看过UNIX高级编程或者UNIX网络编程,你会发现这种命名方式被广泛使用。”匈牙利命名法是:变量名=属性+类型+对象描述,例如:intiMyAge,这个命名法是由一个来到匈牙利的程序员在微软内部推广的,然后推广到全世界的Windows开发者,这个命名法可以提醒开发者在没有IDE的时代遍历的意义,比如看到iMyAge,不用找定义就知道是int变量,缺点是一旦变量的属性,那么就是变量名会在整个项目中改变,所以会造成代码维护困难。”现在IDE很发达,不需要标记变量属性。IDE会帮我们识别,所以基本没人用匈牙利表示法。”虽然我不用IDE,但是VIM还是不错的。我做了一个总结如图:编程风格水平空白(代码空间)我经常看到一些同学们的代码堆在一起,看起来很费劲,或者有的空格有空格,有的没有空格,很不爽。统一,有的同学为了简化代码,甚至把所有的空格都省略了。如果大家注意一下我的解决方案上的代码风格,我的空间都是标准化的。“我解决的所有C++代码都严格按照谷歌C++编程规范,让代码看起来更干净。”我举几个例子:运算符两边必须有空格,比如i=i+1;分隔符(,和;)分隔符前没有空格,后面保留空格,例如:inti,j;for(intfastIndex=0;fastIndex0)return9;n--;}下面是我刚写的里扣283的代码,移零。可以看看整体风格,注意空间的细节!classSolution{public:voidmoveZeroes(vector&nums){intslowIndex=0;for(intfastIndex=0;fastIndex