【这是一猿小讲的第 71 篇原创分享】
首先带着大家体验一下 生活 。斗地主估计大家都玩过,每次开玩之前,都会统计一副牌的张数到底够不够,最快的步骤莫过于:分几份给大家;然后大家一起数;最后大家把数都报出来,有一个人来累加一下,算算总张数;接着就可以愉快的玩耍啦... ...
然后带着大家感受一下 经验 。 掰玉米估计多数都干过,每当玉米成熟的季节,邻居老奶奶是最头疼啦,因为老奶奶膝下没有人,靠老奶奶一个人掰玉米确实有点难,每当这个时候,亲戚邻居都会帮老奶奶掰玉米,一会儿的功夫就帮老奶奶搞定啦... ...
人多力量就大,于是在村里就自发形成了:专业帮掰玉米团、专业帮种蒜团、专业帮收棉花团... ...
铺垫了这么多,你肯定还不知道咱们今天要聊啥?其实要聊的是藏在这两个的故事背后,你们猜是什么?好了别卖关子啦,其实想分享一种技术思想 —— 分而治之。
所谓“分而治之” 就是把一个复杂的算法问题,按一定的“分解”方法,分为等价的规模较小的若干部分,然后逐个解决,分别找出各部分的解,把各部分的解组成整个问题的解, 这种朴素的思想来源于人们 生活 与工作的 经验 ,也完全适合于技术领域。诸如软件的体系结构设计、模块化设计都是分而治之的具体表现 —— 摘自百度百科。
简单去理解,要解决一个大的复杂问题,采用分而治之的方法,可以分解为以下几步:
1)把复杂的大问题分解成两个或多个更小的问题( 掰玉米这件小事,按照人头划分 );
2)分别求的每个小问题的解答( 每人负责掰一垅玉米 );
3)把各小问题的解答组合起来,即可得到原问题的解答( 有专人负责玉米装车 )。
哪些地方用到了它?本次就不展开去说,感兴趣的可以追追往期的 MapReduce 相关文章。
最后,架构思想来源于人们生活!架构思想源自于人们的工作经验!当你有问题真想不明白的时候,不妨贴近生活尝试感受一下,说不定就顿悟啦!
好了,2 分钟让你不烧脑的分享,到这就结束啦, 希望你们能够喜欢,如果感觉有点意思,无需赞赏,芸芸众生,相遇相识便是缘,不妨动动手指 转发分享一下吧。
原文 http://mp.weixin.qq.com/s?__biz=MzU2MDg5NzYzNA==&mid=2247484600&idx=1&sn=7f1cad15f8808be36daff477be3f276a