|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本帖最后由 多言数穷 于 2019-12-27 10:18 编辑 M' d8 z1 F2 |7 v9 |+ f* }
/ a2 c5 I' n5 L6 O0 Z
0.1前言
6 }/ @! Y" j" Z$ @- d/ D- w为提高产品代码质量,指导广大软件开发人员编写出简洁、可维护、可靠、可测试、高效、可移植的
+ Q. ^! O5 i0 |* P代码,编程规范修订工作组分析、总结了我司的各种典型编码问题,并参考了业界编程规范近年来的- V8 H- l4 l0 ~/ v9 p% D
成果,重新对我司1999年版编程规范进行了梳理、优化、刷新,编写了本规范。2 F( ^1 @8 G$ E" Q
本规范将分为完整版和精简版,完整版将包括更多的样例、规范的解释以及参考材料(what & why) , " F t/ I' y/ Q4 B# L1 e3 {
而精简版将只包含规则部分(what)以便查阅。
! X. U( `) t& a在本规范的最后,列出了一些业界比较优秀的编程规范,作为延伸阅读参考材料。( H6 u8 c% @$ X0 I" r" J
0.2代码总体原则
) e4 s0 ~+ e2 x5 T9 e1、清晰第一) T M, ?1 G- e+ f
清晰性是易于维护、易于1构的程序必需具备的特征。代码首先是给人读的,好的代码应当可以像文( Z; n$ ?% j3 e1 c) {/ [
章- -样发声朗诵出来。' p; o/ n( V z$ }
目前软件维护期成本占整个生命周期成本的40% ~90%。根据业界经验,维护期变更代码的成本,小型系$ ~! s3 t5 l# F2 Y; L S& ~
统是开发期的5倍,大型系统(100万行代码以上)可以达到100倍。业界的调查指出,开发组平均大约
& K! n7 b5 I- d6 U! ~( s/ n一半的人力用于弥补过去的错误,而不是添加新的功能来帮助公司提高竞争力。
* h; R R) n7 |; \“程序必须为阅读它的人而编写,只是顺便用于机器执行。”.一Harold Abelson和Gerald Jay' }2 k/ X, {. I X, H0 f( B6 b9 i
Sussman
: {9 H( q6 D+ g, a* D. m) s2 V“编写程序应该以人为本,计算机第二。”一-Steve McConnell! O- j4 O i2 I" G3 ?$ X: d+ E9 G
本规范通过后文中的原则(如头优秀的代码可以自我解释,不通过注释即可轻易读懂/头文件中适合放: l1 Y3 f( }9 _7 [) j! c" f
置接口的声明,不适合放置实现/除了常见的通用缩写以外,不使用单词缩写,不得使用汉语拼音)、
; J- }/ J- }3 l6 j1 _规则(如防止局部变量与全局变量同名)等说明清晰的重要性。5 @+ B3 }" \+ Q5 }
- -般情况下,代码的可阅读性高于性能,只有确定性能是瓶颈时,才应该主动优化。
0 |( E1 z3 q" u2、简洁为美
9 B% b3 P( V7 C, o& h( i简洁就是易于理解并且易于实现。代码越长越难以看懂,也就越容易在修改时引入错误。写的代码越
; K' d K( ?; h多,意味着出错的地方越多,也就意味着代码的可靠性越低。因此,我们提倡大家通过编写简洁明了
# H2 j4 C, V" }的代码来提升代码可靠性。# S1 q4 W3 v- Z6 |
废弃的代码(没有被调用的函数和全局变量)要及时清除,重复代码应该尽可能提炼成函数。
9 T5 j# f6 g+ }6 j/ X本规范通过后文中的原则(如文件应当职责单- -/-一个函数仅完成一-件功能) 、规则(重复代码应该尽3 x6 i" A4 Y5 Q2 o" t. |7 l; Q$ c2 l5 [
可能提炼成函数/避免函数过长,新增函数不超过50行)等说明简洁的重要性。) C0 C+ ^0 h7 Z( {
|
|