面向函数编程与面向过程编程。

面向函数编程与面向过程编程。

第一部分:
面向函数编程,其编程范式的输入是调用参数、也叫参数传递,输出是函数返回、既包括计算结果的返回值也包括函数占用资源的释放,其他信息都被封装在函数内部、与调用者无关。可以看出,从信息封闭的角度,函数是个非常有效的范式模型:调用者只需要关心输入输出,其他的都由函数实现负责;对于调用者,函数是个没有状态、没有资源占用的设备;这样,对于调用者,只需要关心输入正确的参数后、函数返回的结果,其他的完全没有负担;所以,对于开发者,只要函数的返回结果是正确的、函数的实现就是正确的。显然,函数是简单而高效的代码封装设计。
然而,面向函数编程除了函数代码实现之外,还需要包括“如何基于函数构建系统”。编写函数代码是易于实现的,于是项目成败的关键就变成了系统分析与系统设计。一般情况下,基于函数的编程,倾向于采用自顶向下的工程设计模式。项目的方案论证要做到仔细而严格:如果项目的方案设计出现问题,从工程上进行修改和变动、几乎是不可能的;从经济和工作量角度出发,如果发生这种情况、不如废弃前面的所有工作、一切重新开始;修修补补,只会带来带病烂尾的项目实现,后续的维护成本和运行费用是不可预期的。顶层设计完成后,还需要进行系统内部调用分析,也叫做系统解耦分析。系统解耦分析主要是为了完成系统优化设计,保证系统的简单高效:系统内部过度耦合,会导致系统内部杂波的产生、甚至会产生内部混乱。以上工作完成后,因为函数可以分别实现、独立调试,所以编写代码的工作是易于控制的。对于大多数项目,系统联调是最让人头疼的。最担心的是出现不稳定性故障,对于不稳定性故障的追踪与排除,常常会归因于方案设计与优化的瑕疵。
第二部分:
面向过程的编程,其编程范式是基于状态变迁的分步操作。这样,就需要收集系统所有状态参数,并且编成状态参数块;需要把每一步操作开始时需要满足的参数条件编成触发器,用于启动该操作;需要编写每一步的操作代码;在初始调用时需要初始化状态参数块;可以把复杂操作编写成子过程进行封装,在主过程中调用。可以看出:面向过程的编程范式是严谨而扎实的,其代码实现过程是符合工程实施规范的。只是,系统状态参数的设计与选择是复杂而困难的,系统状态参数的安全与稳定是需要系统设计保护的,系统的其他部分都是简单而规范的。面向过程的编程,最大的优势是系统设计清楚而明晰,系统调度简单易懂,系统触发器的设计简化而高效。可以看出,面向过程的编程范式是足以和面向函数的编程范式相竞争的编程模型。

你可能感兴趣的:(算法,c语言,数据库,开发语言,经验分享)