什么是分而治之?
@in桂林理工大学
1.“分而治之”的思想。把复杂的事情先分解为相对简单的几个事情,然后一步步细分下去。最后把里面的重点和难点单独拿出来分析。
2.“做什么,怎么做,为什么”,个人总结的。软件行业举例,编码人员要知道做什么。设计人员要知道怎么做。架构师要知道为什么。建筑行业举例,民工要知道做什么,工头要知道怎么做,设计院要知道为什么。
3.“世事洞明皆学问”。软件业经常参考其他行业的思路来设计系统。比如软件工程就参照了建筑工程。分布式系统类似政府职能部门,集群类似银行网点布局,多线程类似超市收银台,生长者消费者模式参照银行窗口排队。
模块化是在逻辑和物理上将整个系统分解成多个更小的部分,其实质是“分而治之” ,即将一个复杂问题分解成若干个简单问题,然后逐个解决。我们人类解决复杂问题的方式,基本都是采用分解的方式,即分而治之。所以给定一个系统的时候,我们尝试将其分解成不同的部分,按照一定的划分标准(比如,功能作用),我们可将其分出实际进行处理的模块(构件、连接件),以及负责连接(负责通信)的要素(分布,约束)等。