《设计原本—计算机科学巨匠Frederick P. Brooks的反思》一一1.2 什么是设计

简介: 本节书摘来自华章出版社《设计原本—计算机科学巨匠Frederick P. Brooks的反思》一 书中的第1章,第1. 2节,作者:(美) Frederick P. Brooks, Jr. 著 ,更多章节内容可以访问云栖社区“华章计算机”公众号查看

1.2 什么是设计
《牛津英文词典》对设计这个动词的定义如下: 形成计划或方案,在头脑中整理或构思……以备后续执行。 这一定义的要点在于计划、在头脑中和后续执行。所以,设计(作为一个名词)属于受造的事物(created object),它先于被设计之物而存在且与后者相关,但又截然不同。英国作家、编剧Dorothy Sayers在她那本发人深省的著作《The Mind of the Maker》里,将创作过程细分为三个不同的阶段,并分别称之为构想(idea)、运能(energy)或称实现(implementation)、交互(interaction)。1意思是: 1)将概念结构定形 2)在实际的领域中加以实现 3)在实际的应用中与用户交互 依照这种概念,无论是一本书、一台计算机,还是一个程序,都肇始于灵机一动,构思于时空之外,只在创作者的头脑中得以完成。尔后,通过钢笔、墨水和纸,或者硅和金属,在实际的时空里加以实现。最后,当有人读了这本书、用了这台计算机,或是运行了此程序时,从而与创作者的思想产生了交互,创作过程也就告一段落了。 在我以前的一篇论文中,我将构建软件的工作分为根本(essence和附属(accident)这两部分2,这两个术语引自亚里士多德,并非想要贬低软件创作中附属部分的工作。如果使用更好理解的现代术语,则是必要的(essential)和次要的(incidental)。我所指称的软件创作中的根本部分,是形成其概念结构的心智工艺;而附属部分是它的实现过程。而Sayers所谓的第三步,交互,则在软件得到使用时才会发生。 总而言之,设计就是在头脑中定形,即Sayers所谓的“构想”,它可以在任何具现步骤还没开始之前完成。有一次,莫扎特的父亲问他,有一部三周内要交付公爵的歌剧进度如何。莫扎特的回答既让人大吃一惊,又阐明了设计的概念: 曲子全都谱好了,只是还没写下来。 —致利奥波德·莫扎特信札(1780) 对大多数的创作者来说,构想的不完整性和不一致性只有到了实现阶段才变得明朗化。因此,书面记录,反复实验和“细节敲定”就成了理论家们的看家本领。 构想、实现和交互这三个阶段是交替进行的。实现创造出空间,实现过程中又要进行一轮新的设计。采用这样的方式,莫扎特使用钢笔和纸实现出他构想的歌剧,而指挥则通过与莫扎特的作品进行交互,形成了诠释该作品的一个构想,指挥的构想又通过管弦乐队和歌手的演奏加以实现,最终与观众交互,完成了整个过程。 一个设计(a design)是一个受造的事物,我将与之相关联的设计过程称为设计(design)而不加任何冠词,还有作为动词的设计(to design)。这三者紧密相关,我相信在具体的上下文中,它们的含义不会彼此混淆。

相关文章
|
5月前
|
机器学习/深度学习 自然语言处理 并行计算
提升长序列建模效率:Mamba+交叉注意力架构完整指南
本文探讨了Mamba架构中交叉注意力机制的集成方法,Mamba是一种基于选择性状态空间模型的新型序列建模架构,擅长处理长序列。通过引入交叉注意力,Mamba增强了多模态信息融合和条件生成能力。文章从理论基础、技术实现、性能分析及应用场景等方面,详细阐述了该混合架构的特点与前景,同时分析了其在计算效率、训练稳定性等方面的挑战,并展望了未来优化方向,如动态路由机制和多模态扩展,为高效序列建模提供了新思路。
374 1
提升长序列建模效率:Mamba+交叉注意力架构完整指南
|
11月前
|
缓存 网络协议 算法
从零开始掌握HTTP协议
本文介绍HTTP协议的演变,从HTTP1.0到HTTP2.0。HTTP1.0为无状态连接,每次请求独立;HTTP1.1引入持久连接、管道化请求和更多状态码;HTTP2.0采用二进制分帧、多路复用、头部压缩及服务器主动推送,大幅提升性能与用户体验。了解这些区别有助于开发者优化应用和服务。
|
12月前
|
JavaScript
Vue 双向数据绑定原理
Vue的双向数据绑定通过其核心的响应式系统实现,主要由Observer、Compiler和Watcher三个部分组成。Observer负责观察数据对象的所有属性,将其转换为getter和setter;Compiler解析模板指令,初始化视图并订阅数据变化;Watcher作为连接Observer和Compiler的桥梁,当数据变化时触发相应的更新操作。这种机制确保了数据模型与视图之间的自动同步。
|
12月前
|
数据库 数据安全/隐私保护 Python
使用wxpython开发跨平台桌面应用,设计系统的登录界面
【11月更文挑战第12天】本文介绍了使用wxPython开发的简单跨平台桌面应用登录界面的示例代码。主要包括导入wxPython模块,创建登录界面类`LoginFrame`,定义界面布局与事件处理,以及启动应用程序的步骤。示例中实现了用户名和密码输入框及登录按钮的基本功能。
275 1
|
11月前
|
人工智能 运维 自然语言处理
今晚围观—>安全运维工程师现场直播用通义灵码发现和修复代码漏洞
12 月 18 日晚 19:30 分,阿里云中小企业直播间「AI 编码助手一年养成记:从“打酱油”到企业开发“真正助手”」见。
|
敏捷开发 前端开发 项目管理
在YesDev研发协同工具,项目协作 All In One
值得注意的是,YesDev中所定义和提倡的项目,是指在一定时间周期内完成的有限需求、任务和问题的集合,对应敏捷开发中的一次迭代或Scrumn的一个Sprint。
|
人工智能 前端开发 大数据
大数据、人工智能、VR、Docker、前端、网络,双11技术视频、讲义、文章一键收 ##您的好友演讲视频+PDF讲义已上线##
目前相关活动视频、整理文章即将出炉,所有用户还可以通过以下两种途径下载所有嘉宾的讲义!
43664 4
|
监控 Docker 容器
【发布公告】Kubernetes 1.11最新支持,支持Istio 无缝集成
Kubernetes 1.11最新支持,支持 Istio 无缝集成
9141 1
|
人工智能 监控 vr&ar
掌门1对1加码AI,转型为素质教育科技公司,发布两大子品牌
掌门1对1全面升级为素质教育科技公司,加大AI投入,发布掌门少儿、掌门陪练两大素质教育子品牌。
541 0
|
Linux Unix 网络协议
从quagga到FRRouting (FRR)
https://frrouting.org/ github:https://github.com/FRRouting/frr FRRouting (FRR) is an IP routing protocol suite for Linux and Unix platforms which incl...
5484 1