前言

Preface

在那些搞笑的开发人员之间有个常讲的老玩笑,你只要用“视情况而定~~”回答技术问题,别

人就会认为你是一名架构师。

问:“我解决方案中实现身份验证和授权的最佳方法是什么?”答:“视情况而定”;

问:“我应该怎样实现我的数据访问层?”答:“视情况而定”;

问:“我解决方案的UI 应该使用什么技术?”答:“视情况而定”;

问:“怎样才能使我的应用具有可伸缩性?”答:“视情况而定”。

实际上这些真的需要视情况而定,每个解决方案最终是不同的,技术和非技术等许多的因素都会

或大或小影响解决方案的架构和设计。开发人员和解决方案架构师的工作在于平衡由业务、最终用户、

公司的IT 环境和管理基础结构、经济环境和用于构建方案所使用的技术和工具等等所提出的需求和

限制,而这些需求和限制通常是相矛盾的。

然而有意思的是,随着系统中新机会的产生和新要求的提出,这些需求和限制不断演化,业务规

则的变化和新业务领域的拓展可以影响新的应用程序和现有的应用程序。随着时间推移,用户渴求更

丰富、更一致、更综合的用户体验,随之就会产生新的需求。或可能会出现新的IT 基础结构技术,

以减少成本或提高可用性和可伸缩性。与此同时,会不断出现新的技术、架构和工具,旨在降低开发

成本,提供以前较难实现的应用。

由此可见,要理解这些并同时要开发一个合时合算的有效解决方案是一件不容易的事情。这要求

开发人员和架构师要考虑所有相竞争和重叠的因素(其中有一些是非技术的)占的比重,然后将它们

做出一个较合理的权衡。试图将太多因素整合在一起,可能会导致解决方案过度开发并且非常复杂,

这样的解决方案需要花很长时间来构建并且可能仍然不能按时提交,或不能保证长效性和灵活性。另

一方面,如果考虑太少因素,也有可能会形成一个作用有限的,缺乏灵活性的、不易升级的临时解决

方案,这样的解决方案难以发展也不能很好地扩展。总而言之,开发人员和方案解决架构师通常是游

走在“黄金方案”和“即时方案”之间。

对我来说,架构就是利用现有的技术和工具来创造尽可能多的商业价值,一方面关注现有业务所

提出的需求和限制,另一方面着眼于未来通过可伸缩性、灵活性以及可维护性等方面最大化价值。准

确解读架构原则和模式,有利于开发人员和解决方案架构师更好地理解和关注架构设计的整体设计过

程,以及可能会对整个方案的成败产生重大影响的设计问题。拥有这些知识,他们可以做出更合理的

决策,更好地平衡相竞争或重叠的需求和限制,并确保解决方案不仅能达到或超过业务目标,同时还

能节约成本、兼具可扩展性、可维护性以及灵活性。

微软应用架构指南(第2版)

IV| 前言

您可能注意到,我同时提及了开发人员和解决方案架构师,我认为两者都可以在充分理解了本指

南讲述的架构模式和架构原则后获益。有些人可能认为细节实现比不上整体设计重要,但依我的经验

看来往往不是这样的。一些小的决策随着时间的推移会累积。实现层次的一些细节可能会对解决方案

的整体架构(可伸缩性、可维护性及灵活性等方面)产生重大的影响,因此开发人员和解决方案架构

师都需要充分理解实现细节。此外,开发人员和解决方案架构师应该达成共识,可以使两者之间更好

的沟通,也有利于工作的开展。

该指南旨在提供应用架构和设计原则和模式的概述,以帮助您做出更好的决策和构建更优秀的解

决方案。该指南编排为可以从头到尾阅读,也可作为参考资料从文中直接选取您需要的章节来阅读。

该指南的前半部分主要介绍能应用到所有类型解决方案的普适架构原则和设计原则,后半部分主要关

注常见应用程序类型(例如Web 应用程序、富客户端应用程序、或是移动应用程序)以及描述了每

一种类型的典型架构和关键设计考量。有可能您的特殊解决方案不能直接和某个应用方案匹配,但是

它们能为您提供一个基准架构,您可以在这个基准架构之上演化成您的特殊解决方案。该指南还提供

了一些有关如何找出您架构中关键元素的建议,这样您就可以不断对它们进行改进。

该指南主要关注基于微软平台和.NET 框架开发的解决方案的指导,因此包含了提供相关技术和

工具细节的参考文章和资源。不过您会发现底层的原则和模式适用于任何平台。值得注意的是,本书

并不是一个针对应用架构和设计面面俱到的参考——如果是那样的话可能就需要更大的一本书或者

分成多卷了——因此本指南旨在提供针对最重要主题的概览及一些链接可以进一步扩展更细节的或

更深的内容。

应用架构和设计领域是动态的不断变化的。在过去基于这些基本原理已经产生了很多成功的解决

方案,在将来这些基本原理同样能为我们所用。但是我们仍然应该期望变革的步伐不会停滞,不管是

在技术方面还是新的设计方式方面。微软平台和.NET 框架、一系列技术以及这些技术支持的各种应

用场景既深入又广泛,并且会越来越深入和广泛。不过,我们不需要等待将来的东西。现在就可以开

始构建令人称道的、有价值的解决方案,希望本指南会帮您完成这个工作。

David Hill

模式和实践团队

2009 年9 月

扩展阅读:

1.Bop的豆瓣主页:http://book.douban.com/subject/3004255/

2.互动网购买链接:http://www.china-pub.com/38070

3.“《编程之美》,IT人求职面试必读”链接:
http://www.google.com.hk/search?complete=1&hl=zh-CN&newwindow=1&q=编程之美+-+微软技术面试心得+邹欣&meta=&aq=f&oq=

转载于:https://www.cnblogs.com/bvbook/archive/2010/11/03/1867772.html

《微软应用架构指南》前言相关推荐

  1. 《设计模式之禅》前言

    终于可以写前言了,这说明<设计模式之禅>已经基本完成,可以长嘘一口气了. 为什么写<设计模式之禅>      今年5月份,我在JavaEye上发了一个帖子,其中提到自己已经工作 ...

  2. 设计模式领域公认的3本经典著作之一《设计模式之禅》 [豆瓣评分 8.70]

    下载地址...... 关注公众号:程序员白楠楠,领取. 需要的朋友点我获取:设计模式之禅 图书简介...... 本书是设计模式领域公认的3本经典著作之一,"极具趣味,容易理解,但讲解又极为严 ...

  3. 读秦小波《设计模式之禅》 -- 工厂模式

    设计模式是一种非常有用的编程技巧,它对于代码的重构有些非常重要的作用,对于软件开发人员来说,需要理解并尝试着使用这些设计的方法. 个人感觉<设计模式之禅>这本书中讲解的非常具体,每个模式都 ...

  4. 设计模式之禅--思维导图

    原图ProcessOn里搜索:设计模式之禅

  5. 23种设计模式彩图-设计模式之禅

    <The Zen of Design Patterns> -<设计模式之禅> 书中的23种设计模式彩图:

  6. 设计模式之禅【六大设计原则】

    大旗不挥,谁敢冲锋--6大设计原则 单一职责原则 "你设计的类符合SRP原则吗?"--保准对方立马"萎缩"掉,而且还一脸崇拜的看着你,心想"老大确实英 ...

  7. 设计模式之禅【原型模式】

    真刀实枪之原型模式 先发个个性化电子账单来引出今天的主角 个性化服务 一般银行都会要求个性化服务,添加一些个人信息在提示信息之前. 递送的成功率 邮件的递送成功率有一定的要求,由于大批的发送邮件,会被 ...

  8. 设计模式之禅之单一职责原则

    声明:本文为阅读秦小波所写的<设计模式之禅>所写小结,文章内容可能有部分引述此书. 单一职责原则(Single Responsibility Principle) 1.定义:    在接口 ...

  9. 设计模式之禅【状态模式】

    真刀实枪之状态模式 从电梯说起 随着城市的发展,有两样东西的发明在城市的发展中起到非常重要的作用 汽车:横向发展 电梯:纵向发展 既然说电梯,那就看看电梯有哪些动作 开门 关门 运行 停止 好了,动作 ...

  10. 设计模式之禅【组合模式】

    真刀实枪之组合模式 从公司的人事架构谈起吧 公司的组织架构 从上图中可以分析出: 有分支的节点(树枝节点) 无分支的节点(叶子节点) 根节点(无父节点) 有了树状结构图,再看看类图长啥样吧! 这个类图 ...

最新文章

  1. Hadoop命令执行时提示JVM OOM问题的处理
  2. 敏捷转型历程 - Sprint3 回顾会
  3. React的核心概念
  4. 淘宝2011.9.21校园招聘会笔试题
  5. 6.2.2 二叉树的创建
  6. django 中间件的使用
  7. 报告老板:这次的缓存事故是这样的...
  8. oracle 拉文件进ubuntu,ubuntu 18-20 安装oracle java 打开jnlp文件
  9. mysql basic_MySQL Basic Learning (二)
  10. JQuery根据关键字检索html元素并筛选显示
  11. 你真的了解特洛伊木马吗!
  12. java url json字符串_Java和PHP的JSON字符串转URL参数方法
  13. CS231n李飞飞计算机视觉 卷积神经网络详解下
  14. 如何处理图片放大后变模糊的情况?
  15. 微信支付开通流程,及微信支付商户号申请详细流程介绍
  16. 银行家算法和安全性算法笔记
  17. mame0.239选定系统所需要的ROM/磁碟映像档为缺少或不正确
  18. 华为手机怎么使用读卡器_手机nfc功能怎么打开(华为手机nfc功能使用步骤)
  19. 微光集市-JWT和Token在本项目中的应用(版本5.0)
  20. 用stitching_detailed拼接图片失败,原因分析(待补充)

热门文章

  1. .NET平台PE结构分析之Metadata(一)
  2. 如何在开盘15分钟内发现当天黑马
  3. 13 Oracle数据库开发与设计入门篇
  4. drf4 视图与路由组件
  5. k8s之pod管理(控制器)
  6. 问题 G: 最小的回文数
  7. 钱大妈数据中台建设最佳实践
  8. 一份不大的救命文档,一场时间与生死的接力
  9. 免费下载 | 全景揭秘阿里文娱智能算法
  10. 火了这么久的 AI,现在怎么样了?