1.如何理解“面向过程”?
为什么日常生活,有的人办事让你觉得有条有理?有的人办事却让你觉得“东一榔头西一棒子”?
为什么上学的时候,有的老师讲课让你一听就懂?有的老师就让你觉得很懵逼?
为什么工作的时候,有的领导讲话让你马上明白他的意图?有的领导讲话让你觉得罗里吧嗦?
这就是“不同的人,逻辑思维是否清晰、有条理”产生的差别。
“面向过程”(Procedure Oriented)是一种以过程为中心的编程思想。
面向过程,本质就是用“自然的逻辑”描述“办一件事情的流程”,这就极其依赖程序猿的逻辑清晰性和条理性。
2.如何理解“自然的逻辑”?
我想到我师傅说过的一段话,他立志于成为程序猿界的白居易。为什么是白居易?因为白居易写的诗很朴实、很自然,老人小孩都看得懂。
“自然的逻辑”就是朴实,再通俗点就是——说人话,不骚气,不绕弯,直来直去。
这么解释“自然的逻辑”还是很抽象,我总结了几个特征:
特征1:极强的目标性
此时我想到最近一个朋友的遭遇,这位朋友找了个待办公司办理公司注册,待办的小姑娘态度倒是很好,可总说不到重点,聊着聊着就跑题。类比到编程,这种没有目标性的思维,就会导致写出来的代码有很多与“主目标”无关的冗余代码。
阅读这种代码的时候,你总会有一种疑问:“这里为啥要写这么一段?”
“自然的逻辑”就是极强的目标性。
特征2:有条有理
再举一个例子,曾经见过一个用户给年轻的产品经理提静态网站改版的需求,年轻的产品经理折腾了一天,既没有把用户的完整需求引导出来,也没有告知用户还需要用户继续提供什么材料or帮助。
有经验的产品经理会怎么处理这个具体的“静态网站改版”需求呢?
首先,自上而下。
第一波梳理:这个静态网站有几个页面?哪些已经有设计稿了,哪些没有?
第二波梳理:每个页面有几个“模糊点”?(例如:有没有涉及js代码的交互逻辑?有没有超链接?有没有视频播放?等等)
经过第一波、第二波梳理,基本静态网站的sitemap已经很清晰了。
然后,自下而上。
第三波梳理:老的静态网站和新的静态网站在各个页面有什么差异?(无论差异大小)
经过第三波梳理,就等于查漏补缺了,各种细枝末节也被补齐了。
类比于编程,也是如此。
“自然的逻辑”就是有条有理,自上而下、自下而上多次反复以后,形成宏观和微观的理解。
3.如何训练?
记得知乎上有一个问题:“如何把大象装进冰箱这个问题为什么很有名?”
有一条答案总结的很到位:
“这个问题的核心要义是:学会将一个大的、模糊的问题分解为明确的、具体的小问题。问题本身用了夸张的手法,让人印象深刻。个人觉得。”
个人觉得,说的很有道理。我们可以利用日常生活中各种要处理的事情训练自己的逻辑思维。
关于“面向过程”,就写到这里吧。over