zoukankan      html  css  js  c++  java
  • 软件体系架构阅读笔记(一)

    今天看了云时代架构一篇名为《设计架构思维-分解》的文章,在此写一下自己的感受,原文地址:

     https://mp.weixin.qq.com/s/Rr9U8S8cLSfm186BHjtVLg 
      文章开篇首先说了一下好高骛远和高瞻远瞩之间的关系与区别,感觉作者说的很有道理,不仅是在架构师中,可能在平时的做人与
    学习中,应该尽自己所能做到高瞻远瞩,而不是好高骛远。
      在正文部分中,作者说所有系统的开发方法都要解决从需求到实践的转换问题。如果一个开发方法设计的再合理,理论再优秀,但是
    它无法解决实际中的问题,解决不了从需求到实际的转换,那么这个方法没有实际的意义。对于架构设计,人们提出了很多的方法,如:
    工件驱动的方法、用例驱动法、模式驱动的方法、领域驱动的方法。作者简要说了一下RUP迭代增量的思想,由分析、描述、选择、构造
    和组合5个阶段构成。作者在文中将大致的架构思维分为:分解、集成、分离、复用、分层、模式、抽象、结构化、迭代、勿做过度设计这
    几个部分来设计架构系统。
      本篇文章的标题是分解,本篇文章的重头戏也自然是讲述分解思想在架构设计中的应用。在平时的课程中,老师也总是强调分而治之和分层思想
    在软件体系设计中的重要性。分而治之是一种处理复杂问题的通用方法,在架构设计中是一种重要手段,如多层架构、OSI七层模型都体现了分而
    治之的思想。分解核心是定义问题,因此架构首先仍然需要理解清除需求。
      分解可以帮助架构师了解需求中未呈现的的隐性需求,分解也是架构师解决非功能层面需求的重要手段,架构要解决高性能、高可用、伸缩性、可
    扩展性等问题,一般从如下几个方面入手。
    一、应用层:按照功能或者微服务进行分解,将系统分解为若干子系统。二、数据层:对数据库进行垂直拆分按照子系统维度进行分库和水平拆分按照
    业务维度进行分表。三、代码结构层:代码层一般分为三层,从上至下分别为:数据访问层、业务逻辑层、表示层,这也是java web中重要的三个层次。
     分解的原则分为业务原则,技术原则治理原则。技术原则中值的我们注意的是单一职责原则,这个原则虽然可能很基础,但是常常被我们忽略到。在技术原
    则中需要我们注意的是避免频繁的跨库查询,因为现在做的项目层次还比较低,所以对此项原则体会较深。在治理原则中需要注意的则是避免部署多个版本
    来兼容,一开始可能会没出现问题,但是随着项目的扩充,对以后项目的改造带来一些麻烦。
      分解的过程是一个从无到有、从粗到细、从模糊到清晰,一步步精化、丰富架构、迭代的过程也是一个否定之否定的过程,随着分解的逐步推进或系统的架构演化,
    后面的分解除了会识别出隐性需求,也可能会对先前识别出的架构做出调整。
      架构分解是从多个维度多层次对系统进行分解,识别出来架构元素,逐步精华、丰富架构系统的过程。从上面可以总结出,维度大致有,业务维度、业务功能维度、
    技术维度、涉众维度。
     
  • 相关阅读:
    LeetCode Array Easy 414. Third Maximum Number
    LeetCode Linked List Medium 2. Add Two Numbers
    LeetCode Array Easy 283. Move Zeroes
    LeetCode Array Easy 268. Missing Number
    LeetCode Array Easy 219. Contains Duplicate II
    LeetCode Array Easy 217. Contains Duplicate
    LeetCode Array Easy 189. Rotate Array
    LeetCode Array Easy169. Majority Element
    LeetCode Array Medium 11. Container With Most Water
    LeetCode Array Easy 167. Two Sum II
  • 原文地址:https://www.cnblogs.com/lwq666/p/11004843.html
Copyright © 2011-2022 走看看