12. 编程是设计

来源:互联网 发布:淘宝大学免费视频教程 编辑:程序博客网 时间:2024/04/29 00:08

编程是设计

        设想一下明天早上起床,发现建筑业取得了世纪性突破。上百万便宜的、动作极其快速的机器人能凭空制造出材料,只有几乎为零的成本,而且可以自我修复。还有更好的:给定一个建筑工程的明确的蓝图,机器人可能在无需人工干预、以几乎为零的代价下将其建造出来。
        可以想象这对建筑业的影响,但是上游又会发生什么呢?如果建造成本几乎可以忽略不计,建筑师和设计师的的行为又会发生什么改变呢?现今,在对建造进行投资之前,会先做出物理模型和计算机模型,进行严格的测试。如果建造实质上是免费的,我们会纠结吗?如果一项设计失败了,没什么大不了的——只要查出是哪里不对并上我们的魔法机器上再做一个。这还有更深层次的意义。随着模型在被淘汰,未完成的设计也在重复建造和改进的过程中不断进化,逐渐接近最终的目标。不经意的观察者可能难以区分一个未完成的设计和完成了的产品。
        我们预先计划时间表的能力会渐渐减退。建造成本远比设计成本容易计算——我们知道安装一只大梁的近似成本,也知道我们需要多少根大梁。随着可预测的任务渐渐减少近零,不容易预测的设计时间开始占主导。结果产出得更快了,但可靠的时间表却不在了。
        当然,竞争经济的压力仍然是适用的。随着建造成本消失,可以快速完成设计的公司会占得市场先机。快速完成设计成为工程公司的核心推进力。当然,对设计熟悉得不够深的人则看不正确,只会看到早期的市场优势,说“这看起来很不错”。
        一些生死攸关的项目可能会让人更勤奋,但大多数情况下,消费者要在未完成的设计中受苦。公司总是可以派出魔法机器人给他们售出的破房子和车子打“补丁”。这就出现了一个一眼看起来很违反直觉的结论:我们唯一的前提是建造成本的大幅降低,随之而来的结果是质量下降。
        一点也不会觉得惊奇,上面的故事就在软件领域中发生过。如果我们接受软件是设计,一个创造性的过程而不是机械性的,那么软件危机就可以解释了。我们现在有了一个设计危机:对高质的、有效的设计的需求超出了我们制造它们的能力。使用不完整的设计的压力很大。
         幸运的是,这个模型也给出了如何做得更好的线索。物理模拟等同于自动化测试;软件设计直到经过一系列的有效性测试才算完成。为了让这些测试更有效,我们要寻找控制大系统中的巨大阶段空隙的方法。改进的语言和设计实践给了我们希望。最终,这是一个不可逃避的事实:伟大的设计是由投身自己的技艺伟大设计师们做出的。编程也是一样。
原文:Code Is Design byRyan Brush

原创粉丝点击