zoukankan      html  css  js  c++  java
  • 《架构漫谈》阅读笔记

                                              《架构漫谈》阅读笔记

           作者先以生活为例介绍了为什么会产生架构,简单说就是所有人按照每个人所擅长的进行分工,最后共同完成一件事情,这个过程就形成了社会架构。而对于架构产生电脑动力作者也给出了五条:必须由人执行的工作、每个人的能力有限、每个人的时间有限、人对目标系统有更高的要求、目标系统的复杂性使得单个人完成这个系统。作者更是通过人类建筑学的发展,向我们介绍了架构的基本含义:1.根据要解决的问题,对目标系统的基本边界进行界定,2.并对目标系统按照某个原则的进行切分。切分的原则,要便于不同的角色,对切分出来的部分,并行或串行开展工作,一般并行才能减少时间。3.并对切分出来的部分,设立沟通机制。4.根据3,使得这些部分之间能够进行有机的联系,合并组装成为一个整体,完成目标系统的所有工作。这不仅是建筑行业的构架,也是我们软件行业开发的基本架构。

       作者认为即便我们知道了架构的基本含义,我们还是无法准确把握架构,概念是理解架构的基础,我们必须能够发现概念背后所代表的问题,进而才能够认识目标领域所需要解决的问题,这样才能为做好架构打好基础。对于要学习某项技术也是如此,唯有知道这些概念所要解决的问题,学习起来才会快速的入手,并且有效。对于我们软件行业的架构师要想做好软件架构必须准确识别问题,谁的问题。只有明白了问题的主题,才会明确软件边界约束。作者认为要正确认识问题,需要问两个问题:这是谁的问题?有什么问题?架构师一般会在第一个问题上花费较多时间。

        准确识别问题后,还是会有一些问题需要调整,也就是架构的切分。一般来说,架构切分的导火线是人的负载太重。因为维护自己的利益是每个人的本性,所以所有的切分调整,都是对相关人的利益调整。如果不能正确处理系统切分问题,将可能导致严重的后果,因此作者给出了切分的原则:1.必须在连续的时间内发现的一个活动,不能切分。2.切分出来的部分的负责人,对这个部分的权利和义务必须是对等的。3.切分出来的部分,不应该超出一个自然人的负载。4.切分是内部活动,内部无论怎么切,对整个系统的外部应该是透明的。

       软件的发展无疑对人们的生活产生了巨大的影响,而软件的发展离不开一个确实就是模拟人的所有行为,因为软件的目的就是把人类的生活模拟化,提供更低成本,高效率的新的生活。而软件工程师便是这个模拟过程的关键人物。对于软件架构,作者主要认为有两类:因为流量增大而分拆成不同的运行单元,在不同机器上部署所形成的架构;每个运行单元为了让不同角色的人,比如前端,业务,数据存储等能够并行工作,多分成的代码架构。

        对于初步当上架构师的人总会有压力,有恐惧,但作为架构师的前提就是要克服恐惧,要对自己的领域有信心,必须硬着头皮去做,才会成长。对于架构师的权利和利益,作者认为架构师要去平衡别人的利益,甚至会调整别人的利益。同时他还必须是一个组织的领导人,有权利调动这个组织的构架,才能更好地发挥架构师的作用,更好地把利益调整到实处。对于架构师的义务自然是发现问题、识别问题。

          对于如何从架构的角度去编写代码,开发软件。一般也就是坐着介绍的方法。Service专注于user的需求,并组合Glue Code提供的服务完成需求。 Glue Code专注于组合Business的调用,管理Business里面对象的生命周期,并且通过Repository保存或加载Business的状态;Business专注于实现业务的核心模型;Repository专注于数据的保存,并和存储设备一一对应。

  • 相关阅读:
    MySQL · 引擎特性 · InnoDB崩溃恢复
    MySQL · 引擎特性 · InnoDB Buffer Pool
    MySQL · 引擎特性 · InnoDB IO子系统
    MySQL · 引擎特性 · InnoDB 同步机制
    docker基本操作命令
    IIS日志导出mysql
    Win10 MySQL Community Server 8.0.17安装
    win10 TortoiseGit 图标不显示
    window环境配置nginx
    windows openssh安装
  • 原文地址:https://www.cnblogs.com/jinpeigang/p/6492437.html
Copyright © 2011-2022 走看看