[088]抽象和具体之间切换

2017-11-19  本文已影响0人  shawnxjf

背景

前几天编程遇到一个流程变更导致金额变动的问题,刚开始琢磨了一会儿也没有理出背后写代码人的逻辑。正在百思不得其解时候,我突然意识到我应该在场景中具体分析其数字金额的变化情况。这样通过一条一条的具体场景梳理,“作者”写代码时的思路慢慢的呈现了出来。

由此我想到我们思考问题的时候应该多进行抽象和具体的切换,一开始多进行具体的场景分析,在具体场景的基础上归纳总结抽象,当你用抽象描述不清楚时候切换到具体场景分析。比如上面提到的流程变更导致金额变动的问题,我从代码层面分析不出来事,那就切换到对每个具体流程中数字如何变化分析。

这篇文章产生于上述过程中引发的对抽象和具体的思考。
首先会谈到我们的的认知模式是有具体到抽象,然后通过抽象来迁移。
其次谈到多用具体场景来明确你的逻辑,其中一个很好用的工具就是数学。

具体与抽象

我们小时候经常做找规律填数字的习题。其题如下:有以下一串数列 2 4 6 8 10 ?,请问?处的数字是啥。长大了我想明白了这其实是在培养我们归纳和抽象能力。
在学习过程中,我们也是从简单的一个一个场景摸索不停地归纳和抽象,从而达到一个整体了解。
在生活中接触各种具体的事情产生一些小观念,各种小观念汇聚起来就形成了你对大系统的认知。

从覆盖范围来说,大系统各抽象小系统更具体。从抽象看具体相当于从大系统去分析小系统,这样你的视野更全面目的更专一。
我们经常讨论问题时,没有抓住重点的原因是没有认清或者偏离了我们的初衷。做事和决策都带有一个平衡的过程,我们应该抓住我们主要想做的而不要漫无目的进行逻辑发散。

从认知角度来说,我们需要先从具体着手,对每个场景进行分析,慢慢的你会形成总的抽象的认知。当你有了抽象的认知后,你才可以高纬打低维。

通过具体场景来明确你的逻辑

代码是信息的抽象,当我们不知道代码其所表达的含义时何不举一个具体的场景来分析。抽象必须能覆盖具体,通过引入具体场景我们不仅只是解决了该具体场景。我们大脑会在此基础上通过逻辑归纳形成抽象的认知。

下面举一个工作中的例子(用于自己引证):
比如 前天写预付款编辑模块代码,当预付款编辑时会对其客户账户中预付款余额、锁定余额、可用余额产生影响。代码是信息的抽象,但是我们不知道如何用代码表达这种抽象。究其原因是我们对整体是一个模糊的理解 ,理所当然的认为编辑只是变更一个数字而已与外部条件无关。但当拿具体的数字比如预付款amount=7 变成了amount=5进行具体分析来知道,这种变更相当于生成了 5-7 =-2 的预付款明细。我们的逻辑推导不能理所当然不能模糊,如果模糊那么请进行几次具体的场景分析。有了具体的思维训练你会慢慢的归纳出整体抽象想要解决和表达什么问题。

数学很适合精确的演算逻辑,我们要做借助数学工具来分析。比如自然语言中通过概率来表示字符出现的可能性,通过数学工具来推导其在海量数据和复杂构造下的可能性。而这些跨维的事情很难通过普通的逻辑思考来进行清晰地推导。

说在后面的话

本文章为自己工作过程中的总结哈,请绕过!

上一篇下一篇

猜你喜欢

热点阅读