我们在软件开发的工程中经常会讨论这样几个问题:到底如何开发软件?可以用完成各种各样的功能,为什么凑在一起就会那么困难?更正一个BUG为何那么难?为什么一个看似简单的软件,要拖半年的时间还看不到结束的日子?在以往的工作中我也曾经遇到过类似的问题,下面是我的一些体会和心得,不对之处望指正。
个人觉得在软件开发的过程中需要注意以下几个方面:
一、要有很好的系统分析的能力
只有做好的详细、规范而又规范的系统分析,才能在后期的开发中避免比如需求泛滥、产品镀金、设计不合理等缺陷。不管你使用什么开发工具,系统分析才是最关键的,具体的说也就是需求分析以及产品结构设计等等。我觉得《设计模式》这本书不错,如果需要的话我可以共享给有兴趣的同事一同学习。
这里值得一提的是我刚开始编程的时候也是把代码都写到窗体中,从面板上拖控件、设置属性,然后再给事件编码,后来意识到有大量的代码是重复出现的,应该将其抽取出来作为公用模块,也就是简单的复用了。不过如果在面向对象的程序开发中我们还是要尽量在工程中增加CLS模块,要掌握了面向对象的思想,并能应用这种思想来解决实际问题。
二、要有良好的代码编写习惯
首先就是注释。以前在学校的时候老师都要求我们要有必要的注释,但总是觉得没有必要,后来在实际的工作中吃了暗亏。我觉得具有必要的注释的代码才是健壮的代码,我们一定要养成一个良好的注释习惯。
其次就是语法习惯。其实这也是一些编程的习惯问题,比如括号配对、结束符等等,不过现在比如VS.net等工具在这种问题上都会有提示,但我觉得还是要有个好的编程风格。
然后就是关于备份的问题。刚开始编程的时候,我们总是不注意对工作的及时备份,这样不免就造成了一些重复性的劳动,甚至出现大规模返工的情况。我平时的备份是在文件夹上注明名称及日期,个人觉得还挺管用的。
最后是文档问题。虽然在一些项目中个别文档是可以合并来书写的,但这些文档也是必不可少的。比如在1号项目中我们的数据库设计文档就不是很详细,以至于我们自己有时候都要思考半天一些字段的含义。
三、实践第一,避免眼高手低
尤其是象有一些编程经验的最容易犯的一个错误就是眼高手低,看起来很简单编写起来确不是那么一回事。个人感觉,一个人如果没写过一万行以上的程序,看软件工程的书就和看政治书差不多,每句都对,就是不知道为什么对。当完成几万行的程序之后,再回过头看看理论,才能体会到句句都是真理!
四、注意代码背后所体现的软件开发思想与方法
所有的知识都是一个完整的体系,每个理论背后都是大量实践经验的总结。很多教科书都是对一些语法之类的下功夫,却忽略了很多编程中很需要的特性。我觉得多研究别人的代码也是一种提高的途径。
五、避免简单问题复杂化
由深入浅不是说说那么简单的,这也是我追求的目标,呵呵。
个人觉得在软件开发的过程中需要注意以下几个方面:
一、要有很好的系统分析的能力
只有做好的详细、规范而又规范的系统分析,才能在后期的开发中避免比如需求泛滥、产品镀金、设计不合理等缺陷。不管你使用什么开发工具,系统分析才是最关键的,具体的说也就是需求分析以及产品结构设计等等。我觉得《设计模式》这本书不错,如果需要的话我可以共享给有兴趣的同事一同学习。
这里值得一提的是我刚开始编程的时候也是把代码都写到窗体中,从面板上拖控件、设置属性,然后再给事件编码,后来意识到有大量的代码是重复出现的,应该将其抽取出来作为公用模块,也就是简单的复用了。不过如果在面向对象的程序开发中我们还是要尽量在工程中增加CLS模块,要掌握了面向对象的思想,并能应用这种思想来解决实际问题。
二、要有良好的代码编写习惯
首先就是注释。以前在学校的时候老师都要求我们要有必要的注释,但总是觉得没有必要,后来在实际的工作中吃了暗亏。我觉得具有必要的注释的代码才是健壮的代码,我们一定要养成一个良好的注释习惯。
其次就是语法习惯。其实这也是一些编程的习惯问题,比如括号配对、结束符等等,不过现在比如VS.net等工具在这种问题上都会有提示,但我觉得还是要有个好的编程风格。
然后就是关于备份的问题。刚开始编程的时候,我们总是不注意对工作的及时备份,这样不免就造成了一些重复性的劳动,甚至出现大规模返工的情况。我平时的备份是在文件夹上注明名称及日期,个人觉得还挺管用的。
最后是文档问题。虽然在一些项目中个别文档是可以合并来书写的,但这些文档也是必不可少的。比如在1号项目中我们的数据库设计文档就不是很详细,以至于我们自己有时候都要思考半天一些字段的含义。
三、实践第一,避免眼高手低
尤其是象有一些编程经验的最容易犯的一个错误就是眼高手低,看起来很简单编写起来确不是那么一回事。个人感觉,一个人如果没写过一万行以上的程序,看软件工程的书就和看政治书差不多,每句都对,就是不知道为什么对。当完成几万行的程序之后,再回过头看看理论,才能体会到句句都是真理!
四、注意代码背后所体现的软件开发思想与方法
所有的知识都是一个完整的体系,每个理论背后都是大量实践经验的总结。很多教科书都是对一些语法之类的下功夫,却忽略了很多编程中很需要的特性。我觉得多研究别人的代码也是一种提高的途径。
五、避免简单问题复杂化
由深入浅不是说说那么简单的,这也是我追求的目标,呵呵。