设为首页收藏本站|繁體中文 快速切换版块

 找回密码
 立即加入
搜索
查看: 1274|回复: 4

[讨论] 15个编程好习惯

[复制链接]
  • TA的每日心情
    慵懒
    2016-4-21 12:07
  • 签到天数: 3 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    累计签到:3 天
    连续签到:1 天
    发表于 2011-3-23 22:12:10 | 显示全部楼层 |阅读模式

    马上加入,结交更多好友,共享更多资料,让你轻松玩转电力研学社区!

    您需要 登录 才可以下载或查看,没有账号?立即加入

    ×

    1. 动手编码之前,你需要对要编码实现的解决方案有一个正式的或粗略的设计。永远不要在没有任何设计的前提下就开始编码,除非所编代码不重要。

    2. 优秀的代码文档跟编程语言知识一样重要。在代码源文件中,为每个主要的代码段添加注释,解释代码的基本逻辑。最好注明程序的构建和修改日期,以及修改的原因也是非常有必要的。4 R6 P9 I7 K# J1 d- `5 k0 O
    ; j' b& c; n: ]0 G$ V% n
      3. 维护程序的各个版本同样重要。当前有些编程工具都自带一个版本管理工具。无论你什么时候改变自己的程序,它们都会将其保存为.bak文件。
    % _' @+ e5 g/ ?5 e
    0 y( S/ K9 n: R5 |9 E  我的方法是为每个程序维护三个不同的版本。比如说,我有一个名为program.c的文件,这个文件同时也被其他项目组成员使用。我把这个文件复制为 program.c.old作为备份文件,并且当我修改时,我会备份另一个名为program.c.wrk的副本文件。当成功完成修改时替换 program.c.wrk文件。# j0 n  v8 b6 ~- y) e9 \
    1 |3 n+ J( Y2 Z/ d6 R
      你还可以给自己的程序版本添加一个日期或一些注释,像program260505.c或programReadFnWrking.c。: |4 N, F/ M2 p6 b2 e# F7 Z
    5 t$ M& J8 W$ L, ~. Z
      4. 如果工程包含多个源文件,则声称一个README文件,注明每个源文件、数据文件、临时文件以及日志文件(如果有的话)的作用。你还可以注明编译和运行步骤。
    " k* V; x" S: p9 S' L+ p  v9 T% L! |4 q9 Q* a5 a3 ]3 K3 I' t
      5. 有时候,你一定想知道为什么IF语句没有得到预想的结果。可能你使用的是等号,也就是“=”,而不是条件判定符号“==”。一个比较好的办法是用相反的顺序写条件语句。因此,你的条件语句应该如下:3 g4 u" ^3 X2 E  R; n& f7 e) G3 L
    " S6 z+ y( R1 O' s# F* Q2 V! o
      if(10==i)…因此,如果你错误地写成了单个等于号,在编译的时候也能检查出来并报错。
    ) z0 G' s' O. G& T* p" \0 O& w
    ' R6 U: {# c- w  6.使用循环和条件语句时,先把左右括号对应起来,然后再在里面写其他语句。也就是:
    9 v$ X3 ~* h# E, T) x; k4 e" c9 |$ b5 G" m7 ]( ^3 s
    代码: 1 for(int i=0;i<10;i++)2 {4 printf(“i=%dn”,i);3 }   注:每一行开头的数字表明写循环代码的顺序。
    4 I% X0 E" N# k  o4 f5 ~! j0 T7 F" u
    * }3 N/ h- X5 T9 i9 I  7. 避免使用幻数(magic numbers)。例如,不要写8 w, Q5 r6 ]7 k% F: a# v

    " @5 `+ I3 a$ v' v代码: circleArea = 3.14 * pow(radius,2); 而要使用如下代码:- c* M  l6 s8 P$ S0 j4 X

    7 ~1 r0 ?3 D5 e% q! Z  G. D* V+ A代码: #define PI 3.14 circleArea = PI * pow(radius,2);   * E: E- R+ ]7 M9 g. |8 W( k+ M
      8. 使用有意义的变量和函数名称。例如,使用‘radius’来代替圆的半径,而不是用‘r’来表示。同样,函数名‘calculateArea’要比其他任 何隐晦的缩写要好得多。匆忙之下,我们也许会使用缩写的变量名,但一开始节省时间的话,之后会浪费更多的时间,去猜测缩写变量名代表什么。(编注:)% n- I' w! e+ d/ M! v3 f. U
    : n# q5 z: S( m
      9. 为后面的调试使用打印语句,这是个好习惯。但是,当完成最后代码后,去掉这些语句,有时也是一项危险的任务。添加一个方法,用于输出调试信息。当最终版本生成时,只要把这个方法注释掉就行。因此,只在一个地方做修改就可以了。  B9 V# \. f4 L1 s2 e0 {) o8 T1 J

    & W3 o2 r( G: Q) V5 d8 }  w  D  10. 代码编写完之后,开始优化代码。之前声明的一些变量,现在可能没用了。同样,并不依赖循环的一些声明可以移到循环模块之外去。扎实的编译知识同样会对以后的代码优化有所帮助。
    % U: \9 y8 Y- i3 @$ J% ?! M  w9 b1 C9 q4 o: g( e- i
      11. 对自己的操作系统和硬件要有足够的了解,你可以从资源占用等方面提升程序的性能。' f3 p4 z# o3 a0 K+ w

    - ^: D9 u9 b. D  12. 编写代码时要合理使用缩进,以使代码清晰可读。
    7 x9 e0 t( V( I# B: f2 B
    2 u) I; @. v* h* Y' V  13. 把项目文件放到SOURCE、HEADERS、MAKE、EXES等不同的文件夹中。1 E" j; b) X) o0 T, I1 j4 ^! r
    ; |: N! g+ }; r
      14. 研究别人编写的代码。这可以让你学习到新的编程技术,以及他们解决和你相同的任务时所使用的方法。
    : _0 x) M: a+ h4 \
    4 S1 ]# S: N& Z, I+ ]: C) |  15. 最后一条(但不是最不重要的一条),备份源代码文件,这样当硬盘出错或相同的问题发生时,不至于前功尽弃。
    ! F' r$ f3 w5 i4 y: v
    - U' d: E8 M4 k: U; U% G  附加:补充一条,坚持使用一种命名模式。如果你打算用匈牙利命名法,那就坚持并广泛使用,否则将适得其反。参见微软资深工程师 Eric Lippert 的这篇文章《阅读代码不简单》。% n% @3 G7 O* Q0 I' }- s

    "真诚赞赏,手留余香"
    还没有人打赏,支持一下
    楼主热帖
    帖文化:【文明发帖 和谐互动】 社区精神:【创新、交流、互助、共享】

    该用户从未签到

    尚未签到

    发表于 2011-3-24 09:24:42 | 显示全部楼层
    路过,学习了
    "真诚赞赏,手留余香"
    还没有人打赏,支持一下
    帖文化:【文明发帖 和谐互动】 社区精神:【创新、交流、互助、共享】

    该用户从未签到

    尚未签到

    发表于 2011-4-19 23:19:21 | 显示全部楼层
    学习了
    "真诚赞赏,手留余香"
    还没有人打赏,支持一下
    帖文化:【文明发帖 和谐互动】 社区精神:【创新、交流、互助、共享】
  • TA的每日心情
    开心
    2016-4-12 16:48
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    累计签到:1 天
    连续签到:1 天
    发表于 2011-12-7 17:48:33 | 显示全部楼层
    路过,看看...
    "真诚赞赏,手留余香"
    还没有人打赏,支持一下
    帖文化:【文明发帖 和谐互动】 社区精神:【创新、交流、互助、共享】
  • TA的每日心情
    开心
    2017-3-6 22:05
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    累计签到:1 天
    连续签到:1 天
    发表于 2011-12-21 19:34:10 | 显示全部楼层
    很有用
    "真诚赞赏,手留余香"
    还没有人打赏,支持一下
    帖文化:【文明发帖 和谐互动】 社区精神:【创新、交流、互助、共享】
    您需要登录后才可以回帖 登录 | 立即加入

    本版积分规则

    招聘斑竹

    小黑屋|手机版|APP下载(beta)|Archiver|电力研学网 ( 赣ICP备12000811号-1|赣公网安备36040302000210号 )|网站地图

    GMT+8, 2025-4-4 15:20

    Powered by Discuz! X3.5 Licensed

    © 2001-2025 Discuz! Team.

    快速回复 返回顶部 返回列表