1.是否须要代码规范:
(1)这些规范都是官僚制度下产生的浪费你们的编程时间、影响人们开发效率, 浪费时间的东西。
首先来讲,从短时间上和个体上来看,一个团队的代码风格必然会在必定程度上与我的的代码习惯有所冲突,因此在这个层面上来讲,他对个体的开发效率在短时间上会有必定影响。
然而,在宏观上,从长远角度出发,开发一个项目,是一个团队的事,制定一套代码规范会让团队的合做更加高效,更加紧密,由于代码规范的制定会让团队成员更易理解他人的代码,而且能让迭代更加轻松,而且一个好的编码风格也会让个体有所提升。
(2)我是个艺术家,手艺人,我有本身的规范和原则。
我认为这句话是正确的,如果真把程序员比做艺术家手艺人,那每一个coder必然有本身的规范和原则,在咱们进行单独开发时,秉持这些原则无可厚非,然而程序员并不能像艺术家同样始终以一个个体存在着,当他加入团队开发时,就必然不能总凭着本身的性子来我行我素,因此在团队开发时,仍是要坚持团队的开发规范和方向原则。
(3)规范不能强求一概,应该容许不少例外。
这句话我保持中立态度,由于了解很少。其实我以为,一个代码规范也是有好坏之分的,这个好坏的评判是在与项目需求的覆盖程度相关的,若是真的是须要大量例外才能支持这个项目实现功能的话,能够说这个代码规范是不合格的。因此,在没必要要的时候,即代码规范和功能实现不发生冲突的时候,仍是要遵照规范的。
(4)我擅长制定编码规范,大家听个人就行了。
代码规范是一个团队所共用,因此应该由一个团队有经验的人员一块儿制定,这样在你们的代码习惯和需求实现的逻辑上找一个折中的结果。
2.代码复审:
(1)Does the code work? Does it perform its intended function, the logic is correct etc.
代码能够正常运行,通过测试没有发现明显的逻辑错误。
(2)Is all the code easily understood?
代码仍是比较容易读懂的,变量和函数名有实际意义,因此比较容易理解。
使用了大量库函数,因此功能逻辑也比较清晰。
中文处理的一些部分写的着实有点复杂,不太容易理解。。。。
(3)Does it conform to your agreed coding conventions? These will usually cover location of braces, variable and function names, line length, indentations, formatting, and comments.
代码风格我比较认同,变量名,函数名,常量名有实际意义,又有不一样格式,表达式符号之间有空白符,清晰明了。使用驼峰法命名。
(4)Is there any redundant or duplicate code?
代码重用率很高,把功能封装成函数,进行调用,减小冗余。
(5)Is the code as modular as possible?
作了必定程度上的模块化,然而在面向对象方面作的并非特别彻底,仍是能够看出明显的面向过程的编码思想。
(6)Can any global variables be replaced?
没有全局变量
(7)Is there any commented out code?
有注释掉的代码,是被否认掉的代码,还有一些功能上的说明。。。。还有一些表达情绪的话。。。
(8)Do loops have a set length and correct termination conditions?
有,通过测试没有死循环出现。
(9)Can any of the code be replaced with library functions?
额。。。对cpp的库不是太熟悉,并无发现明显的能够用库函数替换的地方。
(10)Can any logging or debugging code be removed?
被注释掉了。
(11)Are all data inputs checked (for the correct type, length, format, and range) and encoded?
若是-r后的参数要求大于1,-n后的参数要求大于0,不然会报错。
若是-e -a后的文件名对应的文件不存在,则会报错。
(12)Where third-party utilities are used, are returning errors being caught?
没有用到第三方开发库。
(13)Are output values checked and encoded?
进行了检验,并按照规定的格式对数据进行了编码。
(14)Are invalid parameter values handled?
对参数值和参数名都进行了检测,不会处理没有规定的参数名,对于错误的参数值会进行报错。
(15)Are all functions commented?
没有对全部函数进行之注释。
(16)test
没有提供单元测试,可是进行了性能测试。
程序员