代码审查最佳实践

上一篇 / 下一篇  2012-08-15 09:14:49 / 个人分类:杂谈

.]:sDB@9@U0  代码审查可以帮助提高代码质量,避免由于代码习惯而造成的bug。下面列出的这些要点因该可以作为大部分代码审查的指导,如果是 Java 应用的话,这些建议应该被视作最佳实践。51Testing软件测试网| cV%k'}[o1kv|

51Testing软件测试网+r.`2m {TZ

  文档

Fu4LJ*q9hm b E0

vO!may h0  1、Javadoc 应该在每一个类和方法中添加。

-Z:^F5H5U051Testing软件测试网 yN8_(F7S:?/x&~m

  2、如果是修复某个 bug,应该添加 bug ID。

4?1^K%F~~N~Z051Testing软件测试网1A\m6ax'}

  3、走捷径的方法或者复杂的逻辑要有解释。

8^,|6U%Q2o3q0

1nI zN g(|E*Q\0  4、如果代码会被公开,每个文件头都要标注版权信息。51Testing软件测试网j iLw`C+^?

5n:AgC9~Vn0  5、复杂的 HTML,JavaScript,CSS 应该包含文档。

X`W']0f051Testing软件测试网E6Q!V%ia8mBF

  功能51Testing软件测试网kl(~g6jWAe

NY4?&J W C,y%x*P(^0  1、如果类似的逻辑被使用了多次,应该把它写成一个帮助类,然后在多出调用。

L I U\L1S5aanI051Testing软件测试网-PXA p(t$TG

  2、鼓励使用 API 而不是重复编写代码解决相同的问题。51Testing软件测试网^9m*xc"q/J|

51Testing软件测试网7a5[a4J t"x z.B}

  3、要强调代码的单元测试51Testing软件测试网d H0x?'OgQDPz

s[n#^;l.j.b0  4、任何新加的代码不应该破坏已有的代码。51Testing软件测试网;w8^G?/d

51Testing软件测试网5e"r#?"l.Cd MQ2O

  5、假如是 Web 应用,JSP 不应该包含 Java 代码。51Testing软件测试网 YHXWV

O&{&zq'q9Y0  安全

@6Z3l;|_~0

K$z%RD&?#z;}zg0  1、任何代码都不能执行用户的输入,除非转义过了。这个常常包含 JavaScript. 的 eval 函数和SQL语句。51Testing软件测试网x,h@&o)l&K[

QB| ]9^D/~}-U0  2、禁止那些在短时间内提交非常多请求的 IP。51Testing软件测试网v/Zm3e*H

51Testing软件测试网k7`d4l^G&@/boZ

  3、任何类,变量,还有方法都应该有正确的访问域。51Testing软件测试网E3w;H0K*zA%od

51Testing软件测试网vBE~ L2Bm

  4、尽量避免使用 iframe。51Testing软件测试网\/|0LM"o/x5}

~`0S0B;C0  性能

6YR6`u3r051Testing软件测试网2e\NY.~6~p%R

  1、所有数据库和文件操句柄在不需要的时候都应该被关闭。51Testing软件测试网1{5r#hjl| W

51Testing软件测试网v3N7k:?6R/`

  2、SQL 语句的写法会导致性能千差万别。51Testing软件测试网m"JhNcJ(Ke#M

51Testing软件测试网4xh {2jRn Y;? U

  3、鼓励创建不可变(immutable)的类。51Testing软件测试网N3X!I7q%G:?5o

a&ZP"UJj.YYb$`O0  4、类似的逻辑代码,尽量通过 if else 语句来实现更多的重用。51Testing软件测试网S|W&M ]pM-A%j*Z

51Testing软件测试网&J fiw9_n"j+t

  5、尽量避免使用重对象(heavy objects)。51Testing软件测试网%omA7TG N(C/o

4l)g0x VT1TTm0  6、如果是 Web 项目,请检查是否使用了合适的图片尺寸,CSS sprites 和浏览器缓存等技术。

%oGi1b2yw%_`]0

g!d0g8`9z#^(J E0  7、全局都需要的信息保存在 application context 中。51Testing软件测试网7|Z(Z)X^ Pb3B{

-y[$\3xr!XvB9ozS1L0  编码习惯

#{7Ks'Ws0yg}8x U051Testing软件测试网?&C(v#C\3c&Z%u7@} l

  1、没有被使用的变量要删除。

D#N _^|5jO'A9P051Testing软件测试网/WGF"F~"g`e

  2、针对不同的 Exception 要用不同的 catch 语句,而不是一个 Exception 解决所有问题。51Testing软件测试网 }P [ n.X

d^`:EZL2Hg0  3、针对变量,方法和类要用相同的命名方法。

1G\(m+I n1bo051Testing软件测试网-};`N-lS/~

  4、常量应该被写在独立的常量类中。51Testing软件测试网x d y0}Gb ^F9eCal

51Testing软件测试网}?,TW%XpQH

  5、每行代码的尾部不要有多余的空格。51Testing软件测试网/I\se)DD||1l"V1a

51Testing软件测试网|l+B4riT@vr3i

  6、对于括号,循环,if语句等等要用统一的格式。51Testing软件测试网H ZOt.ML2n

51Testing软件测试网x1]9`*Ru`*M

  7、每一个单独的方法不应该超过100行。51Testing软件测试网U"wYYfO5_

F&C-zq.QnHM0  8、一个单独的语句不应该超过编辑器的可视区域,它可以被拆分成几行。51Testing软件测试网~R L)GZLa%i

51Testing软件测试网QsX(L(aW0h/]

  9、检查 String 对象既不是null也不是空的最好方法是 if(“”.equals(str))51Testing软件测试网%^/xx5Wc XB

51Testing软件测试网3`2UG o!ifGT?_ ` l

  10、假如类有很多成员变量,并且实例化的时候只需要少数变量传入的话,最好使用静态工厂方法,而不是重载构造函数。

;gp;Z F"L ZY,]0

h5p aP7o!F2V0  11、给方法添加适当的访问控制,而不是所有都是 public。51Testing软件测试网&F F2W@0e!p

51Testing软件测试网1?+|C[%NpU%v?

  12、遵守项目中使用的框架的最佳实践建议,例如 Spring,Struts,Hibernate,jQuery。51Testing软件测试网`1EyXvo0_:^

51Testing软件测试网ta%tY"^7{R,~

  以上的某些注意点可以通过静态代码检查工具完成,例如 CheckStyle,FindBugs 和 JTest。

?~6up}SmNA0

TAG:

 

评分:0

我来说两句

Open Toolbar