7月阅读周·前端架构:从入门到微前端 | 前端架构

举报
叶一一 发表于 2024/07/22 23:54:20 2024/07/22
【摘要】 背景去年下半年,我在微信书架里加入了许多技术书籍,各种类别的都有,断断续续的读了一部分。没有计划的阅读,收效甚微。新年伊始,我准备尝试一下其他方式,比如阅读周。每月抽出1~2个非连续周,完整阅读一本书籍。这个“玩法”虽然常见且板正,但是有效,已经坚持阅读六个月。已读完书籍:《架构简洁之道》、《深入浅出的Node.js》、《你不知道的JavaScript(上卷)》、《你不知道的JavaScri...

背景

去年下半年,我在微信书架里加入了许多技术书籍,各种类别的都有,断断续续的读了一部分。

没有计划的阅读,收效甚微。

新年伊始,我准备尝试一下其他方式,比如阅读周。每月抽出1~2个非连续周,完整阅读一本书籍。

这个“玩法”虽然常见且板正,但是有效,已经坚持阅读六个月。

已读完书籍《架构简洁之道》、《深入浅出的Node.js》、《你不知道的JavaScript(上卷)》、《你不知道的JavaScript(中卷)》、《你不知道的JavaScript(下卷)》、《数据结构与算法JavaScript描述》、《WebKit技术内幕》

当前阅读周书籍《前端架构:从入门到微前端》

前端架构

没有一种架构能满足未来的需求。

在软件的生命周期中,架构可以不断地优化,持续地变好,使得架构可以适用于当前的场景。所以架构是可以改变的,架构是需要变化的。

为什么需要软件架构

什么是软件架构

1、维基百科:

软件架构是指软件系统的高级结构,以及创建这种结构和系统的约束。每个结构包括软件元素、元素之间的关系,以及元素和关系的属性。软件系统的架构是一种隐喻,类似于建筑物的体系结构。它作为系统和开发项目的蓝图,列出了设计团队必须执行的任务。

2、IEEE(14712000):

架构是指体现在它的组件中的一个系统的基本组织、组织之间的关系、组织与环境的关系及指导其设计和发展的原则。

对于软件开发来。最初,设计出软件的总体架构蓝图,思考各个模块之间的关系,实施一系列相关的架构决策。然后,选择软件开发所需要的一系列技术栈、框架等,讨论关于应用的上线、部署等流程问题。最后,才能进入软件的开发阶段。在开发的过程中,还需要保证软件的质量,才能设计出符合要求的系统。

开发人员需要怎样的软件架构

不以实现为目的的架构,都是无意义的。因此,我们对系统架构的基本判断如下:

  • 一个无法上线的应用架构,算不上好的软件架构。
  • 一个没有人能完成开发的软件架构,算不上具有可行性的软件架构。
  • 一个在现有的技术上不可行的架构,算不上合理的软件架构。

只凭一系列软件的架构蓝图,没有对应的实施者、维护者,那么系统就可能不会以预计的方式来构建;只凭一系列的架构蓝图,没有相应的实施规范和原则,便无法按我们预期的方式来实施项目。

为此,我们期望的软件架构,应该是贯穿在它被应用的生命周期里的,应该包含以下的内容:

  • 系统间关系。明确地指出该系统与其他系统之间的关系,是调用关系,还是依赖关系等。
  • 系统内关系。系统内各子系统之间的关系,如前端应用与后端应用,以怎样的方式通信,需要怎样的通信机制。
  • 应用内架构。包含应用相关的框架、组件,并清楚地表示出它们之间的关系。
  • 规范和原则。用于指导项目中的开发人员,编写出符合需求的代码,以构建出设计中的架构。

架构的设计

架构设计并非只是一个技术工作,它包含了一系列复杂的工作,其范围包括软件工程、开发实践、业务交付等相关的领域。为此,在进行架构设计的时候,需要进行一系列技术及非技术相关的工作:

  1. 收集利益相关者的需求。倾听业务人员、项目负责人等相关者的需求,进行用户访谈,收集相关的需求。
  2. 与相应的技术人员(如开发人员、测试人员)讨论,了解架构上的潜在限制。
  3. 寻找潜在的可行性技术方案。
  4. 整理出功能列表中的功能性需求和跨功能性需求。
  5. 找出会严重影响开发的风险点。
  6. 和技术委员会、利益相关者反复确认方案(可选)。
  7. 对架构设计进行概念证明。
  8. 细化架构的部分实施细节。
  9. 结合技术和业务,进行需求排期。

在这个过程中,最重要的还是收集相关的架构需求。有了这些基本的信息之后,才能进行相关的技术决策。因为对于大部分项目来说,技术方案往往都是现成的。从过往经验、书籍、互联网、同学、同事等渠道,都可以获得一些不错的技术方案。只是每个项目因为需求的不同,所需要的技术方案也略有差异——往往需要整合多个方案,或者对某个方案进行改进,而需求能决定这些架构方案的细节。

架构设计原则

不同的人在设计架构时会出现不同的风格,在细节的把握上也会出现特有的风格,这便是架构的设计原则。笔者根据自己的项目经验,总结了三个设计原则,如下。

  • 不多也不少:不做多余的设计,也不缺少关键的部分。
  • 演进式:不断地演进以使架构适应当前的环境。
  • 持续性:长期的架构改进比什么都重要。

它们不是真实的架构需求,而是隐藏在背后的设计思想,也是不同人的设计价值观。

前端架构设计:层次设计

架构设计本身是分层级的,面向不同级别的人时所展示的内容也是不一样的。

不同阶段构成架构的因素是不同的,基于这个思路,架构设计可以分为四个层级:

  • 系统级,即应用在整个系统内的关系,如与后台服务如何通信,与第三方系统如何集成。
  • 应用级,即应用外部的整体架构,如多个应用之间如何共享组件、如何通信等。
  • 模块级,即应用内部的模块架构,如代码的模块化、数据和状态的管理等。
  • 代码级,即从基础设施来保障架构实施。

总结

通过阅读本文可以了解以下内容:

  • 什么是软件架构,以及为什么我们需要软件架构;
  • 如何设计软件架构——从架构的需求收集、简单地介绍了一些现有的架构风格、两种主流的架构设计方法,到生成所需的架构产出物;
  • 三个基本的架构设计原则,它用于指导我们进行架构设计。好的架构设计是不多也不少的,它以演进式的方式不断演化。
  • 前端架构的一种设计方法——层级设计。

作者介绍
非职业「传道授业解惑」的开发者叶一一。
《趣学前端》、《CSS畅想》等系列作者。华夏美食、国漫、古风重度爱好者,刑侦、无限流小说初级玩家。
如果看完文章有所收获,欢迎点赞👍 | 收藏️ | 留言📝

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。