最新发布《数智时代的AI人才粮仓模型解读白皮书(2024版)》,立即领取! 了解详情
写点什么

在应用程序架构中实践敏捷

  • 2008-12-21
  • 本文字数:1426 字

    阅读完需:约 5 分钟

微软最近在“模式及实践”分类下发布了一篇文档,名为“如何用敏捷架构进行设计”,为如何使用敏捷方式进行架构提供了详细的指导。

文档推荐用以下列举的条目做为输入,开始设计之路:

  • 用例和使用场景
  • 功能需求
  • 非功能需求(质量相关话题,如性能、安全性、可靠性)
  • 技术需求
  • 目标部署环境
  • 限制

设计应该产生这些输出产物:

  • 架构特征明显的用例
  • 架构热点
  • 候选架构
  • 架构刺探

该文档通过明确建议不要一步完成架构设计,而要采取五步法实现的方式引入敏捷:

  • 第一步:确认架构目标。清晰的目标可以帮助你致力于自己的架构,还能帮助你致力于解决设计中合适的问题。好的目标帮助你决定什么时候完工,以及什么时候需要开始下一个新的阶段;
  • 第二步:关键场景。使用关键场景让设计只关注最经常发生的事情,以及在候选架构准备好时对它们进行评估;
  • 第三步:应用概览。理解你的应用类型、部署架构、架构类型以及技术等,以将设计和应用要服务的真实世界密切联系起来;
  • 第四步:关键热点。根据质量特征和架构框架确认关键热点。在设计应用时,总有一些地方是经常犯错的。
  • 第五步:候选方案。创建一个候选架构或者“架构刺探(Architectural Spike”,然后用关键场景、热点和部署限制等对它进行评估。

第一步:确认架构目标

根据微软模式与实践部门首席程序经理 J.D. Meier 所说,这一步的目的是评估“在接下来的几步上要花费多少时间、精力以及全部努力等”。第一步的结果应该是:

  • 构建原型
  • 确定关键技术风险
  • 测试潜在路径
  • 共享模型和约定

第二步:关键场景

根据 J.D. Meier 的说法,可基于下面这些用例的要素,确定什么是最好的场景:

  1. 对于所部署应用的成功和接受度来说,它们是重要的;
  2. 用例中充分体现了设计,可资用于评估架构。

第三步:应用概览

要将真实世界的细节和具体事物引入到设计中,应用概览是必不可少的,我们可以通过以下几步来创建它:

  • 决定应用类型:首先,要决定你要构建的应用是什么类型。是移动应用,富客户端,富互联网应用,服务,Web 应用还是其他组合等?
  • 理解部署约束:下面,要理解你的目标部署环境,然后决定它会对你的架构产生什么影响。
  • 确定重要的架构类型:决定在你的设计中要使用哪种架构类型。你会构建一个面向服务的架构,C/S,分层的,消息总线还是其他组合等?
  • 决定相关的技术:最后,根据你的应用类型和其他约束来确定相关技术选型,并决定在架构中你要利用哪个技术。

对于以上提到的所有步骤,文档都提供了建议,下面提供了一个在多个架构类型中做选型的例子:

  • C/S:对系统进行隔离,这样客户端可以从服务器发出请求;
  • 基于组件:将应用设计分解成可复用且接口定义良好的组件;
  • 分层:将系统以分层的形式隔离成功能类似的集合;
  • 消息总线:定义能被所有连接系统使用的已知格式,从而使得它们不需要了解真实接收端之间的区别;
  • 面向对象:一种基于将任务分成可复用对象的编程类型,这些对象包含数据以及和对象相关的动作;
  • 面向服务(SOA):一种使用契约和消息以服务的形式暴露和消费功能的应用。

第四步:关键热点

在这一步,我们应该“确定应用架构中的热点,来理解那些经常犯错的地方。关键热点则可以通过质量特征和横切关注点来组织起来。”文档中提到的众多热点包括:可用性、交互性、可维护性、可靠性、安全等。

第五步:候选方案

确定好关键热点后,架构的初步草案就已经形成了。然后,要回到第二步来评估候选架构,然后根据第三、第四、第五步产生一个新的候选。这个过程迭代重复,通过每个迭代对自己进行优化。

查看英文原文 Practicing Agility in Application Architecture

2008-12-21 23:591086

评论

发布
暂无评论
发现更多内容

JetBrains PhpStorm 2023 for Mac(PHP集成开发)v2023.2.4中文激活版

影影绰绰一往直前

情感语音识别技术在人机交互中的应用与展望

来自四九城儿

DEVONthink Pro for Mac(最好用的mac文件管理软件)v3.9.4英文激活版

影影绰绰一往直前

策略模式在数据接收和发送场景的应用

阿里技术

策略模式 数据接收 发送场景

Vidmore Player for mac(蓝光和DVD播放器)v1.0.58激活版

影影绰绰一往直前

营销数智化 解析第5期:营销政策、便捷交易、资产账户、数智决策、竞拍竞价

用友BIP

数智营销

Integrity Pro for mac(网站死链接清理工具)v12.8.1免激活版

影影绰绰一往直前

Moho Pro 14 for Mac(2D动画制作软件)附注册机v14.1激活版

影影绰绰一往直前

软件测试/人工智能丨人工智能测试开发训练营期待你的加入

测试人

人工智能 软件测试

浅谈埋点及其质量保障 | 京东云技术团队

京东科技开发者

大数据 测试 埋点 企业号11月PK榜

特权账号管理的重中之重

尚思卓越

网络安全 账号管理

情感语音识别:技术发展与跨文化应用

来自四九城儿

ASM字节码操作类库(打开java语言世界通往字节码世界的大门) | 京东云技术团队

京东科技开发者

Java jdk asm 企业号11月PK榜

与客户沟通过程中的30个实用技巧

九凌网络

Scrutiny for Mac(网站分析检测工具)v12.8.1免激活版

影影绰绰一往直前

Buff 叠满!YonGPT让文旅企业成功出圈!

用友BIP

数智文旅

ON1 Photo RAW 2024 for Mac(强大的照片编辑软件)直装激活版下载

影影绰绰一往直前

去中心化DAPP交易所开发

区块链技术

Blocs for mac(可视化代码编辑器)v5.1.5激活版

影影绰绰一往直前

Blocs下载 Blocs激活版 Blocs破解版 Blocs mac

制造业全面预算挑战:构建碳预算体系助力企业数智化转型

用友BIP

企业数智化

Integrity plus for mac(网站链接检查工具)v12.8.0激活版

影影绰绰一往直前

Integrity Plus下载 Integrity Plus破解版 Integrity Plus

【鸿蒙生态千帆起】HarmonyOS系统级地图与位置服务,赋能广大开发者

HarmonyOS开发者

HarmonyOS

老知识复盘-SQL从提交到执行到底经历了什么 | 京东云技术团队

京东科技开发者

MySQL 数据库 sql 企业号11月PK榜

如何做好架构设计,架构设计有章可循吗? | 京东云技术团队

京东科技开发者

架构 架构设计 企业号11月PK榜

ShareMouse for mac(跨平台鼠标和键盘共享软件)v6.0.59激活版

影影绰绰一往直前

数据分层:打造数据资产管家

得物技术

架构 运维

在应用程序架构中实践敏捷_方法论_Abel Avram_InfoQ精选文章