美文网首页架构师架构设计与重构顶级架构师
《微软应用架构指南》读书笔记-架构和设计的方法

《微软应用架构指南》读书笔记-架构和设计的方法

作者: 影疾 | 来源:发表于2015-01-07 22:54 被阅读221次

    明确架构目标

    清晰明确的目标有助于您聚焦在架构上,并集中精力解决设计中需要解决的问题。精密的目标能够帮助决定什么时候完成当前阶段,什么时候可以进入下一个阶段。

    确定关键应用场景

    通过关键应用场景,可以知道如何把设计放在重要的事情上,花更多的时间在重要的事情上,并且在得到候选架构之后对候选架构进行评估。

    举例:

    对未来的预计-网站产品量在未来一年将达到1个亿

    CAP属性的权衡

    安全-上市公司对于数据的安全性有很高的要求

    业务要求-支撑灵活的实验特性,不发布快速上线实验

    应用程序概貌

    确定 1.应用程序类型(standalone,service,webapp,ios/android);2.部署结构(中美部署或者多机房部署需要考虑同步问题);3.架构风格(SOA,C/S,分层,消息驱动,领域设计);4.确定相关技术(技术的选择受限于招聘成本,基础结构限制,开发人员技能,维护成本等);

    关键问题

    根据质量特性和横切关注点确定关键问题,比如搜索latency,统一日志收集框架,请求级别缓存框架

    A.可用性、模块重用性、性能、可靠性、安全性、可伸缩性、易用性等的权衡。

    B.授权和验证、加密、审计、缓存、通信协议、配置管理、异常管理、日志收集、验证

    C.

    举例:

    1.可否把A系统换成另外一个X系统?

    2.如果未来增加了某一个应用,需要如何做到逻辑同步修改?

    3.我能否实现快速将新技术应用到X模块中?

    候选解决方案

    在下一次架构迭代开始之前,针对关键应用场景、问题或者部署限制重新评估和改善当前架构版本。

    展示和与项目成员沟通您的架构设计

    4+1 view model of software architecture 

    https://www.cs.ubc.ca/~gregor/teaching/papers/4+1view-architecture.pdf

    UML:功能需求视图(用例图),静态结构视图(对象、属性、关系、操作:类图),动态行为视图(序列图,活动图,状态图)

    分层结构的设计步骤

    1.确定分层策略(确定分层的目标?比如从性能,维护性,扩展性等角度出发)

    2.确定需要的分层(选择分层的方式:展示层-业务层-数据层-服务层等)

    3.确定如何分布层和组件(物理上是否需要独立,计算密集型与IO密集型合并部署等)

    4.确定是否需要收缩层

    5.确定层之间交互的规则(高->低层依赖,严格交互:直接下层,松散交互)

    6.找出横切关注点(AOP实现?日志,缓存,验证,鉴定)

    7.定义层与层之间的接口交互方式(抽象接口-interface,依赖反转spring,基于消息-消息中间件如metaq)

    8.选择部署策略

    9.选择通信协议

    SOLID设计原则

    单一职责原则 The Single Responsibility Principle

    开放关闭原则The Open Closed Principle

    里氏替换原则The Liskov Substitution Principle

    接口隔离原则The Interface Segregation Principle

    依赖倒置原则The Dependency Inversion Principle

    相关文章

      网友评论

        本文标题:《微软应用架构指南》读书笔记-架构和设计的方法

        本文链接:https://www.haomeiwen.com/subject/orjtxttx.html