《设计原本—计算机科学巨匠Frederick P. Brooks的反思》一一1.3 何为实在?

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

1.3 何为实在?
设计理念 如果许多个体有共用的名字,则可以认为它们对应着同一个构想或形式。你懂我的意思吗? 我懂。 随便举个实例好了。世上有一些床和桌子,有许许多多,对吗? 对。 但是它们仅仅拥有两个构想或形式:一个是床的,一个是桌子的。 的确如此。 任何人在制作一张床或一张桌子给我们使用时,都要遵循这构想。 —柏拉图(公元前360年),《理想国》卷十 在2008年举办的第7届设计思想研讨会上,每位演讲者都发表了他们对相同四支设计团队会议的分析。3 这些会议的录像和抄本都提前很早发给大家看过。 雷丁大学的Rachael Luck在架构会谈中提出一个原先未引起任何人注意,后来却被大家一致意识到的实体,即设计理念(Design Concept)。4 毫无疑问,架构师和客户总是不断提到这个共识中的无形实体(即设计理念)。演讲者在谈及它时,常常会对着演示画面含糊地指点,但显然他们的意思并不是指整个演示画面或是画面中的某个特定事物。而他们实际上关注的总是研发中的设计的概念完整性(conceptual integrity)。 Luck的见解让设计理念取得了独立地位,这与我本人的经验有着强烈的共鸣。在开发IBM System/360“大型机”(mainframe)家族的单一体系结构时(1961~1963),体系结构组就经常谈及该实体,尽管没有明确地为其正名。得益于Gerry Blaauw的远见卓识,我们明确地把System/360的设计活动划分成架构(architecture)、实现(implementation)和具现(realization)的阶段。5 其基本理念在于,整个计算机家族既对开发人员呈现统一的接口(即体系结构),而又能提供多种并存的实现机型(位于性能和价格曲线的不同区间)。(参见第24章) 正是因为同时存在多个实现机型,以及几位工程经理之间你追我赶,才促成了这套体系结构向更通用、更简洁的方向演化,并且避免为了省小钱而做出的妥协。然而这种力量,仅仅是架构师们出于想要捍卫各自想要做出简洁机器的直觉和心愿才达成的。6 随着体系结构设计的不断推进,我观察到一件乍看上去很奇怪的现象。对于体系结构团队而言,实在的System/360,就是设计理念本身,即那台柏拉图式的理想机器。那些在工程基础上建造出来的、物理或电子意义上的Model 50、Model 60、Model 70和Model 90等机型,不过就像柏拉图说的那样,是那台实在的System/360的影子。而实在的System/360最完整、最忠实的化身,并不在那些芯片或金属元件里,而是在《IBM System/360 Principles of Operation》这本给程序员参考的机器语言手册中的文字和图表里。7 在建造View/360海滨小屋(参见第21章)时,我也有过类似的体验。它的设计理念在建造活动开始以前很久就已经是实在的了。后来图纸和纸板模型虽然更改过多次,但是设计理念始终如一。 说起来很有意思,我从未发现在Operating System/360软件家族有过这样的设计理念实体。或许其架构师觉得有,又或许我对其概念核心了解得还不够。也许我感受不到OS/360软件家族设计理念的原因在于它实际上由四个分立的部分混合而成:一个主控程序(supervisor)、一个调度程序、一个I/O控制系统,以及一个由编译器和实用工具组成的庞大软件包(参见第25章)。 价值何在 识别出隐形的设计理念,并在设计对话中转化成实在的实体,是否可以带来积极的价值呢?我认为答案是肯定的。 首先,伟大的设计都具备概念完整性—统一、经济、简洁。正如古罗马作家、建筑大师Vitruvius所说,它们不仅能有效运作,而且使人开心。8 我们会使用优雅、简洁、漂亮这种字眼来形容桥梁、奏鸣曲、电路、自行车、计算机,还有iPhone。识别出设计理念这个实体,有助于我们在独立做自己的设计时去追寻这样的完整性,有助于在团队设计时围绕它协同工作,也有助于将它传授给年轻人。 其次,经常提及设计理念,对于设计团队的内部沟通也有极大的帮助。概念统一这个目标,只有通过大量的对话才能达成。 如果设计理念本身是焦点,而不是拐弯抹角的表达或残缺不全的细节,那么沟通就可以非常直截了当。 因此,电影制片人都使用故事板(storyboard)来将他们的设计讨论的关注点始终保持在设计理念上,而不会陷入实现细节。 一旦深入细节,自然会使得概念的不同版本之间的冲突显现出来,并迫使人们形成决议。例如,System/360体系结构需要一种十进制数据类型,作为已经有着成千上万用户的IBM十进制机型的兼容过渡之用。我们正在研发中的体系结构里已经有了数种数据类型,包括32位定点补码整型以及可变长字符串类型。 十进制数据类型定义成与两者中的任何一个相似都是可行的。那么,哪个更符合System/360的设计理念呢?两方面都拿出了强有力的论据,而不同的侧重点则依赖于个人对于设计理念的不同见解。有些架构师主张的设计理念受早年的科学计算机的影响,而另一些架构师主张的设计理念则受早年的商用计算机的影响。而System/360的设计目标明确地规定,对于这两种计算机上运行的应用程序都要提供良好支持。 我们选择了把十进制数据类型建立在字符串类型的基础之上,因为对于十进制数据类型这个特殊的用户群,即IBM 1401的用户来说,这是他们中的大多数人最熟悉的数据类型。如果再给我一次机会,我仍然会做出这样的决定。

相关文章
|
机器学习/深度学习 监控 算法
目标检测的发展与现状
目标检测领域发展至今已有二十余载,从早期的传统方法到如今的深度学习方法,精度越来越高的同时速度也越来越快,这得益于深度学习等相关技术的不断发展。
1893 0
|
机器学习/深度学习 人工智能 TensorFlow
利用深度学习实现图像风格迁移
【8月更文挑战第73天】本文通过深入浅出的方式,介绍了一种使用深度学习技术进行图像风格迁移的方法。我们将探讨如何将一张普通照片转化为具有著名画作风格的艺术作品。文章不仅解释了背后的技术原理,还提供了一个实际的代码示例,帮助读者理解如何实现这一过程。
|
JavaScript 前端开发
JavaScript Array map() 方法
JavaScript Array map() 方法
|
11月前
|
人工智能 运维 安全
阿里云先知安全沙龙(上海站) ——终端安全对抗及防护
终端安全现状面临多重挑战,包括传统签名技术失效、新型无文件攻击频发、专业人才匮乏、分支机构安全管理不足等。企业终端覆盖不全、日志缺失、策略更新依赖厂商,导致运营排查困难。钓鱼攻击手法愈发精细,静态和动态对抗加剧,攻击者利用正常权限入侵,窃取凭据。Web3技术发展使加密货币成为新目标,职业黑客盯上个人钱包和交易公司。防护升级需涵盖预防、检测、响应和运营四个阶段,借助AI和威胁情报降低告警量,提升整体安全水平。
|
存储 人工智能 弹性计算
阿里云高性能计算负责人何万青:阿里云大计算加速HPC与AI融合
与AI相结合,高性能计算能够帮助科研人员将精力集中于专业领域。
阿里云高性能计算负责人何万青:阿里云大计算加速HPC与AI融合
|
设计模式 安全 Java
Python面向对象、继承的基本语法、单继承和多层继承、子类重写父类的同名方法、子类调用父类的同名方法、继承中的 init 、 多继承、私有权限、类属性、类方法、静态方法、多态、鸭子类型
称为类 B 继承类 A 特点: B类的对象可以使用 A类的属性和方法 优点: 代码复用.重复相同的代码不用多次书写. 名词: 类A: 父类 基类 类B: 子类 派生类 2. 单继承和多层继承[理解] 单继承: 如果一个类只有一个父类,把这种继承关系称为单继承 多继承: 如果一个类有多个父类,把这种继承关系称为多继承 多层继承: C–> B --> A 3. 子类重写父类的同名方法[掌握] 重写: 子类定义和父类名字相同的方法. 为什么重写: 父类中的方法,不能满足子类对象的需求,所以
793 1
Python面向对象、继承的基本语法、单继承和多层继承、子类重写父类的同名方法、子类调用父类的同名方法、继承中的 init 、 多继承、私有权限、类属性、类方法、静态方法、多态、鸭子类型
|
XML JSON 缓存
Java实现根据商品ID获取1688商品类目数据API方法
Java实现根据商品ID获取1688商品类目数据API方法
|
iOS开发 开发者
iOS iPhone手机弱网环境配置
iOS iPhone手机弱网环境配置
iOS iPhone手机弱网环境配置
|
KVM 虚拟化
【openstack】开启物理机虚拟机化
【openstack】开启物理机虚拟机化
755 0
【openstack】开启物理机虚拟机化
|
定位技术 API 开发工具
如何注册和获取百度地图的密钥
如何注册和获取百度地图的密钥
1076 0
如何注册和获取百度地图的密钥