Top Banner
QCon Beijing 2009 周爱民
30

周爱民 关于架构之我的观点

Jul 13, 2015

Download

Technology

George Ang
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: 周爱民 关于架构之我的观点

QCon Beijing 2009

周爱民

Page 2: 周爱民 关于架构之我的观点
Page 3: 周爱民 关于架构之我的观点

生于无

Page 4: 周爱民 关于架构之我的观点

1、架构不是设计出来的

“设计架构”从根本上就是错误的。

2、架构源于分析,而非设计-设计可以拼搭,架构不可以-设计是既有,架构是源无

“架构(的)设计”讲述了架构的实现和细化过程,但不是“架构”的源起。

Page 5: 周爱民 关于架构之我的观点

系统整合

需求变更

版本升级

插件技术

消息接口

组件技术

Page 6: 周爱民 关于架构之我的观点

计算机科学是研究将现实系统“抽象”为计算机可以理解和运算的系统,并……

问题是,“什么是抽象?”

反过来的问题是,“什么不是抽象?”

既然我们所述的一切,都是“抽象系统”,那么我们——人——是怎么办到的?

Page 7: 周爱民 关于架构之我的观点

抽象思维 形象(具象)思维 灵感思维

Page 8: 周爱民 关于架构之我的观点

问题总是掩盖在需求之后

Felix跑来问我,《现实问题的结构化分析》中讲的为什么都是需求。其实这是错 的。温伯格给问题的定义是“现实与期望之间的差异”,而需求不是这样,需求只 包括“需要的目标”。

Page 9: 周爱民 关于架构之我的观点

你如何描述我们这个会场?

一个大房间? 上百个人? 一个投影仪?

房间、人、投影仪……就是抽象。它们并非是具象的,当我用这个名词时,你并不知道它们确指什么、是什么形貌、质量、重量……

Page 10: 周爱民 关于架构之我的观点

我们描述这个会场时,大体还是知道这个“样子”的。

从抽象概念中,我们首先知道共性的东西。但是,由这种共性抽象组织的系统,并不是计算机系统的全部。

例如:原始人开会吗?蚂蚁开会吗?或者,我——一个人——自己可以开会吗?

Page 11: 周爱民 关于架构之我的观点

共性抽象:更加准确地描述系统 本质抽象:更加泛义地描述系统

会场=开会的地方 开=交流 会=集中在一起的群体 地方=上述行为所依赖的一个位置

所以,一个会议系统,需要: 语音或视频之类的,用于交流的工具,及其管理系统、支持与保障系统;

人员,与会者与听众的管理系统(包括登记、回访等)

位置,例如预约、排程以及会议(地址)通知等。

Page 12: 周爱民 关于架构之我的观点

本质抽象更适合描述架构,而共性抽象更适合于实现、实施系统。

架构本身,是要具备长期的不变性的。它描述的是系统中不变的部分。例如:本质上一个系统是什么?或本质上一个系统应该提供什么?等等。

Page 13: 周爱民 关于架构之我的观点

大系统是必然变化的 变化本身不可预知 战略或目标是确定的、一贯的

当前系统

远期系统

我们关注这个过程中不变的部分

Page 14: 周爱民 关于架构之我的观点

架构的目标是 战略、产品线 具体策略(战术)

大多数情况下,BOSS知道“是什么”,而不知道“如何做”。

大多数情况下,架构师应该知道“如何实现”,以及“实现的目标‘是什么’”。

(同样是)大多数情况下,(一般的)架构师未能了解什么是“战略目标”。

Page 15: 周爱民 关于架构之我的观点

架构通常需要围绕战略目标来提出。

架构师通常最难做到的是了解需求,以及确定变化与不变的部分。

架构是得到一个形式系统,以描绘上述不变部分的一个抽象过程。

在上述这个过程中,“系统”是未得的、不可见的,以及完全“概念化”的。

Page 16: 周爱民 关于架构之我的观点

在上述这个过程中,“系统”是未得的、不可见的,以及完全“概念化”的。“架构”的这个过程,是从无到有的一个过程。

相关物

相关物

相关物

相关物

抽象

原始需求 架构 体系结构

Page 17: 周爱民 关于架构之我的观点

例如外包,就只有实现,没有架构。反过来说,我们要外包给别人,就需要做好架构的工作。要知道整个项目中确定的,不可或缺的,不能失败的是什么。至于哪部分谁做,那是第三步、第四步的问题。

观点:架构是过程而非结果——从无到有的是架构(从未存在过的东西,才是架构)

观点:没有创生(而非创新),就没有架构。

Page 18: 周爱民 关于架构之我的观点

Prospectus

Requirements

Architecture

High‐LevelDesign

计划和架构设计阶段

发现评审(Discovery Review)

架构评审(Architecture Review)

Low‐LevelDesign

from:Joe MaranzanoATT Bell Labs,USG

“想”,但不是“空想”。凭空想像杜撰出来的是玄幻,不是架构。

Page 19: 周爱民 关于架构之我的观点

看不见

Page 20: 周爱民 关于架构之我的观点

如果你手里有一把锤子,所有东西看上去都像钉子。 心中有锤,就容易为其奴役; 始终莫要忘记提醒自己,“问题是什么?” 没有锤子是万万不行的,没有谁会傻到徒手钉钉

正确的态度应该是:手中有锤,心中无锤。 不要忘掉其适用前提 别忘记自己要解决的问题是什么。Why 永远在 How 之前。

如果你想钉一个钉子,所有东西看上去都像是锤子。 专注于你想要解决的问题,那么你所看到的东西就会呈现出以往你没有看到的一面。

Page 21: 周爱民 关于架构之我的观点

阿基米德洗了一辈子的澡,然而,只有那一次,当他想要解决皇冠密度问题的时候,想到可以利用排水体积来测量不规则物体体积。

Page 22: 周爱民 关于架构之我的观点

1、有时候说实话就是笑话; 2、我们很多笑话是想出来的,是结构出来的。

Page 23: 周爱民 关于架构之我的观点

架构的存在,不要影响业务

大到看不见

小到看不见

设计做大与实施做小

如何做到影响最小?

Page 24: 周爱民 关于架构之我的观点

架构没有好不好,只有合适不合适

关注你的每一项决策

你的建议是否正确?

你在实施团队里吗?

好不好,与能不能

Page 25: 周爱民 关于架构之我的观点

架构的实现是渐次的

如果做不到,那么折衷

折衷,并不是放弃

柔,与弱

勇,与敢,勇敢与勇于不敢

有备无患

Page 26: 周爱民 关于架构之我的观点

若大有

Page 27: 周爱民 关于架构之我的观点

.NET架构概要的历史与影响

Page 28: 周爱民 关于架构之我的观点

架构师要有全局观 现在很多架构只是拥有着一个架构师的头衔,只负责也只了解一个系统局部的、细节的知识。这并不是一个架构师应该的状态,没有全局观的架构师其实只是“负有更大责任的设计师”,因为他们细化、完善乃至于成就这个项目、系统,但是,并不创生它。

Page 29: 周爱民 关于架构之我的观点

从无到有(生于无)观点:架构是过程而非结果——从无到有的是架构           (创生从未存在过的东西,才是架构)观点:架构抽象的两种基本思想方法——由表及里,由此及彼观点:架构不是设计出来的——架构源于分析,而非设计

从有到无(看不见)观点:架构的实现是渐次的——做不出来,则为做出来做准备           (架构实现依赖技术的成熟,而技术成熟是一个过程)观点:架构没有好不好,只有合适不合适观点:架构的存在,不要影响业务——大到看不见,或小到看不见

从无到有(若大有)观点:架构的可变性——无限深远地适应未来

Page 30: 周爱民 关于架构之我的观点

花絮

1、为什么你能吃苹果2、枝节与细节3、尊重反动派