那谁的技术博客

感兴趣领域:高性能服务器编程,存储,算法,Linux内核
随笔 - 210, 文章 - 0, 评论 - 1183, 引用 - 0
数据加载中……

程序设计经验总结

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

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

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

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

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

posted on 2007-11-21 22:25 那谁 阅读(10022) 评论(21)  编辑 收藏 引用 所属分类: 其他

评论

# re: 程序设计经验总结  回复  更多评论   

all good
2007-11-22 17:48 | LOGOS

# re: 程序设计经验总结  回复  更多评论   

不错,有空一起出来玩吧,我是Aster。
2007-11-24 13:20 | ster

# re: 程序设计经验总结  回复  更多评论   

对于3和4好像不太同意。3里面必须是make it right, make it work and make it effective。4就更不同意了,调试时间是要减少的,而不是越早越好
2007-12-10 11:14 | llzhu

# re: 程序设计经验总结  回复  更多评论   

不错,谢谢
2008-02-16 18:02 | liulf

# re: 程序设计经验总结  回复  更多评论   

刚入程序员行业,才一年,觉得......,总之很多感触! 希望我们都一路走好,无论是做那一个行业!
2008-02-16 18:06 | liulf

# re: 程序设计经验总结[未登录]  回复  更多评论   

4)越早让你的程序投入调试越好.
东拼西凑最容易导致调试时间过长。
这点我基本不同意。

1)程序不会出错,出错的肯定是人;如果程序出错了,那也一定是人的错误.
强烈同意!!!newbie与professional的区别之一就是newbie总认为是系统的错,professional总从自身找原因。
2008-06-19 10:26 | raof01

# re: 程序设计经验总结  回复  更多评论   

调试/测试肯定是越早开始越好啦,要不为什么要单元测试哦
发现一个错误马上解决与多个错误积累后解决的成本是呈级数增加的

2008-09-21 20:36 | 内容

# re: 程序设计经验总结  回复  更多评论   

关于第二点,其实再复杂的事情把它打散了看,就是都是简单的逻辑,问题是你怎么把这些简单的逻辑组合起来变成复杂而有效的逻辑,这就是经验。例如对于数据库操作,无非就是增删查改几样东西,但是真正做起来还涉及很多诸如复杂度、效率之类的问题
对于调试,Logging是非常非常重要的,很多新手经常忽视这个
2008-11-24 15:59 | quady

# re: 程序设计经验总结[未登录]  回复  更多评论   

非常经典的总结。。

第一条是意识(人)的主动性;

第二条是客观世界由物体和运动组成;

第三条是做事情的步骤(事物是逐渐发展的);
2009-02-26 23:53 | bneliao

# re: 程序设计经验总结  回复  更多评论   

写得很贴切,两年前的我写代码就是这样,错了总以为是系统不对,需求有问题等等。
2010-01-07 23:37 | wanwan

# re: 程序设计经验总结  回复  更多评论   

第3 应该是 TAOUP《the art of UNIX programming》里面的一个观点.



呃,这是2年前的文章:(
2010-01-10 20:21 | fy

# re: 程序设计经验总结  回复  更多评论   

曙海嵌入式学院提供以下课程的培训--中国最大的FPGA,DSP和3G手机通信培训机构:
FPGA培训,DSP培训,MTK培训,Android培训,Symbian培训,iPhone培训,单片机培训,Candence PCB培训,Vxworks培训等。
网址: http://www.51qianru.cn
上海总部电话:021-51875830 深圳:0755-61280252 北京:010-51292078 南京:025-68662821
2010-08-12 16:31 | shuhai42

# re: 程序设计经验总结  回复  更多评论   

好久没接触程序了,现在有太多的人在搞网站
2010-08-27 14:29 | 不是博客

# re: 程序设计经验总结  回复  更多评论   

至少msft的比如compiler, parser, clr都有bug,每天都有在DL上向对应的product team fire bug。所以不一定是自己人的错。
2010-09-29 15:54 | msftie

# re: 程序设计经验总结  回复  更多评论   

呵呵,不错
2011-03-22 16:12 | Napoler

# re: 程序设计经验总结  回复  更多评论   

Make it work, make it right, make it effective这句话好像在编程珠玑中出现过,不知道是第一版还是第二版
2011-07-31 22:13 | weedge

# re: 程序设计经验总结  回复  更多评论   

You are doing really very interesting investigation just about this good topic! So, the buy dissertation service and just the custom thesis writing services, can take as a main ground for the essay thesis.
2012-03-16 21:48 | dissertation service

# re: 程序设计经验总结  回复  更多评论   

嗯,不错啊,加油,继续支持
2012-10-30 11:21 | 剪板机刀片

# re: 程序设计经验总结  回复  更多评论   

go on
2012-10-30 11:22 | 融资

只有注册用户登录后才能发表评论。
【推荐】超50万行VC++源码: 大型组态工控、电力仿真CAD与GIS源码库
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理