设计规则:模块化的力量

这是一本比较冷门的书**《设计规则:模块化的力量》**,虽然豆瓣上只有58个评价,但是确实能学到很多东西。

这本书对我非常深远。不是是投资,创业,还是其他领域,模块化思想都能帮上你。这本书告诉我们生万物的规则。

书籍电子版PDF(建议及时保存,避免被和谐):https://pan.quark.cn/s/aa40d59295df(分类在设计类书籍文件夹)

备用链接:https://pan.xunlei.com/s/VNgj2vjW-Hf_543R2K8kbaifA1?pwd=2sap#

这本书谈的是机制设计,机制设计就是系统运行规则的制定,是一个复杂系统的构建。无论是创业做一个公司,开发一个产品,还是创作一篇文章,都是在构建一个复杂系统。

那么如何构建一个复杂系统呢? 本能的反应就是先局部,再组合到一起形成一个整体。这就是模块化的思维。

《设计规则:模块化的力量》是关于模块化的一本神书,是哈佛商学院工商管理教授写的,通过讲解如何用模块化的方式构建一个复杂稳定运行的系统。

鲍德温教授]认为模块化系统应由下面三个要素组成:

• 设计规则:每个模块间的相互依赖性形成一定的规则;

• 模块:每个模块都要遵循统一的设计规则,而内部可以独立设计;

• 系统集成与检测: 监测并协调各个模块组件集合成整体后的不适合部分。

这里需注意一点,模块是可以递归的,即能够「大盒套小盒」,也就是说模块还可以分解为多个子模块,如有必要,子模块仍然可以进一步分解。将复杂事物分层是帮助我们认清它的一个有效努力,但也不应分太多层,层数太多,设计规则会变复杂,最后整合时发生矛盾的可能性就成倍增加

有用的话,请帮我点个赞!

我们逐个分析这三个步骤:

第一步,设计规则

首先来看设计规则,在模块化过程中,设计规则是纲领,是指导方针,鲍德温教授说明确的规则有三种:

• 结构:确定系统有哪些模块构成,即怎样将模块分解,分类,以及他们如何发挥各自作用;

• 界面:定义模块的边界,模块排序方式,空间、时间的安排,模块间的关系以及信息传递方式;

• 标准:检验模块是否符合设计规则,对模块性能测验和评定。

除明确的规则外,还有一种「隐形的设计规则」,这种规则只在模块内部有效,而对设计其他模块没有影响。而模块内部的决策,可被代替或者事后再定,因此也就没有必要与同它平行的模块知道,我们选择将它「隐藏起来」。

第二步,操作模块

规则有了,那具体如何操作模块呢?鲍德温教授的《规则设计》一书总结了六种不同的模块操作程序:

1.分解:将任务或系统分解为多个模块;

2.替代:用某个模块去替代另一模块;

3.排除:去除某个模块;

4.扩展:增加某个模块;

5.归纳:将多个模块中相同要素归纳合并到一起,组成一个新的模块,这意味将原来的隐藏信息移动到设计层级,使之对其他模块组可见;有点像一个公司中,原来每个项目组都有一个人负责营销,现在将各项目组营销人员整合起来,组成一个新的营销部门,负责所有项目组的营销任务。

6.移植:系统中的某个模块还负责其他同级模块的一些功能,有挣脱该层级的需求,于是就将它升级到上一层。这就像在企业中,一个小组长是多面手,既管营销,又管生产,都干的很好,小组长这个职位已经不能充分发挥它的才能,领导就升迁他做了副经理。

第三步,系统集成与检测

模块化系统中最后一个要素是系统集成与检测。如果高质量的完成了规则设计和模块操作,那么系统集成会很顺利。但结果总跟预想的不一样,因此需要对各模块检查验收,以及协调和消除各模块间的摩擦。一般来说,系统集成与检测是平行于其他模块的一个实现特殊功能的模块。这有点像建筑施工中监理单位的工作,监理和施工单位是平行的,负责检查各单位工作的完成质量和进度,也协调过程中遇到的问题,保证项目既快又好地竣工。

这本书因为含金量极高,跨学科,理论性很强,读起来会有点难度,我读了三遍,做了几万字的笔记,才摸到点门。

如果对这个主题感兴趣,有本比较薄,好读的书,名叫《模块时代:新产业结构的本质》,日本人写的,是对这个领域的一些概述,相对好读很多,读完感兴趣,意犹未尽,可以再啃设计规则。

感兴趣的可以去看看原文书籍电子版PDF(建议及时保存,避免被和谐):https://pan.quark.cn/s/aa40d59295df(分类在设计类书籍文件夹)

备用链接:https://pan.xunlei.com/s/VNgj2vjW-Hf_543R2K8kbaifA1?pwd=2sap#

如果文章对你有用的话,请帮我点个赞!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/205763.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

elasticsearch操作

目录 一、mapping映射属性二、索引库的CRUD2.1 创建索引库和映射2.2 查询索引库2.3 修改索引库2.4 删除索引库2.5 总结 三、文档操作3.1 新增文档3.2 查询文档3.3 删除文档3.4 修改文档3.5 总结 四、RestClient操作索引库4.1 初始化RestClient4.2 创建索引库4.3 删除索引库4.4 …

yolov1网络结构说明

文章目录 一. 网络结构二. 网络说明1. 网络的输入2. 网络的输出(1) 5 5表示:每个网格使用两个先验框进行预测。(2) “5”表示:每个先验框包含的预测信息的数量。(3) 20表示:20个分类预测值(4) 每个网格能预测几个目标? 一. 网络结构 论文下…

【古月居《ros入门21讲》学习笔记】18_常用可视化工具的使用

目录 说明: 1. Qt工具箱 日志输出工具:rqt_console 绘制数据曲线:rqt_plot 图像渲染工具:rqt_image_view 综合工具:rqt 2. 三维可视化工具:Rviz Rviz启动 使用示例 3. 仿真平台:Gazebo…

Kotlin学习——kt入门合集博客 kt里的委派模式Delegation kt里的特性

Kotlin 是一门现代但已成熟的编程语言,旨在让开发人员更幸福快乐。 它简洁、安全、可与 Java 及其他语言互操作,并提供了多种方式在多个平台间复用代码,以实现高效编程。 https://play.kotlinlang.org/byExample/01_introduction/02_Functio…

谱方法学习笔记-下(超详细)

谱方法学习笔记📒 谱方法学习笔记-上(超详细) 声明:鉴于CSDN使用 K a T e X KaTeX KaTeX 渲染公式, KaTeX \KaTeX KATE​X 与 L a T e X LaTeX LaTeX 不同,不支持直接的交叉引用命令,如\label和\eqref。 KaTeX \KaT…

Linux学习笔记09、Shell命令之历史命令和自动补全

上一篇:Linux学习笔记08、Shell命令之常用命令缩写及全称 目录 1、历史命令: 1.1、查看所有历史命令列表: 1.2、查看指定历史命令: 1.3、清除历史命令: 2、自动补全 2.1、当字符串唯一时: 2.2、当有多个…

Python自动化测试数据驱动解决数据错误

数据驱动将测试数据和测试行为完全分离,实施数据驱动测试步骤如下: A、编写测试脚本,脚本需要支持从程序对象、文件或者数据库读入测试数据; B、将测试脚本使用的测试数据存入程序对象、文件或者数据库等外部介质中;…

C++面向对象复习笔记暨备忘录

C指针 指针作为形参 交换两个实际参数的值 #include <iostream> #include<cassert> using namespace std;int swap(int *x, int* y) {int a;a *x;*x *y;*y a;return 0; } int main() {int a 1;int b 2;swap(&a, &b);cout << a << &quo…

GraphCast:基于机器学习的全球中期天气预测模型

文章信息 文章题为”GraphCast: Learning skillful medium-range global weather forecasting”&#xff0c;该文章于2023年发表至Science&#xff0c;文章内容主要关于利用机器学习模型&#xff0c;实现高效、准确的全球中期天气预测。由于文章内容较多&#xff0c;本文仅对研…

Retrofit+OkHttp打印Request 请求地址参数

在移动端开发时&#xff0c;我们常常需要像web端一样可以方便地查看我们向服务器发送请求的报文详细日志&#xff08;如请求地址&#xff0c;请求参数&#xff0c;请求类型&#xff0c;服务器响应的耗时时间&#xff0c;请求返回的结果等等&#xff09;。 使用Retrofit时&…

【傻瓜级JS-DLL-WINCC-PLC交互】6.​向PLC里面装载数据变量

思路 JS-DLL-WINCC-PLC之间进行交互&#xff0c;思路&#xff0c;先用Visual Studio创建一个C#的DLL控件&#xff0c;然后这个控件里面嵌入浏览器组件&#xff0c;实现JS与DLL通信&#xff0c;然后DLL放入到WINCC里面的图形编辑器中&#xff0c;实现DLL与WINCC的通信。然后PLC与…

Jmeter进阶使用:BeanShell实现接口前置和后置操作!

一、背景 我们使用Jmeter做压力测试或者接口测试时&#xff0c;除了最简单的直接对接口发起请求&#xff0c;很多时候需要对接口进行一些前置操作&#xff1a;比如提前生成测试数据&#xff0c;以及一些后置操作&#xff1a;比如提取接口响应内容中的某个字段的值。举个最常用…

fastReID论文总结

fastReID论文总结 fastReIDReID所面临的挑战提出的背景概念&#xff1a;所谓ReID就是从视频中找出感兴趣的物体&#xff08;人脸、人体、车辆等&#xff09;应用场景&#xff1a;存在的问题&#xff1a;当前的很多ReID任务可复用性差&#xff0c;无法快速落地使用解决方式&…

用Metasploit进行信息收集2

基于FTP协议收集信息 1.查看ftp服务的版本信息 打开metasploit 查看ftp版本的模块&#xff0c;并进入模块 msf6 > search ftp_version msf6 > use auxiliary/scanner/ftp/ftp_version msf6 auxiliary(scanner/ftp/ftp_version) > show options 查看靶机的端口开方情…

SpringCloud原理】OpenFeign之FeignClient动态代理生成原理

大家好&#xff0c;前面我已经剖析了OpenFeign的动态代理生成原理和Ribbon的运行原理&#xff0c;这篇文章来继续剖析SpringCloud组件原理&#xff0c;来看一看OpenFeign是如何基于Ribbon来实现负载均衡的&#xff0c;两组件是如何协同工作的。 一、Feign动态代理调用实现rpc流…

Python语言学习笔记之六(程序调试及异常处理)

本课程对于有其它语言基础的开发人员可以参考和学习&#xff0c;同时也是记录下来&#xff0c;为个人学习使用&#xff0c;文档中有此不当之处&#xff0c;请谅解。 1、Python程序常见的错误 语法错误:不正确的缩进、未定义的变量、括号不匹配等.运行时错误: 尝试访问不存在的…

爬虫学习 异步爬虫(五)

多线程 多进程 协程 进程 运行中的程序 线程 被CPU调度的执行过程,操作系统 运算调度的min单位 在进程之中,进程中实际运作单位 from threading import Thread#创建任务 def func(name):for i in range(100):print(name,i)if __name__ __main__:#创建线程t1 Thread(target …

Nuxt.js:下一代Web开发框架的革命性力量

文章目录 一、Nuxt.js简介二、Nuxt.js的特点1. 集成Vue.js和Node.js2. 自动代码分割和优化3. 服务端渲染&#xff08;SSR&#xff09;4. 强大的路由管理5. 丰富的插件系统 三、Nuxt.js的优势1. 提高开发效率2. 降低维护成本3. 提高用户体验 四、Nuxt.js在实际应用中的案例1. 电…

前端:实现二级菜单(二级菜单悬浮在一级菜单左侧)

效果 代码 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content"widthdevice-width, i…

5V摄像机镜头驱动IC GC6208,可用于摄像机,机器人等产品中可替代AN41908

GC6208是一个镜头电机驱动IC摄像机和安全摄像机。该设备集成了一个直流电机驱动器的Iris的PID控制系统&#xff0c;也有两个通道的STM电机驱动器的变焦和对焦控制。 芯片的特点: 内置用于Iris控制器的直流电机驱动器 内置2个STM驱动程序&#xff0c;用于缩放和…