首页 > 其他分享 >软件架构设计读书笔记

软件架构设计读书笔记

时间:2023-12-13 16:16:02浏览次数:40  
标签:总结 架构 读书笔记 数据库 中间件 实践 问题 软件架构 设计

第一部分:什么是架构?

一句话:架构是针对所有重要问题做出的重要决策。

不同公司或者相同公司在不同的阶段所面临的问题不同,架构自然也会有所不同。

个人认为,不存在称之为完美的架构,只会存在最适合的。面对的场景,着重的目的不同,那么相应的决策也会不同(有点废话)。

架构的分类。

作者从技术的角度,把软件从底向上分层,做了架构的分类。

第一层:基础架构

基础架构指的是云平台、操作系统、网络、存储、数据库和编译等。

第二层:中间件和大数据平台

中间件,例如分布式服务中间件、消息中间件、数据库中间件、缓存中间件等。

第三层:业务系统架构

  • 通用软件系统。例如常用办公软件、播放器。
  • 离线业务。比如各种基于数据的离线计算、数据挖掘。
  • 大型在线系统。比如电商、广告、搜索、推荐、ERP或者CRM等。
  • 什么是架构的道?

    抽象点说,对于技术问题,主要是指高并发、高可用和一致性方面。对于业务问题,主要指业务需求分析和建模。

    那么,我们在面对这些问题的时候, 是通过大量的业务系统实践,在实践基础上进行的思考和总结,进而提炼出的一些方法论,这就是道。

    更具体的说,比如,

    • 数据库如何分库分表?
    • 分库分表的时机如何确定?
    • 缓存一致性问题如何解决?
    • 如何拆分服务?
    • ......

     

    等等问题,这些问题解决方案并不是凭空出现的,而是通过大量的实践落地进而总结产生的一套解决方案核心思路。

    所以道很多时候是"虚"的东西,越虚意味着就越抽象,如果两个人在讨论某个问题,而对一些专业理论的认知还未处于同一水平上,那听起来就只能离谱了。

    所以要讲道之前,得先有术。术就是指对应具体的语言,框架或者中间件使用姿势。这些都是比较具体的东西,实操性强,方便大家理解。

    架构的道和术,都不能偏废,一方面需要不断实践(术),在实践中深入原理。进而把实践的东西抽象,总结出来,形成方法论(道)。 不断地用道来指导新的术,在新的术中再总结出新的道,如此循环往复。

    以上是第一部分内容。

标签:总结,架构,读书笔记,数据库,中间件,实践,问题,软件架构,设计
From: https://www.cnblogs.com/ruipengli/p/17899245.html

相关文章

  • 浅谈设计模式-工厂模式的设计思想以及细节问题(上篇)
    1什么是工厂模式?工厂模式,顾名思义,就是把将对象的实例化过程封装在工厂类中的方式。工厂负责生产相应的对象实例。一般分为两种工厂模式:简单工厂;抽象工厂优点:用户不需要解决具体的细节问题,利用工厂类进行生产产品细节;可以将对象的创建与使用代码分离,提供一种统一的接口来创建不同类......
  • Rong晔大佬教程学习(1):背景与项目设计目标
    riscv实际上是一种ISA的指令集,而处理器的设计的基本结构是不变的(如下所示),其区别在于所选用的指令集的类型,一般有ARM、RISCV、MIPS等,采用了不同的引擎,那么车的外观、系统等也会随之发生变化。采用RISCV,是因为它简洁、开源、明了,确定处理器设计的指令集后,我们还要对其进行......
  • 进程与端口的系统设计题
    #####题目1.FlowStatsSystem在一台计算机上运行着多个网络程序的进程,每个进程可以绑定多个端口,每个端口同一时刻只能被绑定在一个进程上,每个端口在绑定成功后可以接收网络报文。请设计一个流量统计的简易系统,实现下面接口:FlowStatsSystem()–系统初始化。bindport(intpi......
  • 今天聊一聊高性能系统架构设计是什么样的
    Java全能学习+面试指南:https://javaxiaobear.cn今天聊一聊大家常听到的高性能系统架构。高性能系统架构,主要包括两部分内容,性能测试与性能优化。性能优化又可以细分为硬件优化、中间件优化、架构优化及代码优化,知识架构图如下。性能测试先看系统的性能测试。性能测试是性能优......
  • F. 纪念品 - 2023HBUCM程序设计竞赛/CSP-J2019
    题面小伟突然获得一种超能力,他知道未来\(T\)天\(N\)种纪念品每天的价格。某个纪念品的价格是指购买一个该纪念品所需的金币数量,以及卖出一个该纪念品换回的金币数量。每天,小伟可以进行以下两种交易无限次:任选一个纪念品,若手上有足够金币,以当日价格购买该纪念品;卖出持有的......
  • Apollo 4 客户端 SDK 设计
    前言之前聊了客户端的一些功能,例如融入Spring,@value注解的自动刷新实现,长轮询等,这次从客户端的整体设计来聊聊。设计上图是client项目的包结构。其中,核心包就是internals包,包含了客户端的主要功能逻辑。主要有以下功能:0.获取ConfigService服务的远程配置。长轮......
  • DAMON —— 设计 【ChatGPT】
    https://www.kernel.org/doc/html/v6.6/mm/damon/design.html设计整体架构DAMON子系统配置了三层,包括操作集:实现了依赖于给定监控目标地址空间和可用软硬件原语的DAMON基本操作,核心:在操作集层之上实现了核心逻辑,包括监控开销/准确性控制和访问感知系统操作,模块:在......
  • 【架构】事件驱动设计遇上事件溯源
    From:现代软件架构:事件驱动设计遇上事件溯源(qq.com) 在当今的软件领域中,做出正确的架构决策对于确保性能、可扩展性、可维护性和整体成功至关重要。在众多模式中,事件驱动架构(EDA)和事件溯源(ES)作为复杂软件系统最受欢迎的两种选择之一。虽然可以单独使用EDA或ES,但它们的结合可......
  • 界面设计学习
    界面设计学习总体设计做一个网站首先要明白它的网页设计步骤:确定网站主题分析网站的功能,将网站所有的功能在文档中体现。分析网站的主题,选择符合网站主题的方法。编写步骤:先用html写出结构。用CSS写出样式。用js写出动态效果。功能图详细设计整体分析局部分......
  • 算法分析设计复习 (时间复杂度)
    目录前言求递推关系式例一汉诺塔算法简述求关系式例二分治法求最大值算法简述求关系式求时间复杂度例一汉诺塔扩展找规律大O表示法例二分治法求最大值扩展找规律大O表示法前言本文为JMU22级软件算法分析考前复习而总结归纳,讲解时间复杂度的计算。应该重点考察递归算法的拓......