为了成为一名架构师必须稳扎稳打,软件架构设计的基本概念

简介: 软件行业的人才结构是金字塔,我们的目标就是向塔尖走去,从程序员到技术经理或者程序员到架构师,都是我们职业路上所追求的。

前言

大家好,我是小郭,最近 软件架构设计-程序员向架构师转型 这本书做一点读书笔记。

软件行业的人才结构是金字塔,我们的目标就是向塔尖走去,从程序员到技术经理或者程序员到架构

师,都是我们职业路上所追求的。

书籍

【软件架构设计-程序员向架构师转型】

什么是架构?

一千个观众眼中有一千个哈姆雷特,所以我们每个人对架构的认识也是不同的。

下面我们从四个方面入手了解架构的基础

  • 软件架构的概念
  • 概念思想的解析
  • 概念架构设计是什么
  • 架构设计视图

软件架构的概念

架构分为两个派系,但是他们之间是相辅相成的

  1. 组成派:计算组件及组件之间的交互,完成更高层次的计算
  • 计算组件:细分为处理组件、数据组件、连接组件
  • 组件:子系统、框架、模块、类
  • 数据加工的处理元素、被加工信息的数据元素、用于把架构的不同部分组成在一起的连接元素
  1. 决策派:在一些重要方面所做出的决策的集合
  • 不仅仅注重软件本身的结构和行为,还注重功能性、性能、弹性、经济和技术的限制及权衡
  • 以人的决策为描述对象,不仅关注系统本身,更包括众多非功能性需求的决策
  • 软件架构是一系列决策,如果决策错误,可能会造成项目失败

概念思想的解析

  1. 关注软件的分与合
  • 我们现在所流行的MVC架构举例,将组件抽象出来

网络异常,图片无法展示
|

  1. 有层次的决策
  • 按切分类决策,C/S系统 设计到模块的划分,模块职责的定义,模块之间的交互机制
  • 按技术选型决策,B/S系统 技术选型,满足约束和质量属性的需求,如何适应需求的变化

概念架构设计什么

  • 架构风格选型
  • 开发技术选型
  • 集成技术选型
  • 二次开发技术选型

架构设计视图

什么是架构设计的视图? 有角度就有空间,从不同角度,规划“分割”和“交互”。

架构视图的本质

本质就是分而治之,大事化小小事化了,颗粒度越小越好。

之前在学习任务分解中听到一个马斯克的故事,记忆犹新。

埃隆·马斯克有一个目标是,送 100 万人上火星,但是呢,实现马斯克的目标,送 100 万人上火星就要 1 万万亿, 这真是一个天文数据,那马斯克是怎么解决的呢?

第一步,降低火箭运输成本,将100亿美金之后降低到50w美金,成本缩小 2 万倍

第二步,将这 2 万分解成 20×10×100

  • 20: 成本降低 20 倍,现在的火星飞船一次只能承载 5 个人,马斯克的打算是,把火箭造大一点,一次坐 100 人
  • 10:成本可以降到十分之一
  • 100:可回收火箭,燃料成本降到一百分之一

现在回头看我们的架构,

逻辑架构:有哪些逻辑元素组成以及他们之间的关系,是不是层、子系统、模块进行更细致的划分,来完成相互之间的交互。

物理架构:组成软件系统的物理元素,以及他们之间的关系和它们部署到硬件上的策略

他们两个相互协作,为详细设计和编程开发实现作为指导。

架构为谁设计

用户:要功能也要质量

客户:充分考虑客户的业务目标和上线时间要求、预算限制等约束条件

开发人员:软件的扩展性、可重用性、可移植性、易理解性和易测试性,影响开发效率

管理人员:模块+交互,管理的基础

总结

我们看到架构就是一个不断拆分,不断整合的过程,这里面有很多需要深入学习的地方。

一图总结:

网络异常,图片无法展示
|

相关文章
|
4月前
|
传感器 物联网 数据处理
认识IoT的基本概念和架构
物联网(Internet of Things, IoT)是现代信息技术的重要组成部分,通过将物理设备连接到互联网,实现设备之间的互联和数据交换。随着传感技术、通信技术和数据处理能力的不断提升,物联网在各个领域展现出巨大的潜力和应用前景。本文将介绍物联网的基本概念、架构、关键技术及其应用场景,并探讨其未来的发展趋势。
215 3
|
1月前
|
存储 分布式计算 大数据
大数据-169 Elasticsearch 索引使用 与 架构概念 增删改查
大数据-169 Elasticsearch 索引使用 与 架构概念 增删改查
57 3
|
3月前
|
存储 架构师 测试技术
架构之道——人人都是架构师
本文的探讨和编写主要围绕三个方面:架构是什么?架构师要解决的问题有哪些?解决这些问题的方法论是什么?最后作者希望人人都能具备架构师思维。
|
1月前
|
缓存 NoSQL Java
秒杀圣经:10Wqps秒杀,16大架构绝招,一文帮你秒变架构师 (2)
高并发下的秒杀系统设计是一个复杂的挑战,涉及多个关键技术点。40岁老架构师尼恩在其读者交流群中分享了16个关键架构要点,帮助解决高并发下的秒杀问题,如每秒上万次下单请求的处理、超卖问题的解决等。这些要点包括业务架构设计、流量控制、异步处理、缓存策略、限流熔断、分布式锁、消息队列、数据一致性、存储架构等多个方面。尼恩还提供了详细的实战案例和代码示例,帮助读者全面理解和掌握秒杀系统的架构设计。此外,他还分享了《尼恩Java面试宝典》等资源,帮助读者在面试中脱颖而出。如果你对高并发秒杀系统感兴趣,可以关注尼恩的技术自由圈,获取更多详细资料。
秒杀圣经:10Wqps秒杀,16大架构绝招,一文帮你秒变架构师 (2)
|
1月前
|
缓存 NoSQL Java
秒杀圣经:10Wqps高并发秒杀,16大架构杀招,帮你秒变架构师 (1)
高并发下,如何设计秒杀系统?这是一个高频面试题。40岁老架构师尼恩的读者交流群中,近期有小伙伴在面试Shopee时遇到了这个问题,未能很好地回答,导致面试失败。为此,尼恩进行了系统化、体系化的梳理,帮助大家提升“技术肌肉”,让面试官刮目相看。秒杀系统设计涉及16个架构要点,涵盖业务架构、流量架构、异步架构、分层架构、缓存架构、库存扣减、MQ异步处理、限流、熔断、降级、存储架构等多个方面。掌握这些要点,可以有效应对高并发场景下的秒杀系统设计挑战。
秒杀圣经:10Wqps高并发秒杀,16大架构杀招,帮你秒变架构师 (1)
|
1月前
|
消息中间件 NoSQL Kafka
大数据-52 Kafka 基础概念和基本架构 核心API介绍 应用场景等
大数据-52 Kafka 基础概念和基本架构 核心API介绍 应用场景等
62 5
|
1月前
|
消息中间件 存储 分布式计算
大数据-53 Kafka 基本架构核心概念 Producer Consumer Broker Topic Partition Offset 基础概念了解
大数据-53 Kafka 基本架构核心概念 Producer Consumer Broker Topic Partition Offset 基础概念了解
66 4
|
26天前
|
Java API 微服务
微服务架构:解密微服务的基本概念
微服务架构:解密微服务的基本概念
56 0
|
1月前
|
存储 分布式计算 算法
大数据-105 Spark GraphX 基本概述 与 架构基础 概念详解 核心数据结构
大数据-105 Spark GraphX 基本概述 与 架构基础 概念详解 核心数据结构
47 0
|
1月前
|
消息中间件 分布式计算 Kafka
大数据-98 Spark 集群 Spark Streaming 基础概述 架构概念 执行流程 优缺点
大数据-98 Spark 集群 Spark Streaming 基础概述 架构概念 执行流程 优缺点
39 0