老冒妙语录(二)
J 命令式编程)其世界观是:程序是由若干行动指令组成的有序列表。其方法论是:用变量来存储数据,用语句来执行指令。
J (结构化编程)在微观上,主张循规守矩;在宏观上,主张分而治之。
J 一个按结构化编程思想设计的流程图,每个模块大小适中、模块之间关系简明、模块内部线路清晰,单从视觉上就会给人一种美感。相反,如果采用非结构化的设计,流程图往往结构如杂草般松散紊乱,脉络如迷宫般错综复杂,箭头如线头般剪不断、理还乱,情节严重的会导致读者头晕目眩,乃至抓狂吐血。
J 命令式编程是行动导向的,因而算法是显性而目标是隐性的;声明式编程是目标驱动的,因而目标是显性而算法是隐性的。
J 声明式编程重目标、轻过程,专注问题的分析和表达而不致陷入算法的迷宫,其代码也更加简洁清晰、易于修改和维护。
J 归根结底,编程是寻求一种机制,将指定的输入转化为指定的输出。
J 如果把整个流程看作一颗倒长的大树,过程式编程自树根向下,逐渐分支,直到每片树叶,类似数学证明中的分析法,即执果索因的逆推法;OOP则从每片树叶开始,逐渐合并,直到树根,类似数学证明中的综合法,即执因索果的正推法。
J 软件设计最重要的并不是编程语言,甚至也不是编程范式,而是抽象思维。
J 与其说OOP更具重用性,不如说更具易用性。
J 对一个没有独立思考习惯的人来讲,与其说他认同一个理论,倒不如说他认同该理论倡导者的权威。而在他仰视权威的同时,也把自己的思想交托给了权威。
J 函数是被动的实体,对象是主动的实体。
J 过程式程序的世界是君主制的;OO程序的世界是民主制的。
J 封装使得公民拥有个体身份,继承使得公民拥有家庭身份,多态使得公民拥有社会身份。
J 有谁愿意驾驶一辆启动后不能刹车、不能倒车、不能变速、油尽方停的汽车呢?
J 并发式编程以进程为导向、以任务为中心将系统模块化。
J 并发式编程以资源共享与竞争为主线。