• 架构漫谈读后感


    什么是架构

    1. 根据要解决的问题,对目标系统的边界进行界定。

    2. 并对目标系统按某个原则的进行切分。切分的原则,要便于不同的角色,对切分出来的部分,并行或串行开展工作,一般并行才能减少时间。 并对这些切分出来的部分,设立沟通机制。

    3. 根据3,使得这些部分之间能够进行有机的联系,合并组装成为一个整体,完成目标系统的所有工作。

    认知问题是架构的基础

    要做好架构所首先必须具备的能力,就是能够正确的认识概念,能够发现概念背后所代表的问题,进而才能够认识目标领域所需要解决的问题,这样才能够为做好架构打好基础。

    做好架构首先需要做的就是识别出需要解决的问题。一般来说,如果把真正的问题找到,那么问题就已经解决了80%了。这个能力基本上就决定了架构师的水平。任何找上架构师的问题,绝对都不是真正的问题。需要从问题暴露的点,一点点去溯源查找,一定会找出来谁的问题,以及是什么问题。

    要正确的认识问题,需要问两个问题:

    1. 这是谁的问题?

    2. 有什么问题?

    能够清晰的定义问题,是解决问题的第一步。

    任务切分

    架构的切分的导火索是人、时间的负载太重。每个人的能力有限,或者单个人来做的话,时间太长。

    架构的切分实际就是对stakeholder的利益进行切分或合并,使得每个stakeholder的权责是对等的,每个stakeholder可以为自己的利益负责。

    架构切分的最终结果都会体现在组织架构上,只有这样才能够让架构落地并推进。

    架构切分的结果一定是一个树状,这也是为什么会产生分层。层数越多沟通越多,效率越低,分层要越少越好。尽可能变成一颗平衡树,才能让整个系统的效率最大化。

    由此产出的一些设计算是软件架构:

    1. 软件因为流量增大而分拆成不同的运行单元,在不同的机器上部署所形成的架构,属于软件架构。

    2. 每个运行单元为了让不同角色的人,比如前端,业务,数据存储等能够并行工作,所分成的代码架构,也属于软件架构。

    不同的想法

    作者把架构归结为分工的需要,但是只有一个人的项目的时候,也是需要架构的。架构使整个系统满足业务需求的基础上,简单、可维护。

  • 相关阅读:
    windows向Linux服务器上传、下载,服务器内复制、移动文件
    解决:ubuntu提示E: 无法获得锁 /var/lib/dpkg/lock-frontend
    PostgreSQL安装与简单操作
    LeetCode 234.回文链表
    LeetCode 445.两数相加 II
    LeetCode 24.两两交换链表中的节点
    LeetCode 19.删除链表的倒数第 n 个节点
    LeetCode 26.删除排序数组中的重复项
    Java 程序运行机制
    String 属于基础的数据类型吗?
  • 原文地址:https://www.cnblogs.com/a1264393659/p/6518795.html
Copyright © 2020-2023  润新知