个人博客作业—2
一、代码规范有必要吗?
对于是否需要有代码规范,请考虑下列论点并反驳/支持:
1.这些规范都是官僚制度下产生的浪费大家的编程时间、影响人们开发效率, 浪费时间的东西。
反驳:大一学C语言课的时候,老师强调编程重要的一点就是可读性和可扩展性,尤其是在多人完成一个大型项目的时候,让别人看得懂显得重中之重。如果想让自己的程序不是“一次性的”,那么意味着大家应该共同遵守类似交通法规的一种编程法则,缩进,命名,文件结构,注释风格如果处理得当,可以让别人轻松的阅读任意一段代码,并轻易的看懂它们,使大家的编程效率提高。原来看过一篇文章,里面对比了印度和中国在IT领域的差距,文章提到中国盛产很多不规范的程序员,并且做了测试,对于同一个程序,中国人有很多种“个人风格”写法,而印度人却能惊人地一致。这看起来很不重要,似乎只是个小问题。但在硅谷,印度人的地位远远高于中国人的原因恐怕就在于良好的职业素养。可以说,不考虑代码规范的程序员是不职业的。在开发中,往往人们通过基本结构了解关注的功能,此时,代码规范可以增加人们开发的效率。
2.我是个艺术家,手艺人,我有自己的规范和原则。
反驳:既然是个艺术家,那么不如按照自己的行为习惯开发一套编程语言吧。比如我觉得松本行弘的Ruby就比较行云流水,符合东方人的思维。而且好像现在有些人很热衷于汉语编译器,挺写意的。如果自己不能按照自己的风格自成一家,那么我觉得还是接受大家共同的规则才能和谐。每个人都有自己的编程风格,就像每个人语音语调都不一样,但是大家都用普通话交流,就像标准的代码规范,如果谁用家乡方言,不熟悉你的人必然产生不同的理解,你如果不能用大家共同语言来交流,要么就自己发明一套语言并且让大家接受,要么就停止与其他人的交流。否则,还是老老实实的按标准来吧,毕竟很多艺术家在生前都是让人厌烦的。
3.规范不能强求一律,应该允许很多例外。
反驳:当按照某种编码规范进行具体项目编程时,肯定会在某些地方你的编码风格会优于这些规范。实际项目的开发,自然会根据团队的协商来制定相应的代码规范,每个团队有各自的规范,这些是可以更改的。但就一标准来说,而不是单就某一个项目,还是应该规范代码。比如全局变量有害,但是也不是不能用。程序的具体实现虽然不同,但框架应该相一致。
4.我擅长制定编码规范,你们听我的就好了。
反驳:风格是程序员的灵魂,每个人都想在枯燥的代码中留下点自己的印记。但是一个人的风格往往不那么合理,即便很合理,也可能不符合大多数人的行为习惯。所以我觉得不如大家一起找出相同点,找到都能接受的编码规范,才是最合理的。如果你的风格不那么受欢迎,那还是接受更多人的习惯吧。
二、代码复审
程序是否能工作?它是否执行了预期的功能,它的逻辑是否正确?
程序实现了预期功能,每个类的逻辑也正确。
所有代码是否容易理解?
代码还是很容易理解的,可能是题目比较直观的原因,注释,缩进,变量名,空格等都挺规范
它符合你约定的编码习惯吗?这些通常会包括括号的位置、变量和函数命名、行宽、缩进、代码格式、注释。
符合
有冗余的或重复的代码吗?
没有多余的代码,不同模块实现不同的约束功能
是尽可能模块化的代码吗?
代码用C#实现,模块实现得很明确
有全局变量可以替换吗?
没有
有任何注释掉的代码吗?
没有
循环有一定长度或者终止条件?
那是必须的,不然能跑吗
有哪些代码可以被库函数替换掉?
没有
记录或者调试代码被移除了吗?
移除
所有的输入被检查(对类型、长度、格式、范围)和编码了吗?
编码了
是否有注释和代码目的描述?
有
所有函数都有注释吗?
有
测试存在吗?它们是否全面?最少要达到你期望的代码覆盖量。
对每个函数都进行了单元测试。