写点什么

《恰如其分的软件架构》随笔一:模型是复杂解决问题的重要途径

作者:panda
  • 2022 年 2 月 04 日
  • 本文字数:804 字

    阅读完需:约 3 分钟

《恰如其分的软件架构》随笔一:模型是复杂解决问题的重要途径

第一章概述里有这样一段话

假设教练和新手(初出茅庐的新队员)正在观看同一场比赛。教练所能观察到的内容远远超过新手。这并非是因为教练火眼金睛,而是因为他掌握了某种无形的武器。通过建立一整套思维抽象,教练能够透过现象看到本质,把对原始现象的感知转换为对目前局势简明扼要的理解。如教练在与新手都观看了同一场比赛,但是教练却可以更好地理解比赛。原因何在?Alan Jat早已捕获到这一现象,称之为你的“观察能力就值80分智商指数”。
复制代码


在许多底层细节上,软件皆大同小异。如果开发者已建立起一整套思维抽象(即概念模型),那么他们就能将哪些细节转换为简明的理解:也许在看到确切的代码以前,他们就明白了线程安全的锁策略,或者事件驱动的系统。
复制代码

我理解这段话的中心思想是:

  • 教练和新手的核心区别是教练心中是有模型的,而新手没有。教练通过心中的模型捕获赛场上的信息,依据捕获的信息和模型中的规则、要素等来判断赛场上的形势、优势 &劣势、机会 &风险、胜负趋向,而不是等进球了才知道赢了。

  • 模型可以帮助我们不需要真实的写代码,依然可以帮助我们做一些有价值的决策、提前帮助我们规避一下不必要的坑。


模型这个词学过、听过又忘记了,一直感触不深,但是最近大半年随着思考和学习的增多,发现它几乎无处不再,一旦遇到复杂问题,一定就有它的身影。

  • 物理学上有古老的天圆地方、日心说、地心说、原子模型

  • 生物学上 DNA 的双螺旋结构,化学上的分子结构

  • 思维上有金字塔结构、二八原理、木桶效应

  • 软件上有 B/S 结构、C/S 结构、分层架构、领域驱动设计


我们为什么需要模型?因为我们应对的是复杂的问题,直接解决遇到了困难:无法直接观察到(不可见)、无法看到全貌(空间跨度过大)、无法在有限的时间内解决(时间跨度过长)、有复杂的内部结构或有大量信息(需要协作)、不断变化且每次都有新的信息,总之我们当前无法立即解决!我们就需要有个东西可以模拟它!让它可见、时间和空间上足够小、内部结构可切割(可协作解决)!

发布于: 刚刚阅读数: 2
用户头像

panda

关注

还未添加个人签名 2018.07.14 加入

还未添加个人简介

评论

发布
暂无评论
《恰如其分的软件架构》随笔一:模型是复杂解决问题的重要途径