数学建模社区-数学中国
标题:
[转帖]成为优秀程序员的三十条规则
[打印本页]
作者:
solucky
时间:
2004-8-26 13:41
标题:
[转帖]成为优秀程序员的三十条规则
1)学习应该从基础打起,不要一开始就尝试最高深的技术。
" ]2 d0 c6 _$ \; R
+ u' y! j, L% X! e2 J
2)每看一本书,不要说这章我以前学习过了,也掌握的很好,因此我可以跳过这一章看 更重要的了。
# O/ q2 h; }3 \( {
" `2 a! P: V$ [- P- _) l
3)对于作业,遇到不会的尽量不要立刻向别人请教。如果实在解决不了的问题,可以先完成你会的,然后把一些特别的难点提炼出来,向高手请教。
. ]2 {" A, Y0 Y6 U7 w& j
, F% Z8 e1 B$ a \: T0 H. Y
3)不要指望书本和行家能帮你解决一切问题,因为并不是所有问题都能由别人教给你。
) ~0 I+ N! }# p1 U' T8 Q7 f" U
" Q1 M6 R! Z, x; j) X
4)向别人请教问题应该把问题说明白。对于错误提示信息应该原样提供出来,不要按自己理解的信息提供。因为既然你自己做不了,说明你理解一般都有问题。
3 V9 w" t9 J- y! L# r- u
5 T% k& Y: C% g
5)问问题最好能带代码。
; ^% B+ ?, f% [* K2 I z
1 j3 I' N/ \% h7 a" n8 \8 _
6)不要说“编译通过,可是运行时...",因为编译错误和运行错误可能根本没有关系。 一般来说,编译是语法问题,而运行是逻辑问题。
O: A+ g% J9 w+ v. D0 ^" O. ~
! e/ j& m0 R7 N/ v6 B
7) 书看千遍不如做程序一遍,应该尽量尝试去写程序。
) |+ U% X8 q7 t- S% {4 Z$ n
4 Y7 \! A- W4 z1 B
8)做程序千个不如做好程序一个。应该尽量完善你现在做的程序,而不要不断开新的计 划,而每个计划都虎头蛇尾。
3 W3 G, {! N; r0 y2 m
2 E. q v/ Y+ m
9)要想到你不是一个人写程序,而是和大家一起写程序。
: Y% P4 h5 U) X5 @ G+ _7 C$ d, E4 V$ G
8 D: s/ a8 [; I' g
10)高深的技巧虽然显示了高深的本领,但是对于合作往往是有害的,应该尽量写出简 单易读的代码。
5 B* ?3 o0 u' j4 E& l1 ]
# X# o0 |" ~* g; m( H0 u
11)编制程序应该尽量做到自注释,即代码本身一读就懂,好象自己在说明自己的逻辑一样。
8 v5 B- W2 A! u9 n1 l. G
& H7 d& W4 ]3 J
12)复杂的代码如果实在做不到自注释,应该给出适量的注释。
# W" J* ^ H6 T$ T; o. g d
/ ^ M, @. h9 s ^ G8 G% ^& m- l" t
13)注释在修改代码的时候应该相应修改,不能用陈旧的注释去误导别人。
& l. C9 l- f; X' n8 |6 y' v
. G) Z. Y8 }- G1 L- J" e- [+ s
14)代码应该尽量可重用,相同功能的代码应该由相同的函数完成,重要函数应该给出调试信息,以便调试时及早发现问题。
0 \" P) Y" G+ h- H
! G2 | X* r! r8 g6 ] ~7 [8 z/ k5 Y
15)应该尽量写小函数,每个函数尽量不要超过40行或者更少。这样不用滚动屏幕也许就可以读完整个函数。
; P* h5 }- n9 M/ L
& E: Z" Y9 i4 f6 l! a
16)对于switch语句,尽量不要有过多的分支,如果分支太多,可以考虑用跳转表。
% A2 \$ X0 ?( ]
$ W3 o2 j. W2 k
17)尽量少使用一些有争议的语句,如goto和三目运算符,既然有争议,它肯定有一定的缺点。
8 y4 [6 o$ {1 Z& E! |# M/ x7 N2 Q w# Q9 z
3 I' ^0 x3 q4 M; T8 z
18)对于goto,许多工程师技术高到可以合理使用,而不至于导致问题。但是你的程序并不一定给你同水平的人看和修改,他们可不能保证合理的读和修改这些相关代码。
6 ?; x2 A+ A. ]( h" p
6 l H2 x# Q( U4 ~ b+ ^% g
19)代码编写时应该有一定的格式,其基本要求是对理解代码有一定帮助。
z6 C! [) O( b5 N
- ]: t& z6 Z7 e
20)如果数据是多个模块共有的,应该提供一个封装的类来管理它,并提供一个合适的接口给各个模块。这样,如果数据内容有重大修改,则只要接口不变,基本上可以保证程序不要很复杂的修改。
7 M' A* ?3 e+ q. v8 E
Q5 u' \5 _4 ]
21)应该尽量考虑到数据的并发控制。
' A1 M: Y3 B6 L9 }+ \( ~' J
4 p0 N- c6 i6 ?! k3 o
22)数据的并发控制应该封装在接口内,而不要暴露给其他模块,这样可以减少因为并发原因导致的程序死锁。
, T0 i+ r4 J3 A0 i2 F
1 ~2 o2 m9 k& V* ^. K7 r+ z8 {
23)数据本身结构不可以太复杂。应该尽量把不相关的数据分割成为两组数据。
) D) O8 @8 e2 a/ e9 U* f2 E
5 u/ A: P9 K$ Y4 f7 e4 A: }
24)对于数据量比较大的情况,应该考虑数据库。
" V) z1 v9 a- A
* Z# O8 }6 q6 R7 T w
25)数据库接口应该采用标准ODBC或者ADO接口,尽量不要根据实际数据库DBMS提供的接口来处理,因为你可能在实际使用中更换DBMS。
Q1 ^2 @' X' ^7 _# `
8 m+ Q3 K4 Z+ w7 B0 M5 n( V
26)小的数据可以考虑文件,文件路径应该必须设计成相对路径。
$ }% c' E9 O8 Z& v0 e6 ] X
1 _2 w, C( @& i9 ^& C
27)在一个函数中,应该尽量打开文件后使用完后立刻关闭,这样其他程序可能使用文件。
# q* s1 f1 e, e0 U& d# F# n! q1 V$ M
9 R) U; A3 I/ U
28)不要尝试把文件全部读到内存中,应该分次处理大文件。
6 V* T6 e( R3 ]% E- }# E* J
. R" Q) V) t, q1 R
29)编写程序应该提供相关的测试程序,以提供测试手段。
6 Y% {; E3 ^% |
4 m* X( u: ^, R2 f/ n
30)应该考虑代码、函数的使用情况,不要超越函数可以使用的范围使用之。
作者:
fish133
时间:
2008-11-29 18:30
标题:
看这帖子,我不得不回啊。晕~
看这帖子,我不得不回啊。晕~
作者:
wangleiyushulun
时间:
2009-11-12 13:16
学到了一些,呵呵,
2 |4 d6 r- e3 U* X/ Y; n
作者:
legan
时间:
2010-2-1 13:28
这个没有什么新意的的,‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’
作者:
lirunhiu
时间:
2010-4-2 23:43
这个没有什么新意的的,‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’
作者:
kuang17
时间:
2010-4-11 00:40
耿老师说的一样∑··························
作者:
silecainengai
时间:
2010-4-13 12:22
顶一下。。。。。。。。。。。。。。。。。。。。。
作者:
jingxingde
时间:
2010-6-8 19:34
顶一下。。。。。。。。。。。。。。。。。。。。。
! `7 U" x* v7 U8 y, T3 ~% Q7 c- C
作者:
duan3307464
时间:
2010-8-9 20:45
每个编程人员多少都可以总结一些,但对于新手会有所帮助
作者:
duan3307464
时间:
2010-8-9 21:02
每个编程人员多少都可以总结一些,但对于新手会有所帮助
作者:
GraBUAA
时间:
2012-3-18 10:29
很不错,谢谢分享
作者:
yingxiaowang
时间:
2012-7-27 23:21
还是要坚持吧。。。因为学习方法对每个然的都是不一样的。。,
作者:
feng67
时间:
2012-10-26 09:37
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/)
Powered by Discuz! X2.5