以文本方式查看主题 - 中文XML论坛 - 专业的XML技术讨论区 (http://bbs.xml.org.cn/index.asp) -- 『 编程心得 』 (http://bbs.xml.org.cn/list.asp?boardid=42) ---- 软件开发经验浅谈 (http://bbs.xml.org.cn/dispbbs.asp?boardid=42&rootid=&id=47922) |
-- 作者:DMman -- 发布时间:6/3/2007 5:57:00 PM -- 软件开发经验浅谈 本文系转载文章 不知不觉做软件已经做了两年,有成功的喜悦,也有失败的痛苦,但总不敢称自己是高手,因为和我心目中真正的高手们比起来,还差得太远。通过这几年的软件开发,积累了一些经验而已,先谈谈自己的经验,其实我的经验也不足,只能算是这几年来在编程方面的一些看法吧。 第一、什么叫编程。有人说:“编程讲究是一个整体的平衡性”。“平衡性”是软件的很重要的部分,从平衡性的角度去考虑编程,就会抑制你想要用最新技术,最新系统等等一些想法。因为从平衡性的角度考虑,只要你的软件有一个瓶颈出现,你的程序就是失败。你首先要考虑的是怎么消除程序中可能存在的一些瓶颈。在这个基础上你才有权利去考虑提高你程序的性能最新的技术,最好系统,如果你的代码不行。什么都等于没有做。因为你的程序有性能瓶颈存在。 2、同类产品竞争分析 3、技术可行性分析 依据本公司的技术实力看在给定的时间内能否实现需求说明中的功能。 4、软件设计 5、编写代码 模块的功能的代码实现。用一种语言实现上面的功能,在编写代码时,要注意书写文档说明。永远记住:代码是给人看的而不是给机器运行的,计算机在执行程序时是不怕累的,而人在看代码时是非常累的,良好的编码习惯,至少保证自己能够随时看懂几个月前自己所写的代码,尽量让你的代码能够很容易的被别人理解,写代码时想想你会不会在两个月后被别人骂。在调试的时,要耐心好,编写代码其实就调试和改错。一个好的程序运行没有瑕疵,没有臭虫。到底是什么内在的因素使然呢?其实这并不神秘,我们只需要偶尔用点心思提醒自己,无论是使用C/C++、C#、Java、Basic、Perl、COBOL 还是 ASM 进行编码,所有好的编码无不显示出同样的特点:简洁 、易读、模块性、分层、设计、效率、优雅和明晰。 6、bug测试和改错 错误是一种严重的程序缺陷。测试的目的是为了发现尽可能多的缺陷,并期望通过改错来把缺陷统统消灭,以期提高软件的质量。 7、交付用户使用 8、维护与再生工程 很多软件产品不是一次性的买卖。比如在电信、金融等领域,有些软件系统要用十几年,对软件进行维护是必不可少的。还要根据用户的要求增加新的功能。 11、交给用户使用。 第三、哪里有资料,标准文档。 代码的世界是千变万化的, 在开始一个新的项目之前,完全可以找一个类似功能的代码来看看。这样可以更好的改进你的程序。有时还可以加快进度。还有当新的技术出来时,你要看看相关的文档。虽然不要完全了解它的功能,好处。但是你至少要知道新的技术能用在什么地方。怎么用。配合什么用能更好的发挥它的作用。编写软件不是全部的东西都是自己写的,有很多的功能是一种标准。也许是标准算法。像图形的,图象识别的,多媒体的,加密解密的算法。 http://www.csdn.net (中国软件网) http://www.vckbase.com (vc知识库) http://www.vchome.net(阿蒙编程之家) http://www.testage.net(测试时代) http://www.51cmm.com(软件工程专家网) http://www.51icon.net (图标资源下载) 图像处理的网站 http://www.image2003.com (数字图像网) http://www.pris.edu.cn (北邮模式识别与智能系统网站) http://www.chinaai.org(中国人工智能网) 看雪学院 http://www.pediy.com http://toye.yeah.net http://www.bestcracks.net (大量软件破解注册码) http://www.chinaunix.net (UNIX) http://www.linuxeden.com (LINUX) 1、数据库工具 代表 VB,VC,JAVABUILDER,ECPLISE 8、测试工具 代表 C++ Test,LOADRUNNER,WINRUNNER 9、安装打包工具 代表 installshield,Wise Install Master 第五、要掌握的知识 因为每一个人的发展方向不一样,所以大部分人的知识结构都不一样。象一些基本的计算机基础知识大家都知道,每个人都有自己的爱好,所以自己的发展方向不一样,有的人做系统开发,有的人做驱动开发,有的人做编译器开发,有的人做图象处理与识别开发等等。但是有几点应该是一样的。 给同行的一点建议: (1) 明确目标。每天上班要做什么事情,目标要明确。把一天中最重要的事,最紧急的事排列组合,就有四种情况。我们首先要做的是最重要且最紧急的事,其次是做紧急不太重要的事,再次是做重要不紧急的事,最后是做不重要不紧急的事。(2) 精通一门编程工具,不要什么东西都想学,什么都没掌握。 (6)不要急于求成,这样往往欲速则不达。 (7)丰富的想象力。不要拘泥于固定的思维方式,遇到问题的时候要多想几种解决问题的方案,试试别人从没想过的方法。丰富的想象力是建立在丰富的知识的基础上,除计算机以外,多涉猎其他的学科,比如天文、物理、数学等等。 (8)不要做浮躁的程序员。不要看到别人的回复第一句话就说:给个代码吧!你应该想想为什么。当你自己想出来再参考别人的提示,你就知道自己和别人思路的差异。看帮助文档时,不要因为是英文的而且很难而自己是初学者所以就不看;帮助永远是最好的参考手册,象MSDN是很好的帮助文档。把时髦的技术挂在嘴边,还不如把过时的技术记在心里。对于网络,还是希望大家能多利用一下,很多问题不是非要到论坛来问的,首先你要学会自己找答案,比如google、百度都是很好的搜索引擎,你只要输入关键字就能找到很多相关资料。 |
-- 作者:zw1213 -- 发布时间:6/13/2007 4:04:00 PM -- up |
-- 作者:szy85 -- 发布时间:9/28/2008 5:00:00 PM -- 多谢指教! |
W 3 C h i n a ( since 2003 ) 旗 下 站 点 苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》 |
63.477ms |