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

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

前言

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

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

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

书籍

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

什么是架构?

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

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

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

软件架构的概念

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

  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:可回收火箭,燃料成本降到一百分之一

现在回头看我们的架构,

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

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

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

架构为谁设计

用户:要功能也要质量

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

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

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

总结

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

一图总结:

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

相关文章
|
2月前
|
缓存 前端开发 JavaScript
第三章(概念篇) 微前端架构模式
第三章(概念篇) 微前端架构模式
|
2月前
|
缓存 自然语言处理 前端开发
第一章 引言-HTTP协议基础概念和前后端分离架构请求交互概述
第一章 引言-HTTP协议基础概念和前后端分离架构请求交互概述
|
5天前
|
Java 数据库连接 Spring
Spring底层架构核心概念总结
Spring底层架构核心概念总结
|
5天前
|
存储 算法 C语言
【链表专题】深入探索链表:文章索引与知识架构(链表的概念、实现、应用、经典例题大合集)
【链表专题】深入探索链表:文章索引与知识架构(链表的概念、实现、应用、经典例题大合集)
|
20天前
|
监控 持续交付 API
微服务架构:从概念到实践
【6月更文挑战第10天】微服务架构将大型应用拆分为独立小服务,每个服务运行在独立进程中,通过轻量级通信协作。其特点是模块化、可伸缩、灵活且容错性好。优势包括提高开发效率、降低系统复杂性、便于技术选型和提升系统可用性。实践中,涉及业务拆分、服务通信、治理、自动化部署及数据一致性管理。这种架构模式为企业应对复杂业务需求提供了有效解决方案。
|
2月前
|
运维 架构师 安全
架构师养成手册:架构师职责
小米是一名热情的技术爱好者和架构师,他探讨了架构师的角色和职责。主要涉及六个方面:顶层设计,需与企业战略目标对齐,制定架构原则;规划可适应未来变化的企业架构,分析需求并关注技术趋势;全局视角制定可落地的架构方案,兼顾全局与局部优化;技术选型与难题解决,选择合适技术并解决实际问题;关注方案与代码的广度与深度,确保宏观设计与微观实现的统一;同时,架构师还需具备管理能力,包括团队协作、资源调配和风险管理。
63 11
|
13天前
|
存储 小程序 云计算
云计算概念与架构设计介绍
云计算概念与架构设计介绍
|
23天前
|
消息中间件 数据采集 分布式计算
离线数仓(一)【数仓概念、需求架构】
离线数仓(一)【数仓概念、需求架构】
|
2月前
|
Kubernetes API 调度
Kubernetes学习-核心概念篇(二) 集群架构与组件
Kubernetes学习-核心概念篇(二) 集群架构与组件
|
2月前
|
架构师 微服务
什么是软件架构?架构的本质是什么?
定义 ”架构是什么“ 是件非常困难的事情,不同的组织对于软件架构有不同的定义,每个人心中也有自身对于系统架构定义的认知。就好比我们无法百分之百表述模型而只能产出模型不同维度的视图,对架构进行完备的定义是不可能的。
64 4