漫谈架构设计. 课程目的  最难的课程  架构师的成长,有没有捷径?  架构师能不能成体系的培养?  寻找我的直觉的来源 : 这些自觉不连续,不成体系,我想整理 (但在我自己这里是整体性的,对同样的问 题,我总是能得到几乎一样的答案)

Slides:



Advertisements
Similar presentations
复习提问 1. 从物理角度来说说什么是噪声? 从物理角度来说噪声是指发声体做无规则 的振动时发出的声音。 2. 从环境保护角度来说说什么是噪声? 从环境保护的角度看:凡是妨碍人正常休 息,学习和工作的声音,以及对人们要听 的声音 起干扰作用的声音,都属噪声。
Advertisements

第一章 餐饮服务程序 学习目的: 掌握餐饮服务四个基本环节的内容 正确表述和运用各种餐饮形式的服务程序 熟悉并利用所学知识灵活机动地为不同需求的 客人提供服务.
C A D C D.
《南方澳大戲院興亡史》 邱坤良 宜蘭人, 1949 年出生於南方澳。 曾任國立藝術學院戲劇系主任 國立台北藝術大學校長 國立中正文化中心董事長 文建會主委 ◎主要著作有 《陳澄三與拱樂社 — 台灣戲劇史的一個 研究個案》( 2001 ) 《台灣劇場與文化變遷》( 1997 ) 《日治時期台灣戲劇之研究》(
廣告寫作 授課教師: 呂立德. 一、何謂廣告?廣告寫作的特色為何? 從有人類社會開始,廣告便與人類活動息息相關。 廣義而言,廣告是語言文字和圖像的結合,也可定義為 :在一定的時空規範下,以銷售為主要目的的宣傳活動 。其主要功能和作用,一方面在提供訊息使對象 ( 群 ) 方 便理解或記憶;另方面更是為了引發注意和興趣,進而.
用心生活 演绎精彩人生 图象传输与处理 9134 班 2005 年 10 月. 目 录 9134 之十年感悟 9134 之先进典型 三个代表寄语和祝福.
一、音调  听过女高音和男低音的歌唱吗?他们的声音 给你的印象是怎样的? 女高音:音调高, 男低音:音调低,比较低沉。
护理学基础 第七章 医院与住院环境.
第2章 医院和住院环境 厦门医学高等专科学校 基础护理教研室.
无人机载微型成像高光谱作物信息探测与精确感知系统
扬声器的布置与安装.
第 3 章 聽覺 每章扉頁 3.1 聽覺 3.2 人類耳朵的反應 3.3 聽覺缺陷.
从传统文化中究竟 能够得到什么 (中国文化精神系列讲座之一).
學校概況 School Profile 2004 – 05 及
DB玻尿酸安全套企业背景 DB玻尿酸安全套产品介绍 专业领先,DB玻尿酸避孕套强势来袭 关爱女性,着力打造舒适享受
壹、緣起 在「夢想大作戰」的主題裡,主要分為「個人挑戰」與「小組挑戰」兩個部份,當個人挑戰陸續完成後,緊接著進入小組挑戰的階段。
国学传统与企业文化建设 刘大洋 博士.
第一部分 中考基础复习 第一章 声现象.
第二章 环境 Chapter 2 Environment.
一個故事 ﹕獻給所有未婚,將要結婚,和已婚的好朋友!!
上海市公共交通公德状况调查 小组 艺术设计学院 宝石及材料工艺学 2班 组长:蒋尉琦 组员:夏瑾 张石雨融 徐启瑜
《 桥文化》专题研究性学习.
桥之美.
第4章 工业建筑特殊构造 第6篇 工业建筑设计 4.1 防爆构造 对于有爆炸危险的厂房,防爆技术设施分为两大类: 预防性技术措施
《富爸爸,窮爸爸》 指導老師:林容萱 老師 學生: 陳怡蓉 歐佩宜 林世文.
個人及家庭 財務規劃分析報告 DEMO 03.
第四单元:修齐治平 《大学》节选.
速收简历 速收简历移动APP项目 速收简历团队.
石家庄迅步网络科技有限公司 联系人:张会耀 电话:
勞保年金制度及軍教人員 退休制度改革規劃 行政院年金制度改革小組 102年1月30日.
从“无节操游戏” 看人际交往 应用伦理学课程研究.
1890年, 一艘名叫“马尔波罗号”的帆船在从新西兰驶往英国的途中,突然神秘地失踪了。 20年后,人们在火地岛海岸边发现了它。奇怪的是:船体原封未动,完好如初;船长航海日记的字迹仍然依稀可辨;就连那些死去多年的船员,也都“各在其位”,保持着当年在岗时的“姿势”; 1948年,一艘名为“乌兰格梅奇号”的荷兰货船,在通过马六甲海峡时,突然遇到海上风暴,当救助人员赶到时,船上所有人员都莫明其妙地死了。
New Service Platform by Chief 語音網路電話盒(TP7161) 使用操作說明
让快件更自由! 福州拓牛信息科技有限公司.
《软件工程》 第3篇 设计 姜久雷 副教授 北方民族大学 计算机科学与技术系.
身体素质: 概念:人体在肌肉活动中所表现出来的力量、速度、耐力、灵敏及柔韧等机能能力 。 影响身体素质的发展水平的因素:
翰林自然 六年級上學期 第二單元 聲音與樂器.
提升國小自然與生活科技領域教師教學智能研習
普通高等教育“十一五”国家级规划教材 信息系统分析与设计 刘腾红 孙细明 主编 科 学 出 版 社.
熟悉锐词新语,了解西方典故 ——服务于阅读和写作
Object Oriented Analysis and Design
低保档案整理办法 宁波市江东区档案局 陶渊琼.
EOS7产品售前材料 普元:领先的平台软件解决方案商 普元研发 2012年12月.
班級:四資工3B 指導老師:林建良 組員: 姚維杰、 林育誠、許耿銘
Chapter 4/5 初始阶段的需求.
潘爱民 软件设计模式(二) 潘爱民
Design Pattern (2) 设计模式(2) Institute of Computer Software 2018/9/21
Design Patterns Lecture 4.
Design Pattern (3) 设计模式(3) Institute of Computer Software 2018/11/8
公務人員年金改革法案介紹 (總統公布) 銓敍部退撫司 民國106年8月.
UML工具 --8种优秀的UML工具.
周宇 南京航空航天大学 软件设计模式与体系结构 周宇 南京航空航天大学
電子簽核教育訓練.
前终端一体化开发解决方案 腾讯 lucaspei(裴伟).
第11章 系统结构与包模型模型.
申请平台操作指南
給你講一個故事 ﹕ 獻給所有未婚,將要結婚,和已婚的好朋友!!
管理信息系统 第九章 面向对象的系统开发方法.
教師專業發展評鑑-- 教學檔案的製作 報告人: 國立潮州高中陳建蒼.
SOA模型设计 杨子 2009/09/30.
空間魔法家 造型氣球布置DIY 設計者:林芸安.
附录资料 网上聊天工具: MSN Messenger 网络存储: 163网盘 数字图书馆:.
第十一章 物件資料結構塑模.
模式与实践:Windows Mobile 5.0应用程序架构
中國兵學理論 *兵學概述 *中國古代兵學思想.
第五章 类图和对象图.
TBSUSP 资源整合检索软件 北京金信桥信息技术有限公司 2010年05月31日.
創造不一樣的人生 -如何與身心障礙者接觸 新竹教育大學 薛明里.
第二节 声音的特性 人们有规律的、好听悦耳、使人愉快的声音叫做乐音,无规律的、难听刺耳、让人心烦的声音叫做噪声。
----以《西北民族音乐学术资源数据库》为例 西安音乐学院 景 月 亲
Presentation transcript:

漫谈架构设计

课程目的  最难的课程  架构师的成长,有没有捷径?  架构师能不能成体系的培养?  寻找我的直觉的来源 : 这些自觉不连续,不成体系,我想整理 (但在我自己这里是整体性的,对同样的问 题,我总是能得到几乎一样的答案)

内容摘要  如何进行架构设计  如何评价并有章法的改进架构  设计模式介绍(不是重点)

架构设计要解决的问题  架构设计的目标当然不是为了实现模式  架构设计的最终目的是为了产品能给用户提供 更好的服务与体验。  降低开发维护成本。  使软件产品与硬件结合达到最佳的体验和性能  提高产品的发布,部署,维护,升级的灵活性  产品的稳定性,安全性,可靠性。

架构师素质模型

交付能力模型  T=function( 交付能力, 项目复杂度 )  交付能力雷达图

架构设计的几个层次  语言对架构设计的影响 : 结构化语言 C 静态面向对象语言 C++ 完全面向对象语言 Java,Obj-C 动态语言 :JS,Lua 系统级架构 模块级架构 编码级架构 每个层次都很重要

好架构可以  应对预期的需求变更(如何做好需求分 析?)  有清晰的模块边界  工作可分:支持多人并行开发 1 项工作需要 60 个人月,那么是否是 60 个人做 1 个月就能完成呢?  易于理解与维护 (KISS)  是合适的,能尽量与当前的计划匹配

如何开始架构设计  分析系统需求,确定系统所在的领域  使用领域里的成熟设计 / 从头设计  关键技术选型  寻找本质问题:架构要强化体现本质问 题,弱化次要问题的关注度。  抽象高于实现:先抽象概念,再用概念来 组合解决系统的本质问题。  架构并不直接解决问题,而是提供持续解 决问题的平台。

详细的架构设计  大的系统结构设计 ( 关注协议 )  每个子系统的模块设计(关注接口)  模块的关键实现描述, 包括有哪些类,类 之间的继承关系,持有关系,依赖关系, 方法属性事件,关键函数可以写伪代码 (关注问题解决)  根据项目计划调整(调整架构或调整计 划)

架构设计文档化  第一部分,第二部分用图文档化  UML? 使用你的读者能无歧义理解的方法均 可。 UML 重点关心的问题有哪些 ?  描述模块划分  类的依赖关系,继承关系  类实例之间的持有关系  类的关键方法与事件  类的关键方法的大体实现逻辑,如有需要请 描述核心问题解决需要的时间复杂度和空间 复杂度

为什么要有设计模式?  设计模式是对常见架构设计的总结和提炼  不使用设计模式的架构不一定是坏架构, 而大量使用设计模式的架构不一定是好架 构 方便沟通!  区分 模式 (Pattern) 框架 (Framework) 和 平台 (Platform)

量化的评价架构 需求变更 / 新增成本度量 原理:需求变更 / 新增时架构能让修改尽量集 中,影响的模块尽量少, 需要重新测试的模块少 (模块 A 依赖模块 B, 如果模块 B 修改,那么理论 上模块 A 也是需要测试的) 算法: 修改配置文件 : 修改每个文件 3 分, 修改的内容超 过一段每段 2 分 修改代码 : 修改一个物理模块 5 分, 新建文件 1 分, 修 改文件 2 分,修改文件超过 1 段的每段代码加 2 分。模块编译 3 分。

需求变更了!  是预期的变更么 ?  代码怎么改?  哪几个层次的架构该改了 ?  需求变更成本评价得分 :

产品发展中的架构演进:架构重构  《重构 - 改善既有代码的设计》  为什么要重构?架构有问题  敏锐的闻到代码的坏味道  优先重构难懂的代码  一步一个脚印,明确重构的界限  注意项目的进度控制  最简单的重构 :rename  必要时重新设计系统

三次设计原理  架构严重依赖领域经验  通常在一个新的领域,一个系统要重新设 计三次才能得到一个比较靠谱的架构。  找到本质问题  正确的抽象

一些架构设计的原则  少用继承多用聚合  清晰的单向依赖  模块越底层,依赖项就应越少  依赖越少的代码越有价值  清晰一致的生命周期管理  代码看起来和跑起来要一致  DRY 原则要让位于 KISS 原则  找到 “ 一定要写的代码 ” ,写 “ 依赖最少的代码 ”

常用设计模式  GoF 的《设计模式》是经典,值得多读  注意《设计模式》里的背景  区分通用模式与领域模式

常见通用模式  单件 (Singlon)  工厂模式 (Factory)  命令模式 (Command)  适配器 (Adapter) 与桥接 (Bridge)  策略 (Strategy)  迭代器 (iterator)  生产者 - 消费者  MVC (图形交互应用)

领域模式  有限状态机解释器 (Parser) 拒绝 string::find, 实现 O(n) 的算法  用脚本代替配置文件  反应器 (Reactor 与 Proactor)  文档 - 视图 (Document-View)  UI 对象树 (UIObjTree)  GFS,BigTable,MapReduce  Interface - LRU Cache - DB  Plugin

选择合适的架构  最终用户不关心架构  互联网产品非常复杂:多平台, 变化快, 还要 求完美的细节  面对本质问题 不要过度设计!

----- 简单性是这个世界上最难获 得的东西 ; 它是经验的最终极 限,也是天才的最终努力目 标。

推荐书籍  《设计模式》  《重构 - 改善既有代码的设计》  《人月神话》  阅读更多的 ( 好 ) 代码  写更多的代码, 并不断让他变的更好