一、有关代码规范的讨论
对于是否需要有代码规范,请考虑下列论点并反驳/支持:
- 这些规范都是官僚制度下产生的浪费大家的编程时间、影响人们开发效率, 浪费时间的东西。
- 我是个艺术家,手艺人,我有自己的规范和原则。
- 规范不能强求一律,应该允许很多例外。
- 我擅长制定编码规范,你们听我的就好了
关于代码规范的一些看法:
1.代码规范是良好的编程习惯之一,有利于代码的维护,也能提高开发效率。虽然可能在代码规范上会花费一些时间,但这样的习惯能够有效减少以后调试、阅读代码的时间。比如:用规范化的变量名虽然比随便起的名字要多打几个字,但是对规范化的变量名对程序开发的益处是不言而喻的;在团队开发中,每个成员只能开发相应的模块,很用可能会用到队友的代码,接口规范在团队合作中就显得尤为重要。所以,代码规范是极必要极有益的。
2.在团队中,写代码不只是一个人的事情, 自己写的代码能被别人维护、使用,所以为了团队能够顺畅得工作,自己也要遵循团队的代码规范。
3.我觉得代码规范应该是越统一越好,但是也应该允许有例外。准确而又有弹性的规范能够获得程序猿的接受而且也更合理。
4.代码规范应该由团队统一制定,可以由一个人主导,但是应该征求大家的意见。
二、代码复审
由于结对伙伴是外国友人,代码能力比较差,提交的作业只有不到40行,我就对自己的代码进行复审吧。
1.缺乏良好的代码规范
我重新阅读了自己一个星期前写的工程,发现对很多函数的功能还是不能迅速了解,需要仔细阅读函数内部的代码才能明白程序功能。这种问题就是由于没有良好的代码规范导致的。我自己写的代码没有前置和后置条件,也没有注释来描述函数的行为和功能,仅仅是函数名称能够提示我这个函数的具体功能,而由于命名不准确有时候多个类似的函数名会引起歧义。
2.程序没有对异常输入进行处理
这个问题应该是在设计的时候没有考虑异常情况而且在测试的时候对异常输入也没有测试完全而导致的。
例如:1++2 会导致程序崩溃
1 2 + 1 - 的结果是2
3.代码结构有问题,计算应该独立出来形成一个计算类。而我封装到了Expression类中,数据和逻辑处理没有分开。
4.写了3个全局变量,其中有两个可以转换成局部变量。
5.对于异常情况返回-1,但是当将这个程序扩展成支持负数的程序的时候就有问题了。程序对异常处理还是有问题的,可扩展性差。
6.缺少文档、缺少单元测试。