1 / 11
文档名称:

金字塔编程.ppt

格式:ppt   大小:1,141KB   页数:11页
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

金字塔编程.ppt

上传人:3239657963 2016/9/7 文件大小:1.11 MB

下载得到文件列表

金字塔编程.ppt

相关文档

文档介绍

文档介绍:金字塔编程许伟锋目录什么是金字塔编程为什么引入金字塔编程开始金字塔编程 1234 什么是金字塔编程?金字塔编程,是一种结构化思维编程方式。需要了解什么是结构性思维需要先了解与之对应的直线式思维。?什么是直线式思维方式? 它是人类最原始最常用的思维方式。?今天去市场买菜,买了鱼、牛肉、黄瓜、酱油、生菜、盐。?那金字塔思维就是这样的: ?今天去市场买菜,买了肉类、蔬菜、调味料。肉类有:鱼、牛肉;蔬菜有:黄瓜、生菜;调味料有:酱油、盐。买菜肉蔬菜调味料鱼牛肉生菜盐酱油什么是金字塔编程?那金字塔编程就可能是酱紫的: ?修改配置并保存—》写配置(…)—》返回结果; ?什么是直线式思维编程?最常见的编程方式。?修改配置并保存--》 、 、 ifcfg-ethx;dns 写入 -- 》返回保存成功/失败。 Main 修改配置并保存写配置返回结果写 IP写 DNS 写 ifcfg-ethx 写 ?金字塔编程是一种自上而下的编程思想为什么引入金字塔编程?神奇数字 7,正常的人一次能够理解记忆的思想或概念的数量是有限的,如果需要记忆的事物数量超过 7个后, 数量越多会越模糊。?一个例子: 当你想抽根烟准备思考人生的时候,突然发现打火机打不着火了,于是你准备去楼下便利店买个打火机。当你准备出门的时候,妻子看到你准备出门买东西,就对你说: “看到电视上的鲜橙广告,我突然很想吃橙子”。当你准备穿鞋出门时,妻子走进厨房打开冰箱看了一下“我们的酸奶已经没了,本来准备明天做早餐的,还有顺便买点面包和火腿、鸡蛋回来,明天早上就吃三明治吧”“还有女儿铅笔没了”“再买点苹果”“还有吗?? ”“没了,就这些”如果不重新读一遍上面的文字,你现在能记住要买的 8样东西?可能回来的时候只买了打火机跟橙子。为什么引入金字塔编程?神奇的数字“7”指出了一个正常的普通人其大脑一般无法同时处理或者记忆超过 7个事物。更何况是我们每天接触的这些更复杂的代码的逻辑呢??稍微大型点的模块,一次需要处理事件肯定不止“7”个。?所以我们经常会发现当我们编码到某个地方的时候才突然想到之前没考虑到的异常/正常处理。为什么引入金字塔编程?需要引入金字塔编程的另外一个原因: ?一个关于程序员的笑话: ?一个程序员下班了他老婆给他打电话说下班回来的时候买一笼包子,看见卖西瓜的就买两个。最终程序员买了两个包子带回家。?看起来不可能发生的笑话其实在我们身边经常发生,因为这个问题就是缺少了一个判断或者之前没考虑到一个条件导致逻辑出错了。?而产生这个问题的原因之一就是线性思维。开始金字塔编程?仍旧是上面提到的程序员笑话,我们如何能不再引起这种笑话呢? ?我们把我们的话/逻辑用下面这种方式组织是不是就不会出笑话了呢? 老婆打电话过来要买一些东西买包子买西瓜买一笼买两个如果有开始金字塔编程?构造金字塔的基本原则: ?自上而下。?抽象。例如程序员笑话里面的“买一些东西”,编程时“输出日志”,“显示用户信息”等?相互独立,完全穷尽。?相互独立: “买包子”和“买西瓜”就是两件完全相互独立的工作; “显示用户信息”和“输出日志”也是两件完全独立的工作; “显示用户信息”和“显示用户银行账号”就是相互包含的两种工作。相互独立仅针对有同一父节点同一层次之间的任务/事物。?完全穷尽: “买一些东西”分解成“买包子”、“买西瓜”。有且仅有这两个工作。继续构造金字塔?案例: web 缓存服务器/web 代理 Main 解释请求解释回应 GET POST 200 404 Accept- encoding PUT Last- Modified connectio n 命中缓存无缓存命中缓存已有缓存无缓存