12. 编程是设计
来源:互联网 发布:淘宝大学免费视频教程 编辑:程序博客网 时间:2024/04/29 00:08
编程是设计
设想一下明天早上起床,发现建筑业取得了世纪性突破。上百万便宜的、动作极其快速的机器人能凭空制造出材料,只有几乎为零的成本,而且可以自我修复。还有更好的:给定一个建筑工程的明确的蓝图,机器人可能在无需人工干预、以几乎为零的代价下将其建造出来。
可以想象这对建筑业的影响,但是上游又会发生什么呢?如果建造成本几乎可以忽略不计,建筑师和设计师的的行为又会发生什么改变呢?现今,在对建造进行投资之前,会先做出物理模型和计算机模型,进行严格的测试。如果建造实质上是免费的,我们会纠结吗?如果一项设计失败了,没什么大不了的——只要查出是哪里不对并上我们的魔法机器上再做一个。这还有更深层次的意义。随着模型在被淘汰,未完成的设计也在重复建造和改进的过程中不断进化,逐渐接近最终的目标。不经意的观察者可能难以区分一个未完成的设计和完成了的产品。
我们预先计划时间表的能力会渐渐减退。建造成本远比设计成本容易计算——我们知道安装一只大梁的近似成本,也知道我们需要多少根大梁。随着可预测的任务渐渐减少近零,不容易预测的设计时间开始占主导。结果产出得更快了,但可靠的时间表却不在了。
当然,竞争经济的压力仍然是适用的。随着建造成本消失,可以快速完成设计的公司会占得市场先机。快速完成设计成为工程公司的核心推进力。当然,对设计熟悉得不够深的人则看不正确,只会看到早期的市场优势,说“这看起来很不错”。
一些生死攸关的项目可能会让人更勤奋,但大多数情况下,消费者要在未完成的设计中受苦。公司总是可以派出魔法机器人给他们售出的破房子和车子打“补丁”。这就出现了一个一眼看起来很违反直觉的结论:我们唯一的前提是建造成本的大幅降低,随之而来的结果是质量下降。
一点也不会觉得惊奇,上面的故事就在软件领域中发生过。如果我们接受软件是设计,一个创造性的过程而不是机械性的,那么软件危机就可以解释了。我们现在有了一个设计危机:对高质的、有效的设计的需求超出了我们制造它们的能力。使用不完整的设计的压力很大。
幸运的是,这个模型也给出了如何做得更好的线索。物理模拟等同于自动化测试;软件设计直到经过一系列的有效性测试才算完成。为了让这些测试更有效,我们要寻找控制大系统中的巨大阶段空隙的方法。改进的语言和设计实践给了我们希望。最终,这是一个不可逃避的事实:伟大的设计是由投身自己的技艺伟大设计师们做出的。编程也是一样。
原文:Code Is Design byRyan Brush
- 12. 编程是设计
- Go是设计糟糕的编程语言
- 软件开发的内容是:需求、设计、编程和测试!
- 设计模式是编程语言本身太弱的表现?
- 设计模式是编程语言本身太弱的表现?
- 编程设计
- 泛型编程与设计新思维------这是一篇引用别人的文章
- Swing是MVC设计的典范-Java基础-Java-编程开发
- 设计模式学习总结——OO编程是门艺术!
- 设计模式是用来弥补面向对象编程缺陷的方法总结
- 编程艺术是,而且一直以来都是 —— 语言设计艺术。
- 总体设计是建模
- 设计是门学问
- 设计是一种病
- 设计,是一种态度
- 设计,是一种态度
- 设计,是一种态度
- 程序设计是一种设计
- 20130806 一天旅程
- man手册的章节
- Loadrunner11下载及破解
- FLOGI,PLOGI,PRLI
- 北大POJ 2356 find a multiple
- 12. 编程是设计
- 树的非递归遍历(深度优先:前|中|后序遍历) & (广度优先:层次遍历)
- VB.net学习笔记(十)继承
- LeetCode-Unique Paths
- [leetcode刷题系列]Merge Intervals
- Google Chrome 快捷键大全
- wince发展史
- ant教程
- hdu2175之找规律