自底向上和自顶向下的架构设计区别

2023-11-05

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

 

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

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

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

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

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

 

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

自底向上和自顶向下的架构设计区别 的相关文章

  • 数据库设计中常见表结构的设计技巧

    一 树型关系的数据表 不少程序员在进行数据库设计的时候都遇到过树型关系的数据 例如常见的类别表 即一个大类 下面有若干个子类 某些子类又有子类这样的情况 当类别不确定 用户希望可以在任意类别下添加新的子类 或者删除某个类别和其下的所有子类
  • 好的软件架构设计

    什么是软件架构 前言 软体设计师中有一些技术水平较高 经验较为丰富的人 他们需要承担软件系统的架构设计 也就是需要设计系统的元件如何划分 元件之间如何发生相互作用 以及系统中逻辑的 物理的 系统的重要决定的作出 在很多公司中 架构师不是一个
  • Weblogic 12c 负载均衡和session复制

    在上一篇 我们介绍了weblogic集群的部署和session的复制 如何将请求负载均衡到这个三个服务器上呢 这里提供两种方式 1 weblogic自带的proxy代理 2 nginx实现负载均衡 一 通过proxy实现负载均衡 1 创建p
  • Agents探索实践:自动写文章机器人

    最近几个周末都在写一个自动生成文章的机器人 经过上线实验之后 我的总结如下 1 基于Agents对业务流进行重构就是AI垂直应用的壁垒 2 Prompt的壁垒在于对业务关键环节的重构 可拆解为Role Goal Skill Constrai
  • 吴博:京东应用架构设计与治理

    吴博 京东应用架构设计与治理 经过十年的业务快速发展 京东信息系统复杂度越来越高 一般电商系统只需关心 进销存 中的 销 京东系统需要管理采购 进 销售 销 和库存 存 三个环节 系统做水平垂直拆分后 需要解决系统间如何解藕 如何保证高效通
  • 系统设计和机器学习算法

    LAMDA 机器学习书与数据挖掘研究所 算法训练网站 提供了大量可以练习的网站 1 Leetcode 2 Geeksforgeeks 3 Hackerrank 4 Lintcode paddlepaddle 系统设计 关注 系统设计 面向对
  • 架构设计(数据层)

    架构设计 数据层 关系数据库 关系数据库 需要事先定义表 读写数据时 表中字段不可动态变更 表中的每个行记录代表一个关系 1 海贼王 20 2 瓜田李下 20 表与表之间也可建立关联关系 一对一 一对多 多对一 多对多 关系型数据库进行读写
  • 十大新兴前端框架大盘点

    十大新兴前端框架大盘点 2019年在整体上 前端的主流框架没有太大的变化 业务代码仍由三大框架 React Vue Angular 所主宰着 打包工具一般仍使用webpack Rollup js 状态管理器还是Redux MobX 但随着这
  • 基于接口设计原则-java

    7种设计坏味道 1 僵化性 很难对系统进行改动 因为每个改动都会迫使许多对系统其他部分的其它改动 2 脆弱性 对系统的改动会导致系统中和改动的地方在概念上无关的许多地方出现问题 3 牢固性 很难解开系统的纠结 使之成为一些可在其他系统中重用
  • 自底向上和自顶向下的架构设计区别

    某日小明上数学课 他的老师给了很多个不同的直角三角板让小明用尺子去量三角板的三个边 并将长度记录下来 两个小时过去 小明完成任务 把数据拿给老师 老师给他说 还有一个任务就是观察三条边之间的数量关系 又是两个小时 聪明的小明连蹦带跳走进了办
  • 服务降级、熔断、限流

    目录 目录 1 概念 1 1 降级 1 1 1 常见降级 1 1 2 示例 1 2 熔断 1 2 1 熔断设计 1 2 2 示例 1 3 限流 1 3 1 算法 1 3 2 示例 2 区别 3 案例 1 概念 1 1 降级 服务降级处理是在
  • 【转】那些年使用过MapReduce的论文

    MapReduce is a programming model for processing large data sets with a parallel distributed algorithm on a cluster It s
  • Access、SQLite、HSQLDB、Sybase、MySQL、DB4O比较

    本文转自 http blog sina com cn s blog 465bc6c90100eums html 一 Access 数据类型有些另类 而且密码太容易被攻破 性能不高 只能用在Windows程序上 一般说来 单个表不超过10万少
  • Nacos使用域名做为服务地址遇到的问题及解决方案

    一 发现问题 应用启动时 增加Nacos服务端的配置信息 应用使用IP加端口连接Nacos服务器时 运行一切正常 启动参数增加以下Nacos参数 Dspring cloud nacos discovery namespace DEV Dsp
  • 做个成功的管理者

    什么是 管理 大家对这词都不陌生 但什么才是真正的管理呢 管理的真谛在 理 不在 管 管理者的主要职责就是建立一个合理的游戏规则 让每个员工按照游戏规则自我管理 游戏规则要兼顾公司的利益和个人的利益 并且把公司的利益和个人的利益统一起来 尽
  • 腾讯高性能RPC开发框架Tars实现服务治理(微服务)

    Github https github com Tencent Tars 1 介绍 Tars是基于名字服务使用Tars协议的高性能RPC开发框架 同时配套一体化的服务治理平台 帮助个人或者企业快速的以微服务的方式构建自己稳定可靠的分布式应用
  • 【Spring Boot 集成应用】 OAUTH2统一认证单点登录中的各种模式说明

    1 OAUTH2统一认证介绍 OAuth 2 0 是一个行业的标准授权协议 OAuth 2 0 专注于简化客户端开发人员 同时为 Web 应用程序 桌面应用程序 手机等各种设备接入提供特定的授权流程 2 传统登陆认证 传统登陆方式是在每个服
  • Weblogic 12c 集群部署和session复制

    在上一篇Weblogic12c集群搭建的基础上 这一篇介绍Weblogic12c集群应用的部署和session复制 1 启动服务 首先在weblogic12c控制台 启动受托管服务server1 server2 server3 2 将要部署
  • 基于 UML 的业务建模举例

    基于 UML 的业务建模 2011 05 30 作者 杨敏强 来源 网络 简介 对于管理流程咨询项目 大型信息化建设项目和套装管理软件实施项目 对业务环境的分析和理解对项目的成功至关重要 系统 全面理解 IT 系统所处的业务环境 可以帮助
  • 网盘系统设计:万亿 GB 网盘如何实现秒传与限速?

    Java全能学习面试指南 https javaxiaobear cn 网盘 又称云盘 是提供文件托管和文件上传 下载服务的网站 File hostingservice 人们通过网盘保管自己拍摄的照片 视频 通过网盘和他人共享文件 已经成为了

随机推荐

  • Java实现设计模式之——单例模式

    目录 1 什么是单例模式 2 单例模式的实现 2 1 饿汉式单例模式 2 2 懒汉式单例模式 3 线程安全的单例模式 3 1 版本 1 3 2 版本 2 双重检测 3 3 版本 3 禁止指令重排 1 什么是单例模式 单例模式是 Java 中
  • H2RBox:HORIZONTAL BOX ANNOTATION IS ALL YOU NEED FOR ORIENTED OBJECT DETECTION(读论文)

    H2RBOX HORIZONTAL BOX ANNOTATION IS ALL YOU NEED FOR ORIENTED OBJECT DETECTION 文章目录 H2RBOX HORIZONTAL BOX ANNOTATION IS
  • 拆分——nim游戏

    题目 给定 n 堆石子 两位玩家轮流操作 每次操作可以取走其中的一堆石子 然后放入两堆规模更小的石子 新堆规模可以为 0 且两个新堆的石子总数可以大于取走的那堆石子数 最后无法进行操作的人视为失败 问如果两人都采用最优策略 先手是否必胜 输
  • 三、Redis_12(笔记)

    文章目录 Redis Redisd的简介 Redisd的特点 NoSQL技术 Redis 的安装 Redis 的分类 Redis 的常 命令 基本命令 字符串相关命令 Hash 相关命令 List 相关命令 Set 相关命令 ZSet 相关
  • CKA真题分析-2023年度

    补充信息 补全 apt install bash completion source lt kubectl completion bash kubectl config get contexts cat kube config grep c
  • python 自定义类支持缓冲协议_Python编程技巧整理

    过滤列表中的数据 实际案例 过滤掉列表里面的负数 案例分析 filter function or None iterable py2返回一个列表 py3返回一个迭代器 列表解析 使用timeit来测试函数的运行时间 案例代码 python3
  • threw exception [Request processing failed; nested exception is java.lang.NullPointerException] with

    异常描述 空值异常 java lang NullPointerException 这是因为我自己在拦截器拦截的时候进行的登录判断时通过session获取到一个空的user并使用这个实体类的getUserName方法获取用户名出现了错误 这是
  • C++ 作业 day1 7/14

    脑图
  • 性能监控-grafana+prometheus+node_exporter

    Prometheus是一个开源的系统监控和报警工具 它由SoundCloud开发并于2012年发布 后来成为了一个独立的开源项目 并得到了广泛的应用和支持 Prometheus的主要功能包括采集和存储各种系统和应用程序的监控数据 并提供强大
  • 基础算法题——学长的白日梦(快速幂、快速逐步求积)

    学长的白日梦 题目简单明了 只要将计算出 xi 即可 两个卡点 快速幂 快速逐步求积 由于这道题 mod 999999997 mod mod gt 10 19 不能直接用快速幂解决 中间求积会爆 于是我卡在逐步求余上动弹不得 唉 看了题解后
  • selenium找不到chrome浏览器的解决办法

    传入chrome exe的绝对路径 例如 options webdriver ChromeOptions options binary location C Program Files x86 Google Chrome Applicati
  • 关于RC电路特点以及几种常见的典型应用

    RC电路是由电阻R以及电容C组成的电路 只需要一个电阻R以及一个电容C 通过这两个器件的不同串并联 并选取不同的参数 可以实现几种不同的功能 RC电路在模拟电路 数字电路中得到了广泛的应用 R 的连接方式 RC 串联电路 电路的特点 由于有
  • mybatisplus group by 归组

    QueryWrapper
  • web前端文件上传可选择的4种方式

    在web前端开发中 文件上传属于很常见的功能 不论是图片 还是文档等等资源 或多或少会有上传的需求 一般都是从添加文件开始 然后读取文件信息 再通过一定的方式将文件上传到服务器上 以供后续展示或下载使用 本文将讲述文件上传中所能用到的4种添
  • 【AtCoder Beginner Contest 252】部分题解

    D Distinct Trio 题意 给定一个长度为 n n n的序列 a a a 求使得 1
  • Python编程:从入门到实践 项目《外星人入侵》完整代码

    blog github hexo的blog链接 github 我的github传送 学习 Python编程 从入门到实践 有段时间了 跟着书本把所有代码都敲了一遍 感悟很深 现在完成了 外星人入侵 项目 对于库 类 函数 方法都有一定的理解
  • Android 多行RadioGroup 实现

    需求如下 思路有多种 可以用自定义布局 RecycleView 代码动态控制布局 RadioGroup 等方式实现 今天我用的RadioGroup 实现思路如下 布局文件如下
  • DLNA第一步UPnP协议栈

    前面公司有DLNA项目 研究了一下 在网上关于DLNA的资源很少 就将自己的心得写出来 以供参考 其它的关于DLNA的介绍就不多说 要了解DLNA需要了解upnp 因为DLNA在upnp之上 初学者可以从http www upnp org下
  • std::sort 升序 ? 降序

    Std sort 这个函数 大家知道用 而且入可以 使用一个自定义的元素对比函数 比较郁闷的是 老是忘了 这个函数返回TRUE 对排序结果的影响 升序还是降序 于是用GTEST写了一段代码 测试代码 将就些看吧 class HandHogR
  • 自底向上和自顶向下的架构设计区别

    某日小明上数学课 他的老师给了很多个不同的直角三角板让小明用尺子去量三角板的三个边 并将长度记录下来 两个小时过去 小明完成任务 把数据拿给老师 老师给他说 还有一个任务就是观察三条边之间的数量关系 又是两个小时 聪明的小明连蹦带跳走进了办