三、程式流程
程式有一定的运行规律,称为「流程」,意即在执行时,依照预先安排的顺序,一一流经的过程。
传统的程式写作法,流程非常重要,因为人需要根据一种理念,以逐步检验并付诸实现。但自从模组受到重视后,每个模组代表一种完整的功能,而功能的集合所能实现的效果,远非流程可以表达。这一来,流程的重要性减低了,其地位降到只属于结构中的一部份而已。
因为模组是可组合的,模组越多,主流程便越短。虽然每一个模组也都各有其流程,结构良好的模组,又可再细分为若干子模组,以此类推。因此,流程远不如模组灵活,观念上也显得呆板。
不过,即使在模组设计过程中,有时也有必要藉着流程逐步推理,以瞭解细部的结构。在这种立场,流程的应用原无可厚非。可是一旦反客为主,程式师不用流程即无从思考,就大谬不然了。
流程属于单线思考,人虽然经常使用这种流程推理,但更重要的能力却来自「抽象思考」。抽象思考是指人在许多错综复杂、相互纠结的现象中,能立即掌握重点,针对目的,解决问题。
在程式上,这种抽象思考相当于对所有模组的全面认知,而非仅仅是流程的推理。有了全面的认知,灵活地加以调用,程式的功能就更上层楼,大大的提高了。
如果程式师祇知道根据流程写程式,习惯养成后,不仅程式笨拙不堪,连人的思考方式都连带受到影响。一般所谓的「匠气」、「呆滞」,就是这种机械式训练的结果。
因此,我不赞成利用流程来规划程式,但在解释或说明某种过程时,并不排除流程的方便性。
四、流程图
流程的第一步是画流程图,根据流程图再作细部流程,然后根据细部流程去瞭解或编写程式。
以上面例子,先制作流程图如下:
┌─────┐
┌>───┤表格码输入│
│ └──┬──┘
│ ┌──┴──┐
│ │取 一 码│
&