9 u, g' g: D r$ i5 w7 S1)、需求、设计中的重点功能(结合需求/设计的评审产出) * r4 f1 ~: c( J- B$ F, U" m9 s) o" h! F+ I9 H, W
2)、代码格式校验 ) _- D) N3 l% H Laction/façade等系统入口是否有数据格式校验 $ C1 i. {8 @( h% n! v+ \需要存入数据库的数据字段是否有长度校验: q0 m; S; U4 [. h" O- x4 `7 C" ?
4 h; R: \. o* l7 t
3)、分支/循环* c4 N7 m0 o; \; Y& c; A9 }
if-else/switch是否处理了所有分支 1 b. K9 [6 s( f Q分支的条件语句是否有“副作用”;即,条件语句是否会改变系统状态/数据等 * a' V, H9 y7 Y5 C/ a3 `% ~7 }循环边界是否覆盖了所有元素 ; I8 a- t" v$ m; H# p* x( B8 B是否有死循环等- O6 N; u! O2 G+ r
% Z8 A4 ]; @) |- L" m' U8 g% x4)、异常处理+ ?$ {# l' ~8 J2 N0 b2 ]0 M% x/ G
是否有“吃掉异常”的情况 , i: o L* B( o* N/ Q是否记录了异常日志/ K% F% f' p0 B" ?8 U
如果二次抛出,是否有合理的异常层次/结构6 ~. e8 e8 S2 g& u9 \) ^% L0 ^
如果内部处理,对异常的处理是否能保证后续代码正常运行 ' @% j/ M8 v [( D. S" z2 D : d- j5 d' \7 c1 v9 ^5)、单元测试: i, C+ ~! {5 D3 M* C, J
是否有单元测试 & j3 e* L( `" S* ~单元测试是否自动化- r% k4 [5 m1 }' p
单元测试是否能完整覆盖需求* I2 M$ ~# q( t8 `3 K' [- x
- X! k7 B# b0 ]5 m; U1 o
6)、 事务处理 4 u$ v z# w- [7 y2 i9 n事务范围是否合理;或者说,是否把不必要的操作放到了同一个事务中 . p0 D2 V( Q$ X5 M8 l事务传播方式是否合理(required,never,new等配置)+ q; u% V! p% x! g7 l6 l% q8 g
4 _8 M R- ^, K; R, P1 q( S7)、sql语句3 q" ]. h3 w& @1 g# E3 Z% A$ N
sql语句是否正确. j7 w2 ?3 c- i9 Z4 q+ i
使用mybatis的动态语句时,是否有潜在的sql语法问题 ( S' F6 {; l+ E/ X Y% d) f/ r 6 C, G g7 B8 r! s3 C8)、第三方组件 4 ^2 ]" \) j5 F9 w使用Redis,RabbitMQ等组件,是否真的对组件完全了解,在使用的过程中是否正确执行了开启与关闭操作。. c# V% e y( ^( u( y( g
/ C4 x7 [$ [7 B a: }4 f9 ^$ I* I
3. 可继承性。代码重用性,根据新的功能不用修改目前代码或是很少修改吧所需要的功能添加上去。 a1 L/ c! V8 c7 O+ e9 w& L+ v& o( g
4. 可测性、可配置性和已修复bug。把所设计的代码根据功能进行,尽量少的bug。项目模块化,根据模块的配置进行项目的组装,成为新的项目。 1 m. B! x' ^& |( Y% [4 L; D# ?( O" C$ z9 X
% m3 ~4 q( Q+ k8 ~4 w9 J
\( [8 Z% r# X/ o& f 关于其他方面的说明定义:* b, W I* q7 M. A# ~( _- H
) O- R; w4 e9 Q* |
'Good code' is code that works, is bug free, and is readable and maintainable. Some organizations have coding 'standards' that all developers are supposed to adhere to, but everyone has different ideas about what's best, or what is too many or too few rules. There are also various theories and metrics, such as McCabe Complexity metrics. It should be kept in mind that excessive use of standards and rules can stifle productivity and creativity. 'Peer reviews', 'buddy checks' code analysis tools, etc. can be used to check for problems and enforce standards.( x- H( E6 f+ F/ _; x- c
" s \ w8 E& V+ B0 e# r
另外,来自 MSDN END BRACKET 栏目的作者 Paul DiLascia ,也列出了优秀代码应有的物质:不管你用什么语言进行开发,所有的优秀代码都会展示出共有的经典品质:简练,易于理解,模块化,层次性,设计良好,高效,优雅,并且清晰。( N! `" t& @/ [, `! L+ S
--------------------- 0 J& s4 b7 w: ~2 n% s
作者:美丽海洋 " @# { s5 j: ~) C- t
来源:CSDN 7 T* T8 I2 \( H: C , d8 ]7 R* c! C# ^% \4 x: x {8 y ; e+ p- A2 |( o" C! d$ Z* z % }/ l& ?, u/ q6 K8 G; a4 n; |' Y: Q t$ K" @8 H& Q! k& I. B