TA的每日心情 | 慵懒 2016-4-21 12:07 |
---|
签到天数: 3 天 连续签到: 1 天 [LV.2]偶尔看看I 累计签到:3 天 连续签到:1 天
|
马上加入,结交更多好友,共享更多资料,让你轻松玩转电力研学社区!
您需要 登录 才可以下载或查看,没有账号?立即加入
×
1. 动手编码之前,你需要对要编码实现的解决方案有一个正式的或粗略的设计。永远不要在没有任何设计的前提下就开始编码,除非所编代码不重要。 2. 优秀的代码文档跟编程语言知识一样重要。在代码源文件中,为每个主要的代码段添加注释,解释代码的基本逻辑。最好注明程序的构建和修改日期,以及修改的原因也是非常有必要的。7 f# Q; V Q2 ^, s
7 Z6 q- `/ y+ r! ` 3. 维护程序的各个版本同样重要。当前有些编程工具都自带一个版本管理工具。无论你什么时候改变自己的程序,它们都会将其保存为.bak文件。" I6 C* g; |6 z* Z G9 G: E
% K/ f0 d& }1 @- }* ~
我的方法是为每个程序维护三个不同的版本。比如说,我有一个名为program.c的文件,这个文件同时也被其他项目组成员使用。我把这个文件复制为 program.c.old作为备份文件,并且当我修改时,我会备份另一个名为program.c.wrk的副本文件。当成功完成修改时替换 program.c.wrk文件。3 y% |- P( Y u# u
6 r# r/ H. X; L4 }+ y6 _ 你还可以给自己的程序版本添加一个日期或一些注释,像program260505.c或programReadFnWrking.c。' a- e( w4 S \& \2 W5 Z; D- i
7 E: h6 f) H' V, q; Z 4. 如果工程包含多个源文件,则声称一个README文件,注明每个源文件、数据文件、临时文件以及日志文件(如果有的话)的作用。你还可以注明编译和运行步骤。
F# K. [* {) L$ S. s5 \7 [4 Q/ k; E! o3 u5 f$ j7 Y) |7 i
5. 有时候,你一定想知道为什么IF语句没有得到预想的结果。可能你使用的是等号,也就是“=”,而不是条件判定符号“==”。一个比较好的办法是用相反的顺序写条件语句。因此,你的条件语句应该如下:
1 b7 @$ h8 q: B: K3 S! E! C& F; p) f# T9 G, s& c& h" [0 _1 _
if(10==i)…因此,如果你错误地写成了单个等于号,在编译的时候也能检查出来并报错。
+ c7 C8 n2 ^* a" f# i; Z) B! n0 K( W- S; c" T
6.使用循环和条件语句时,先把左右括号对应起来,然后再在里面写其他语句。也就是:
' V, d1 ?7 y: c" W7 S7 F1 A+ h1 a, L2 {" `, v
代码: 1 for(int i=0;i<10;i++)2 {4 printf(“i=%dn”,i);3 } 注:每一行开头的数字表明写循环代码的顺序。
+ I2 Z5 y% y3 \" q: Q- H& R* ~
. S% r! }) F' F9 P* c* Q1 D 7. 避免使用幻数(magic numbers)。例如,不要写
# G$ h9 c& l) ?' q' ~- V0 ^' y' Y2 D) u* X& ~8 Z
代码: circleArea = 3.14 * pow(radius,2); 而要使用如下代码:
' c }' L) T8 `0 Q R A' \! H
5 Q6 t5 N0 C1 z" x代码: #define PI 3.14 circleArea = PI * pow(radius,2);
4 M) T" _/ j0 L* c4 V& _# u1 J 8. 使用有意义的变量和函数名称。例如,使用‘radius’来代替圆的半径,而不是用‘r’来表示。同样,函数名‘calculateArea’要比其他任 何隐晦的缩写要好得多。匆忙之下,我们也许会使用缩写的变量名,但一开始节省时间的话,之后会浪费更多的时间,去猜测缩写变量名代表什么。(编注:); n5 h2 \- Q+ r! b( {2 c
: S U1 D9 j( t5 p; C$ z+ q+ |$ |
9. 为后面的调试使用打印语句,这是个好习惯。但是,当完成最后代码后,去掉这些语句,有时也是一项危险的任务。添加一个方法,用于输出调试信息。当最终版本生成时,只要把这个方法注释掉就行。因此,只在一个地方做修改就可以了。* l$ l6 P, Q6 L" f, P+ }' U: ~) e6 _
. T& Q8 Y3 C& l
10. 代码编写完之后,开始优化代码。之前声明的一些变量,现在可能没用了。同样,并不依赖循环的一些声明可以移到循环模块之外去。扎实的编译知识同样会对以后的代码优化有所帮助。' r+ r# _2 }3 u# \
! k- q3 t) B8 P% @; E3 \/ f 11. 对自己的操作系统和硬件要有足够的了解,你可以从资源占用等方面提升程序的性能。1 [; b8 t( h/ Y
/ [- W" L" u% s6 E' ]
12. 编写代码时要合理使用缩进,以使代码清晰可读。
# D# A8 J2 I7 T+ M) _% m. P: O( j2 ^+ A# ?* C
13. 把项目文件放到SOURCE、HEADERS、MAKE、EXES等不同的文件夹中。
3 [. P2 W$ o# `% Y3 f# e$ o0 ~& S5 G6 Q, Q( f7 i; F
14. 研究别人编写的代码。这可以让你学习到新的编程技术,以及他们解决和你相同的任务时所使用的方法。
5 a2 H+ d( L+ d- b* K! z# P- Z
% L% e; e' @1 S; y4 o7 w 15. 最后一条(但不是最不重要的一条),备份源代码文件,这样当硬盘出错或相同的问题发生时,不至于前功尽弃。$ f+ e7 V0 E* G! l# A
5 m6 w; M2 X8 ^' \# V0 m 附加:补充一条,坚持使用一种命名模式。如果你打算用匈牙利命名法,那就坚持并广泛使用,否则将适得其反。参见微软资深工程师 Eric Lippert 的这篇文章《阅读代码不简单》。) m% P8 R5 |1 {
|
|