非常话题──软件开发的一些常识和思考

软件世界

软件开发的一些常识和思考

面对这么多不同的开发语言,面对琳琅满目的编程书籍,为了给正在学编程的你或者想学编程以成为一个程序员的你提供一些帮助,这次我们请来上海贝尔软件工程专家──林锐先生同我们一起探讨我们在编程中常遇到的一些问题。林锐曾获得浙江大学计算机系博士学位,现在是上海贝尔软件工程专家,曾先后获全国大学生科技发明大奖和电子工业部科技奖。并著有《CMMI 3级软件过程改进解决方案》和《高质量程序设计指南──C++/C语言》等多部作品。
主持人:目前有最好的编程语言吗?
林:程序员在最初学习Basic、Fortran、Pascal、C、C++等语言时会感觉一个比一个好,不免有喜新厌旧之举。而如今的Visual Basic、Delphi、Visual C++、Java等语言各有所长,真是难分优劣。能很好地解决问题的编程语言就是好语言。开发人员应该根据实际情况,选择业界推荐的并且是自己擅长的编程语言来开发软件,才能保证软件有较好的质量与生产率。编程是一件自由与快乐的事情,不要发誓忠于某某语言而自寻烦恼。
主持人:平时我们使用软件的时候偏重于学习一些技巧,而编程时应该多使用技巧吗?
林:就软件开发而言,技巧的优点在于能另辟蹊径,解决一些问题,缺点是技巧并不为人们熟知。若在程序中使用太多的技巧,可能会留下错误隐患,别人也难以理解程序。鉴于一个局部的优点对整个系统而言是微小的,而一个错误则可能对整个系统是致命的。我建议用自然的方式编程,不要滥用技巧。我们有时的确不知道自己的得意之举究竟是锦上添花,还是画蛇添足。
就像小时候读的《狼三则》故事给我们的启示一样,失败的技巧被讽刺为“伎俩”。当我们在编程时无法判断是用了技巧还是用了伎俩,那就少用。《卖油翁》的故事又告诉我们“熟能生巧”,表明技巧是自然而然产生的,而不是卖弄出来的。卖油翁的绝技是可以到中央电视台表演的,而他老人家却谦虚的说:“没啥没啥,用熟了而已”。
主持人:很多开发者喜欢追求一些软件运行速度,而产生一些更换计算机或者更换程序算法的想法,你是怎么看待这个问题的?
林:如果开发软件的目的是为了学习或研究,那么应该设计一种更快的算法。如果该软件已经用于商业,则须谨慎考虑。若换一台更快的计算机能解决问题,则是最快的解决方案。改进算法虽然可以从根本上提高软件的运行速度,但可能引入错误以及延误进度。
技术狂毫无疑问会选择后者,因为他们觉得放弃任何可以优化的机会就等于犯罪。
主持人:有很多读者常来信和我们交流一个问题,他们大部分都认为拥有一套讲述如何开发软件的书籍,书中充满了标准与示例,可以帮助他们解决软件开发中遇到的任何问题,他们也希望我们的报纸多刊登一些有关编程标准和示例的东西。
林:好的参考书和《电脑报》中好的示例文章无疑能指导我们的工作。充分利用这些文章中的方法、技术和技巧,可以有效地解决软件开发中大量常见的问题。但实践者并不能因此依赖于这些,这是因为:在现实中,由于工作条件千差万别,即使是相当成熟的软件工程规范,也常常无法套用;而且软件技术日新月异,没有哪一种标准能常盛不衰。祖传秘方在某些领域很吃香,而在软件领域可能意味着落后。现在我看《电脑报》软件世界中的“编程乐园”主要以开发经验为主,这是一个好的方向,对我们和很多开发者都很有用。