论坛首页 综合技术论坛

编程方法的发展

浏览 5257 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2006-09-18  
我想了解一下软件开发中的编程方法的历史,以及现在流行的方法的来龙去脉,但是没有找到相关的总结性的文章,于是自行总结了一下,不当之处,请大家批评指正。

1.各种方法概述
  1)结构化编程
    程序应该按自上而下的顺序执行,不会做随便跳转。主要为了提高可读性(特别是控制结构的),可自上而下的阅读代码,并且执行的顺序也大体是这样的。
    它的三个组成部分:顺序Sequence,选择selection,循环(或迭代)repetition (or iteration)。任何控制结构都可以用这三个部分组成。
    需要小心使用其他方式如:break,continue,return,throw-catch.
  2)模块化编程
    将逻辑相关的数据和函数放在一个模块中。
    它没有多个实例的概念,相当于面向对象中的仅包含静态方法和静态变量的类。不需要实例化即可直接调用方法,只存在一个"实例"。
    VB中的Module就是这个思想的应用。
  3)面向对象编程
    主要特点:封装,继承,多态。
    封装(Encapsulation):将逻辑相关的数据和方法(函数)放在一个类中。跟模块化编程做的一致。
    继承(Inheritance):将内容或接口重用,并实现类型的多态。
    多态(Polymorphism):不同的语义环境下,同一名称可以有多种不同的实现。
        具体表现为两类:
        同名方法不同内容,实现方式:使用重载(overload),当然方法的参数是不同的;
        同名类型不同内容,实现方式:使用覆盖(override)或实现(implement)。允许使用同一接口调用不同类的的实例对象。

2.各种方法的目标
  结构化编程。重点是是控制结构,可看作是基本程序语句(无子程序)的结构;
  子程序化编程。似乎没有相关的历史潮流,但我认为加入它会使整个方法的发展过程更加完整。子程序(或过程、函数、方法)是模块化、面向对象编程的最重要的基石。
  模块化编程。重点是将数据和子程序逻辑相关的组合;
  面向对象编程。在模块化的基础上重点加入了模块之间的关系。这里的模块已演化为类。
3.方法体系
  上述几种编程方法可以归为一类,属于一个方法体系,其重点在于编程本身,力图管理并降低程序逻辑的复杂性。随其发展,管理的代码单元越来越大,越来越复杂,其方式也越来越接近日常的思维。核心是封装逻辑结构(子程序、模块、类),以便在更高层次上获得简化的关系。
  我认为此体系中新的方法还未出现。现在流行的方法中:AOP(面向方面编程),仅是此体系有益的补充;SOA面向服务架构,重点在于用统一的方式调用,而不依赖于底层技术,是组件化的一种形式,这不是这一类的主线方向。
 

4.总结:
      以往的编程方法和原则在现代的方法中得到了保留和发展,这对新手是一个挑战,不循序渐进的学习这些技术,想要短期学会现代方法(如:面向对象编程)是困难的。
      记住这些编程方法的主旨是很有好处的。
      新的编程方法必将是历史方法的继承和发展,所以学好这些旧的方法非常重要。
      掌握这些在各种层出不穷的新语言和新工具中不变的精华,或许,我们可以不再疲于追赶新的技术潮流。



   发表时间:2006-10-31  
听了tianxinet的忠言,我做了一些改进。
虚心听取大家的意见!
0 请登录后投票
   发表时间:2006-11-01  
说得没错,编程的发展源于实际的需要。如果跟随着一路走过来的人自然明白前因后果,运用起来得心应手。如果是半途加入的,免不了要加把劲了
0 请登录后投票
   发表时间:2006-11-06  
还应该再加上面向切面的编程方法
0 请登录后投票
   发表时间:2006-11-09  
缺少函数式编程与逻辑编程

过于不完整了。
0 请登录后投票
   发表时间:2006-11-10  
albertlee 写道
缺少函数式编程与逻辑编程

过于不完整了。

逻辑编程是什么?请解释一下。
0 请登录后投票
论坛首页 综合技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics