Web 架构设计入门

为什么在构建 Web 应用时架构的选择是如此的重要?确定架构是好是坏的标准是什么?本文介绍如何在设计支持你当前需求的Web 应用架构的同时不给未来埋坑。

为什么 Web 应用架构很重要?

Web 应用架构包括所有软件模块和组件、内部和外部系统、以及构成应用程序的之间的交互。除了解决开发开始时的所有业务需求,架构还能够确保满足所有非功能性要求(例如可维护性和敏捷性)。

具有良好结构的 Web 应用架构能确保你的 Web 应用可以扩展为业务需求,同时确保能够正确的隔离所有概念,而且能够考虑其相互之间的依赖性。总的来说,应用程序的体系结构不仅可以保证在独立的体系上正常运行,同时也应该能够与所有的其他软件很好的集成。

好的 Web 应用架构应该是什么样的?

首先架构是聚合了很多事件的多个过程。它不是静态的:否则你只能创建一个充斥着各种知识的架构。 例如受疫情影响,从 2020 年开始流行远程办公,没有人可以预测到需要全局锁定,并要确保所有员工必须能够远程访问每个业务服务。但即使在颠覆性较少的年份中也会出现一些新业务、新用例和新工具等,这些因素都会使你不断去迭代自己的核心架构。

如果你知道自己的架构必须迭代进化,那么你是否在应用的不同部分之间跟踪了依赖关系?如果你必须进行修改,你是否可以清楚地说出需要做出哪些变化?你是否能够做到尽量减少所带来的影响?

Web 架构质量的核心基准是能够避免产生技术债的程度。所谓的技术债指的是在项目开始时做出了错误的决定而导致返工,从而带来时间、努力和金钱上的成本。一个很好的软件架构能够使你应对不可避免的变化,而不会以技术债的方式产生。所以在某种程度上只有时间才能判断你的架构是否是明智的。

出错的成本有多大?

在架构上出错所带来的问题主要是技术债。由于架构设计不佳,技术债快速升级:任何一点修改都会对诸多不同的应用产生重大影响,意识不到未来的变化就意味着新增的代码会在你的应用中四处引爆各种各样的问题,同时在试图修复这些问题时又会引入新的问题。一个简单的应用很容易变成一个复杂而庞大的怪物,使变化更加困难和耗时,并会极大的影响到业务的创新和迭代。

健全 Web 应用架构的核心原则

在下图中,按照所谓的核心业务“实体”的方法,OutSystems 就是你要创建的服务的基础组成部分。其目的是把功能集中在一起并在整个产品组合中重复使用 。如果需要进行更改,则只修改一次就行了,并且每个人都能够使用。所以 Outsystems 的目标不是单个应用程序,而是一个应用程序的组合:只有在多个应用中重复使用单个服务时,整个平台才能带来明显的好处并体现出其价值。

image.png

173382ede7319973.gif


本文首发微信公众号:前端先锋

欢迎扫描二维码关注公众号,每天都给你推送新鲜的前端技术文章

欢迎扫描二维码关注公众号,每天都给你推送新鲜的前端技术文章


欢迎继续阅读本专栏其它高赞文章:



疯狂的技术宅
本专栏文章首发于公众号:前端先锋 。
44.3k 声望
39.1k 粉丝
0 条评论
推荐阅读
为什么浮点数运算会产生误差
以下图的 Python 为例, 0.1 + 0.2 并不等于 0.3,8.7 / 10 也不等于 0.87,而是 0.869999…,真是太奇怪了 🤔

疯狂的技术宅12阅读 7.3k评论 1

手把手教你写一份优质的前端技术简历
不知不觉一年一度的秋招又来了,你收获了哪些大厂的面试邀约,又拿了多少offer呢?你身边是不是有挺多人技术比你差,但是却拿到了很多大厂的offer呢?其实,要想面试拿offer,首先要过得了简历那一关。如果一份简...

tonychen152阅读 17.7k评论 5

封面图
正则表达式实例
收集在业务中经常使用的正则表达式实例,方便以后进行查找,减少工作量。常用正则表达式实例1. 校验基本日期格式 {代码...} {代码...} 2. 校验密码强度密码的强度必须是包含大小写字母和数字的组合,不能使用特殊...

寒青56阅读 8.5k评论 11

JavaScript有用的代码片段和trick
平时工作过程中可以用到的实用代码集棉。判断对象否为空 {代码...} 浮点数取整 {代码...} 注意:前三种方法只适用于32个位整数,对于负数的处理上和Math.floor是不同的。 {代码...} 生成6位数字验证码 {代码...} ...

jenemy48阅读 7k评论 12

从零搭建 Node.js 企业级 Web 服务器(十五):总结与展望
总结截止到本章 “从零搭建 Node.js 企业级 Web 服务器” 主题共计 16 章内容就更新完毕了,回顾第零章曾写道:搭建一个 Node.js 企业级 Web 服务器并非难事,只是必须做好几个关键事项这几件必须做好的关键事项就...

乌柏木75阅读 7.1k评论 16

再也不学AJAX了!(二)使用AJAX ① XMLHttpRequest
「再也不学 AJAX 了」是一个以 AJAX 为主题的系列文章,希望读者通过阅读本系列文章,能够对 AJAX 技术有更加深入的认识和理解,从此能够再也不用专门学习 AJAX。本篇文章为该系列的第二篇,最近更新于 2023 年 1...

libinfs42阅读 6.8k评论 12

封面图
从零搭建 Node.js 企业级 Web 服务器(一):接口与分层
分层规范从本章起,正式进入企业级 Web 服务器核心内容。通常,一块完整的业务逻辑是由视图层、控制层、服务层、模型层共同定义与实现的,如下图:从上至下,抽象层次逐渐加深。从下至上,业务细节逐渐清晰。视图...

乌柏木45阅读 8.5k评论 6

44.3k 声望
39.1k 粉丝
宣传栏