BBS.ChinaUnix.net
首页 | 新闻 | Linux | FreeBSD | AIX | Windows | 博客 | 论坛 | 存储 | 网络 | 人才 | Wiki | 资料 | 读书 | 手册 | 下载 | 空间 | 搜索
  会员: 密码: 免费注册 | 忘记密码 | 会员登录 | 搜索 | 帮助 


奥运快报: 
奥运热点:
 

[保留] [原创/讨论]程序设计经验总结
首页 » 论坛 » C/C++ »  
[打印] [订阅] [收藏] [本帖文本页] [推荐此主题给朋友,立即获积分]
  本主题由 思一克 于 2007-11-26 13:11 加入精华 
版主 converse   帅哥
广告杀手-法王
Stupid is as stupid does.




UID:117516
注册:2003-12-7
最后登录: 2008-09-07
帖子:12169
精华:13

可用积分:4977 (小富即安)
信誉积分:145
专家积分:130 (本版:10)
空间积分:0
推广积分:0

来自:芒果花开的地方
状态:...离线...

[个人空间] [短信] [博客]


1楼 发表于 2007-11-21 22:34 
程序设计经验总结
        在这个行业里做了快4年了,多少总结了一些东西,成功也许很难复制,但是失败却时常被人们重复,我不敢说我做的很好,但是我希望总结出以前失败的一些教训,时不时看看,提醒自己以后再也不要犯类似的错误.这篇文章会不定期的更新,可能就是简短的几句话,但是,也是我实践和思考的结果.

1)程序不会出错,出错的肯定是人;如果程序出错了,那也一定是人的错误.
我时常在编码调试的时候出现这样的一种心理:出现问题的时候总是认为不是自己的错误,而认为可能是系统的错误.其实,久经考验的系统出错的概率几乎很小,大多数的情况下出错的肯定是编写代码的人,所以你的程序出错了一定是自己的问题,有了这个观念会十分有助于早点发现并且改正BUG.

2)程序就是用规则处理数据,规则包括:算法,数据结构,系统API,协议,语言,设计模式等等.
这句话很浅白,我想很多人一看就能明白,其实学习编程的过程就是在学习怎么去用规则去处理数据,想想看一路过来学过的课程都是如此:算法数据结构教会我们在什么情况下应该选取怎样的方式去处理数据,操作系统教会我们系统如何处理数据,编译原理教会我们编译器如何处理数据,网络协议,语言,正则表达式等等的更不必说了.至今我已经很少去关注什么语言之争的无聊话题,因为我相信语言也是一种处理数据的工具,没有哪种工具是万能的,只有合适的场合采用合适的工具.同时,以后再学习一种新的"规则"时,也需要抓住这些重点:这个规则适用的场合,适用的数据,处理数据的方式.

3)Make it work, make it right, make it effective.
我已经忘记了在哪里看见的这句话(请知情者转达一声,谢谢.中文的意思也很浅白:先让它可以运行,然后让它可以正确的运行,最后再去提高效率.我想,这应该是编写大部分代码的顺序,这也是把一个问题从简单慢慢的一步一步进行到复杂的过程.在你的代码没有正确的运行起来之前,暂时别做优化(当然了很显然的优化是可以的),只有当程序正确的运行起来时,你通过测试或者工具发现了瓶颈所在再去考虑优化.

4)越早让你的程序投入调试越好.
一般而言,写好一段代码比调试一段代码的时间要少的多,而许多许多的问题也是在你写代码的时候所不能发现的.



您对本贴的看法:鲜花[2] 臭蛋[0]

__________________________________

唯坚持,得成功.
C++名人Alexandrescu说,"十几岁的少年天才到处都有,三十多岁的优秀设计师凤毛麟角".我做不了十几岁的少年天才,但愿到三十多岁时能成为一个优秀工程师.

卖书: http://bbs.chinaunix.net/thread-1053812-1-1.html
空间积分可以换礼品了! | 有奖跟帖:服务器节能,奖50-100元图书 | 致电800-858-2903,了解DELL如何为你量身订制笔记本 | 送2G U盘
版主 converse   帅哥
广告杀手-法王
Stupid is as stupid does.




UID:117516
注册:2003-12-7
最后登录: 2008-09-07
帖子:12169
精华:13

可用积分:4977 (小富即安)
信誉积分:145
专家积分:130 (本版:10)
空间积分:0
推广积分:0

来自:芒果花开的地方
状态:...离线...

[个人空间] [短信] [博客]


2楼 发表于 2007-11-21 22:35 
抛砖引玉,欢迎讨论/补充/分享.



您对本贴的看法:鲜花[0] 臭蛋[0]

__________________________________

唯坚持,得成功.
C++名人Alexandrescu说,"十几岁的少年天才到处都有,三十多岁的优秀设计师凤毛麟角".我做不了十几岁的少年天才,但愿到三十多岁时能成为一个优秀工程师.

卖书: http://bbs.chinaunix.net/thread-1053812-1-1.html
空间积分可以换礼品了! | 有奖跟帖:服务器节能,奖50-100元图书 | 致电800-858-2903,了解DELL如何为你量身订制笔记本 | 送2G U盘
chenzengjie   帅哥
精灵




UID:234070
注册:2005-3-6
最后登录: 2008-09-04
帖子:246
精华:0

可用积分:267 (白手起家)
信誉积分:100
专家积分:0 (本版:0)
空间积分:0
推广积分:0

状态:...离线...

[个人空间] [短信] [博客]


3楼 发表于 2007-11-21 22:43 
看上去有几处和《程序设计实践》很符合呀, 看来你是悟着道道了。
第一点说得有点偏激吧, 有时候并不是你自己程序错了, 只是你所认为理所当然的环境不是你想象的那种样子。



您对本贴的看法:鲜花[0] 臭蛋[0]
空间积分可以换礼品了! | 有奖跟帖:服务器节能,奖50-100元图书 | 致电800-858-2903,了解DELL如何为你量身订制笔记本 | 送2G U盘
版主 cugb_cat   帅哥
广告杀手-大法师


CU奥运火炬传递手2008
UID:342049
注册:2005-11-27
最后登录: 2008-09-07
帖子:9458
精华:6

可用积分:8938 (腰缠万贯)
信誉积分:110
专家积分:419 (本版:100)
空间积分:0
推广积分:18

来自:北京海淀中关村
状态:...保密...

[个人空间] [短信] [博客]


4楼 发表于 2007-11-21 22:46 
第一条、第二条已经领悟到了
第三条可能和我的做法不太一样,我是先把设计中设计出来的东西的代码全都写出来,有的时候甚至写几千行,而这时有可能这些代码还编译不过去,把整个逻辑的代码都写完后,便开始处理编译错误,然后开始调试,当然,编译错误很快就处理完了,调试,则需要花N多时间,可能我这种做法不好,不过我觉得如果不把已经形成好的思路落实到代码上,我怕我会忘记如何去写,即使已经做好了流程图。



您对本贴的看法:鲜花[0] 臭蛋[0]

__________________________________

欢迎访问ToFree社区
www.tofree.org

空间积分可以换礼品了! | 有奖跟帖:服务器节能,奖50-100元图书 | 致电800-858-2903,了解DELL如何为你量身订制笔记本 | 送2G U盘
chenzengjie   帅哥
精灵




UID:234070
注册:2005-3-6
最后登录: 2008-09-04
帖子:246
精华:0

可用积分:267 (白手起家)
信誉积分:100
专家积分:0 (本版:0)
空间积分:0
推广积分:0

状态:...离线...

[个人空间] [短信] [博客]


5楼 发表于 2007-11-21 22:50 


QUOTE:
原帖由 cugb_cat 于 2007-11-21 22:46 发表
第一条、第二条已经领悟到了
第三条可能和我的做法不太一样,我是先把设计中设计出来的东西的代码全都写出来,有的时候甚至写几千行,而这时有可能这些代码还编译不过去,把整个逻辑的代码都写完后,便开始处理 ...

还是写一点就开始调试好。
全写出来调试起来很难。
而且早点调试能使你的代码更有模块性, 你对整个程序的认识非常清晰。



您对本贴的看法:鲜花[0] 臭蛋[0]
空间积分可以换礼品了! | 有奖跟帖:服务器节能,奖50-100元图书 | 致电800-858-2903,了解DELL如何为你量身订制笔记本 | 送2G U盘
版主 cugb_cat   帅哥
广告杀手-大法师


CU奥运火炬传递手2008
UID:342049
注册:2005-11-27
最后登录: 2008-09-07
帖子:9458
精华:6

可用积分:8938 (腰缠万贯)
信誉积分:110
专家积分:419 (本版:100)
空间积分:0
推广积分:18

来自:北京海淀中关村
状态:...保密...

[个人空间] [短信] [博客]


6楼 发表于 2007-11-21 22:55 


QUOTE:
原帖由 chenzengjie 于 2007-11-21 22:50 发表


还是写一点就开始调试好。
全写出来调试起来很难。
而且早点调试能使你的代码更有模块性, 你对整个程序的认识非常清晰。

恩,感觉到了,现在写程序,有的时候觉得一段程序很乱,就会重写,有的时候修修补补的,都有点不成样子
呵呵,以后我得注意了。



您对本贴的看法:鲜花[0] 臭蛋[0]

__________________________________

欢迎访问ToFree社区
www.tofree.org

空间积分可以换礼品了! | 有奖跟帖:服务器节能,奖50-100元图书 | 致电800-858-2903,了解DELL如何为你量身订制笔记本 | 送2G U盘
chenzengjie   帅哥
精灵




UID:234070
注册:2005-3-6
最后登录: 2008-09-04
帖子:246
精华:0

可用积分:267 (白手起家)
信誉积分:100
专家积分:0 (本版:0)
空间积分:0
推广积分:0

状态:...离线...

[个人空间] [短信] [博客]


7楼 发表于 2007-11-21 22:58 
有意识的写出能重用的代码段,就会试着在整个程序没写出来就想着去测试它。
整个程序缺少模块性, 当然就不会在部分代码才写出来的时候想去调试它的, 你觉得它们是整体。

[ 本帖最后由 chenzengjie 于 2007-11-21 22:59 编辑 ]



您对本贴的看法:鲜花[0] 臭蛋[0]
空间积分可以换礼品了! | 有奖跟帖:服务器节能,奖50-100元图书 | 致电800-858-2903,了解DELL如何为你量身订制笔记本 | 送2G U盘
版主 converse   帅哥
广告杀手-法王
Stupid is as stupid does.




UID:117516
注册:2003-12-7
最后登录: 2008-09-07
帖子:12169
精华:13

可用积分:4977 (小富即安)
信誉积分:145
专家积分:130 (本版:10)
空间积分:0
推广积分:0

来自:芒果花开的地方
状态:...离线...

[个人空间] [短信] [博客]


8楼 发表于 2007-11-21 23:06 


QUOTE:
原帖由 cugb_cat 于 2007-11-21 22:46 发表
第一条、第二条已经领悟到了
第三条可能和我的做法不太一样,我是先把设计中设计出来的东西的代码全都写出来,有的时候甚至写几千行,而这时有可能这些代码还编译不过去,把整个逻辑的代码都写完后,便开始处理 ...



QUOTE:
原帖由 chenzengjie 于 2007-11-21 22:50 发表


还是写一点就开始调试好。
全写出来调试起来很难。
而且早点调试能使你的代码更有模块性, 你对整个程序的认识非常清晰。

俺现在就是写一个模块测试一个模块,不然出现问题的时候定位起来太麻烦了



您对本贴的看法:鲜花[0] 臭蛋[0]

__________________________________

唯坚持,得成功.
C++名人Alexandrescu说,"十几岁的少年天才到处都有,三十多岁的优秀设计师凤毛麟角".我做不了十几岁的少年天才,但愿到三十多岁时能成为一个优秀工程师.

卖书: http://bbs.chinaunix.net/thread-1053812-1-1.html
空间积分可以换礼品了! | 有奖跟帖:服务器节能,奖50-100元图书 | 致电800-858-2903,了解DELL如何为你量身订制笔记本 | 送2G U盘
版主 cugb_cat   帅哥
广告杀手-大法师


CU奥运火炬传递手2008
UID:342049
注册:2005-11-27
最后登录: 2008-09-07
帖子:9458
精华:6

可用积分:8938 (腰缠万贯)
信誉积分:110
专家积分:419 (本版:100)
空间积分:0
推广积分:18

来自:北京海淀中关村
状态:...保密...

[个人空间] [短信] [博客]


9楼 发表于 2007-11-21 23:09 


QUOTE:
原帖由 converse 于 2007-11-21 23:06 发表





俺现在就是写一个模块测试一个模块,不然出现问题的时候定位起来太麻烦了

恩,记住了,不过习惯得慢慢改,呵呵。



您对本贴的看法:鲜花[0] 臭蛋[0]

__________________________________

欢迎访问ToFree社区
www.tofree.org

空间积分可以换礼品了! | 有奖跟帖:服务器节能,奖50-100元图书 | 致电800-858-2903,了解DELL如何为你量身订制笔记本 | 送2G U盘
tyc611   帅哥 (?)
法师
苦海无边



CU奥运火炬传递手2008
UID:372261
注册:2006-2-14
最后登录: 2008-09-07
帖子:6986
精华:7

可用积分:2515 (小富即安)
信誉积分:210
专家积分:118 (本版:25)
空间积分:822
推广积分:0

状态:...在线...

[个人空间] [短信] [博客]


10楼 发表于 2007-11-21 23:11 


QUOTE:
原帖由 cugb_cat 于 2007-11-21 22:46 发表
我是先把设计中设计出来的东西的代码全都写出来,有的时候甚至写几千行

你太强了,如果是我这个时候来调程序要砸桌子
我都是写一点调一点,这样思路清楚方便调试



您对本贴的看法:鲜花[0] 臭蛋[0]

__________________________________

----
想想
空间积分可以换礼品了! | 有奖跟帖:服务器节能,奖50-100元图书 | 致电800-858-2903,了解DELL如何为你量身订制笔记本 | 送2G U盘

首页 » 论坛 » C/C++ »


 


Copyright © 2001-2008 ChinaUnix.net All Rights Reserved     联系我们:

感谢所有关心和支持过ChinaUnix的朋友们    转载本站内容请注明原作者名及出处

京ICP证041476号


清除 Cookies - ChinaUnix - Archiver - WAP - TOP

Processed in 0.055433 second(s), 5 queries , Gzip enabled