编程模式
2003-03-06 09:11
363 查看
模式这个概念被广泛使用。一位仁兄的文章中说,国外已经把模式这个概念推向日常生活中的许多领域。具体情况怎么样,我没有机会去考证,但是从西方人崇尚务实的精神推测,我想出现这种势头很合理。
我理解,模式是一种归纳整理已有经验的方式。比如设计模式,就系统整理了一些通用幽雅的设计经验。
作为程序员,”掌握某种技术”和”能合理地使用该技术解决实际问题”并不是一回事。前者偏向理论,后者侧重实践。前者得到人们的一致重视,而后者一直被忽略。我参与的项目中,经常出现这种情况,新加入项目组的程序员得不到这方面的培训,需要自己花费很大的精力来寻找使用特定技术实现特定应用的方式。这样降低了开发效率,使程序代码晦涩难懂,可读性差,而且代码隐藏BUG的几率大,影响了系统的稳定性和质量。而项目中经验丰富的程序员和编程高手们,掌握了大量的经验,但是这些经验都是个人技巧,很少拿出来交流。这种状况使高手们的编程方式各不相同,所以他们编写的代码可读性也不高。而且由于缺少系统的交流和整理,高手们的编程模式也难免存在一些不尽合理的地方,甚至可能潜伏了一些影响系统稳定性的错误步骤。我觉得有必要把这个问题提出来和大家讨论,论题就叫编程模式,希望能引起大家的关注。
把编程模式定义为:合理地使用特定技术解决实际问题的经验。编程模式这个概念应该被明确地提出来,在程序员间系统地交流、讨论、整理。每个项目组在编码之前,都可以归纳出一组针对自己开发环境的编程模式,要求程序员参考这些模式进行编码,质量检查人员以这些模式为标准进行质量检查。当然编程模式需要不断地补充和完善,这个不断改进的过程需要项目组所有人员的共同智慧。关注这个问题,我们的软件代码的质量和可读性将大大提高。我们就可以在软件开发水平上迈出踏踏实实的一步。
现在常被我们挂在嘴边的一个话题就是“印度软件业”,有人说它好,有人骂他烂,不过印度软件既然被国际社会承认,我想它在质量上应该还过得去。静下心来比较一下,印度和我们的主要区别之一在于软件业的基础——程序员。让一群印度程序员用同一种编程语言解决同一个问题,会发现他们的程序几乎一模一样,变量命名、程序结构、处理思路等就象是抄袭下来的,可以说他们在使用相同的编程模式。站在软件工程的角度看,所有的程序员都以相同的编程模式作为模板编码,是保证代码质量的一条途径,毕竟所有的软件系统都是建立再代码之上的,基础不牢,上层建筑再花哨也没有用。软件工程是一个侧重应用和实践的领域,国外的工程方法更多地来自实践经验,所以可操作性很强。但是传到国内以后就变味了,许多人更愿意把它抽象成纯理论去研究,最后出来的理论,只能看,不好使。
这或许还涉及到一个心态的问题,业内的气氛比较浮,有点急功近利。关注软件开发的基础问题,相信可以提高个人和整体的水平。
我理解,模式是一种归纳整理已有经验的方式。比如设计模式,就系统整理了一些通用幽雅的设计经验。
作为程序员,”掌握某种技术”和”能合理地使用该技术解决实际问题”并不是一回事。前者偏向理论,后者侧重实践。前者得到人们的一致重视,而后者一直被忽略。我参与的项目中,经常出现这种情况,新加入项目组的程序员得不到这方面的培训,需要自己花费很大的精力来寻找使用特定技术实现特定应用的方式。这样降低了开发效率,使程序代码晦涩难懂,可读性差,而且代码隐藏BUG的几率大,影响了系统的稳定性和质量。而项目中经验丰富的程序员和编程高手们,掌握了大量的经验,但是这些经验都是个人技巧,很少拿出来交流。这种状况使高手们的编程方式各不相同,所以他们编写的代码可读性也不高。而且由于缺少系统的交流和整理,高手们的编程模式也难免存在一些不尽合理的地方,甚至可能潜伏了一些影响系统稳定性的错误步骤。我觉得有必要把这个问题提出来和大家讨论,论题就叫编程模式,希望能引起大家的关注。
把编程模式定义为:合理地使用特定技术解决实际问题的经验。编程模式这个概念应该被明确地提出来,在程序员间系统地交流、讨论、整理。每个项目组在编码之前,都可以归纳出一组针对自己开发环境的编程模式,要求程序员参考这些模式进行编码,质量检查人员以这些模式为标准进行质量检查。当然编程模式需要不断地补充和完善,这个不断改进的过程需要项目组所有人员的共同智慧。关注这个问题,我们的软件代码的质量和可读性将大大提高。我们就可以在软件开发水平上迈出踏踏实实的一步。
现在常被我们挂在嘴边的一个话题就是“印度软件业”,有人说它好,有人骂他烂,不过印度软件既然被国际社会承认,我想它在质量上应该还过得去。静下心来比较一下,印度和我们的主要区别之一在于软件业的基础——程序员。让一群印度程序员用同一种编程语言解决同一个问题,会发现他们的程序几乎一模一样,变量命名、程序结构、处理思路等就象是抄袭下来的,可以说他们在使用相同的编程模式。站在软件工程的角度看,所有的程序员都以相同的编程模式作为模板编码,是保证代码质量的一条途径,毕竟所有的软件系统都是建立再代码之上的,基础不牢,上层建筑再花哨也没有用。软件工程是一个侧重应用和实践的领域,国外的工程方法更多地来自实践经验,所以可操作性很强。但是传到国内以后就变味了,许多人更愿意把它抽象成纯理论去研究,最后出来的理论,只能看,不好使。
这或许还涉及到一个心态的问题,业内的气氛比较浮,有点急功近利。关注软件开发的基础问题,相信可以提高个人和整体的水平。
相关文章推荐
- 【Java编程】 设计模式 -- 单例设计模式
- 笔记--统一编程接口外观模式
- Java编程开发设计模式之--装饰者模式(Decorator)与代理模式(Proxy)
- python学习笔记6.2-类常见的编程模式
- 解析C#设计模式编程中适配器模式的实现
- 牛人整理分享的面试知识:操作系统、计算机网络、设计模式、Linux编程,数据结构总结
- Scalaz(54)- scalaz-stream: 函数式多线程编程模式-Free Streaming Programming Model
- 一步步学习java并发编程模式之Active Object模式(三)java实现active object
- Windows编程中的映射模式和坐标转换
- PHP安全编程:PHP的安全模式
- 说说block编程和代理-委托模式
- 【编程素质】多线程编程之设计模式
- X86保护模式编程总结(3)
- socket编程之阻塞模式
- 使用Mixin设计模式进行Python编程的方法讲解
- 颠覆编程方式的感知编码:Wolfram雄心勃勃的全新计算模式
- 保护模式下的编程<二>
- CLR via C# 读书笔记 3-6 比较APM和EAP(异步编程模型和基于事件的编程模式)
- altera cyclone器件告别AS下载模式,直接用JTAG配置器件进行编程
- 函数对象编程模式