软件架构设计读书笔记

第一部分:什么是架构?

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

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

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

架构的分类。

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

第一层:基础架构

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

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

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

第三层:业务系统架构

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

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

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

    更具体的说,比如,

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

     

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

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

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

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

    以上是第一部分内容。

posted @   意い十三章  阅读(8)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· DeepSeek在M芯片Mac上本地化部署
点击右上角即可分享
微信分享提示