zoukankan      html  css  js  c++  java
  • 架构阅读笔记9

    架构阅读笔记9

    阅读链接

    技术需求分解:是从技术角度对系统和模块进行分解。在该阶段,通常会选取关键的需求(包括功能需求和非功能性需求)和已分解出的模块或子系统,结合当前的 IT 技术(技术框架、架构模式、参考架构、中间件、业务平台)和架构思想、架构经验、开发人员的技能以及系统的上下文环境等,进一步进行架构分解。

    在技术需求分解中,对功能需求,横切(分层)竖割分解手法。对非功能需求,可将性能、伸缩性、可用性等作为维度对系统进行分解。

    在技术需求的分解中,对公共的技术需求应全盘考虑,抽象出底层的公共技术基础设施,可能会采用一些成熟的框架和中间件技术,如消息中间件、RPC等。

    技术需求分解一方面来源于问题域的本质复杂性,特别是各种非功能性需求的复杂性,另一方面也是由于互联网技术的日新月异,要求架构师对技术敏感,与时俱进。当在技术域分解中碰到困难时,可以再回到业务域中去寻找答案和线索。

    架构需求分解:全面考虑各类涉众在架构层面的关键需求,特别是非功能需求,例如性能需求、可伸缩性需求等,进一步对系统进行分解。

    架构分解就是从多个维度多层次对系统进行分解,识别出架构元素,逐步精化、丰富系统架构的过程。纬度大致有,业务纬度、业务功能纬度、技术纬度,涉众纬度。

    根据具体的系统,还可发掘出许多分解维度,如时间维度、物理空间维度、优先级维度、职责角色维度(不同的角色)、客户端维度、调用方维度(不同的调用方)、请求类型维度、数据维度、数据处理维度等。

    对非功能需求特性的架构模式或架构策略成为战术,例如,对可用性,战术为冗余、错误检测。

    对于分解的粒度,没有统一的标准,通常要能进行并行开发,能指导后续的详细设计。需要根据具体的产品或项目来定,有的到模块级别就行,对关键的部分,可以到类级别。

    架构分解的时机通常就是架构改造演化的时机。当架构出现腐化和臭味,难以满足关键涉众的关键需求,例如用户的响应速度越来越慢已经接近临界值,并且根据预见,响应速度还有可能继续较低;开发人员越来越难以维护,这个时候可以考虑进行架构演化,对架构进行改造。当然如果能提前预见系统的问题,经过慎重评估后,在问题发生之前,提前一段时间进行架构演化也是可以的。

    注意的问题是不要过度分解,过早分解,这样做除了增加成本,还可能带来风险。例如很多系统在建设初期,考虑到规模较小和快速上线,通常都是一个整体的系统,不会进行大的架构分解,以后随着需求和规模的逐渐增加,会逐步进行架构改造和架构分解。

  • 相关阅读:
    RUST实践.md
    redis.md
    opencvrust.md
    aws rds can't connect to mysql server on 'xx'
    Foundation ActionScript 3.0 With Flash CS3 And Flex
    Foundation Flash Applications for Mobile Devices
    Flash Mobile Developing Android and iOS Applications
    Flash Game Development by Example
    Actionscript 3.0 迁移指南
    在SWT中非UI线程控制界面
  • 原文地址:https://www.cnblogs.com/watm/p/10820081.html
Copyright © 2011-2022 走看看