白话2种架构设计的区别,一看就懂~!

Posted Bella的技术轮子

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了白话2种架构设计的区别,一看就懂~!相关的知识,希望对你有一定的参考价值。

这是Bella酱的第 102 期分享


作者 | wenniuwuren

来源|http://r6d.cn/bmytq


今天聊一聊自底向上和自顶向下2种架构设计的区别,2个小故事,清晰明了~

某日小明上数学课,他的老师给了很多个不同的直角三角板让小明用尺子去量三角板的三个边,并将长度记录下来。两个小时过去,小明完成任务,把数据拿给老师。老师给他说,还有一个任务就是观察三条边之间的数量关系。又是两个小时,聪明的小明连蹦带跳走进了办公室,说:“老师,我找到了,三条边之中有两条,它们的平方和约等于另外一条的平方。”老师拍拍小明的头,“你今天学会了一个定理,勾股定理。它就是说直角三角形有两边平方和等于第三边的平方和”。

另一个故事,某日老师告诉小明“今天要教你一个定理,勾股定理。”小明说,“什么是勾股定理呢?”“勾股定理是说,直角三角形中有两条边的平方和等于第三边的平方。”然后老师给了一大堆直角三角板给小明,让他去验证。两个小时后,小明告诉老师定理是正确的.

第一个故事说的是自底向上的设计分析方法,第二个故事说的是自顶而下的设计分析方法。

我们用领域建模DDD这种方式,从一个一个用例去推导然后建模一个的业务的方式是自底向上的方式。

我们在抽象的角度去定义问题,然后问题拆解,这是一个自顶向下的方式。自顶向下最重要的是定义问题,而如何定义问题的前提是知道问题的定义。

阿尔伯特· 爱因斯坦曾经说:“ 提出一个问题往往比解决一个问题更重要。因为解决问题也许仅是一个数学上或实验上的技能而已,而提出新的问题,却需要有创造性的想象力,而且标志着科学的真正进步。”

两种分析方法的根本区别是:自底向上的分析,是从具体到抽象;自顶向下的分析,是从抽象到具体。两种分析思路恰恰又是哲学思考问题的两大方向。

一般有明确目标的小项目可以直接提出我们要做什么,这样可以节省时间,降低门槛。而大型的工程有些工期长达数十年,没有人能够知道数十年以后这个项目该是个什么样子,只能一点点地累加。

此外,自顶向下更适合生产环境,使用固化的方案去生产产品可以使生产管理得到简化,并能使工作变简单,实现流水线作业。这与自顶向下适合小项目并不冲突,流水线作业本身就是大规模的小项目生产者。自顶向下本身只能处理已知的问题,对技术水平的要求很低,对管理人员素质要求较高。管理人员必须对项目进行明确的规划,制定明确的项目进度。对于已知项目,建立一个项目进度表是可行的。进度表主要是为了让老板更放心,不要老过来捣乱,这样项目就能以最快的速度完成。

自底向上更适合实验室环境,使用高度优化的模式去生产产品,并且使每一个环节得到充分认证,可以使技术攻关难度降低,减少重复工作量,实现复杂的设计。自底向上没有可执行的进度表,因为自底向上的开发本质上是面向一个无限大的超级工程,每一个产品都只是这一超级工程的试验品。最高效的自底向上开发是随机开发,无法确定下一步会开发出什么东西,无法确定还有多少东西需要开发,一切都顺其自然。很少有老板会愿意接受这种模式。因为没有进度,外行人来管理的话就会无从着力,而投资者都是外行人。自底向上大多是个人项目,很少有投资者愿意为这种没有进度的超级工程预付成本。投资者更看重的是资金回笼后再投资的周期。

-END-

更多精彩文章

1.

2.

3.

4. 

5. 

6. 



团队招人,欢迎一起来做同事呀~


如果你喜欢本文

请长按二维码,关注 Bella的技术轮子

喜欢就点个在看

以上是关于白话2种架构设计的区别,一看就懂~!的主要内容,如果未能解决你的问题,请参考以下文章

一看就懂的DDD-(Domain Drive Design领域驱动设计)设计思想

一看就懂的DDD-(Domain Drive Design领域驱动设计)设计思想

[一看就懂] 图解 Kotlin SharedFlow 缓存系统

一看就懂的适配器设计模式

一看就懂的适配器设计模式

MOS管和IGBT区别,一看就懂