如何通俗地理解「分布式系统」;Vue是否可以在一个项目中使用多个UI框架;大厂上线流程:先上前端还是后端|极客观点

简介: 如何通俗地理解「分布式系统」;Vue是否可以在一个项目中使用多个UI框架;大厂上线流程:先上前端还是后端|极客观点

#极客观点 聚焦于技术方向、程序员职业发展、个人成长等主题,致力于发起有价值的讨论,输出有价值的观点。

在本栏目中,我们将为大家推荐在 #极客观点 版块被热烈讨论的话题,甄选出有趣的观点为你呈现。期待我们一起成长和进步呀 🥰🥰

今日关键词:#分布式系统 #UI 框架 #大厂上线流程

如何通俗地理解「分布式系统」?

话题发起人:Alluxio

如何通俗地理解「分布式系统」,它解决了哪些问题,有什么优缺点?

有趣的观点:

关于“分布式系统”的定义,《分布式系统原理和范型》一书中是这样定义分布式系统的:“分布式系统是若干独立计算机的集合,这些计算机对于用户来说就像是单个相关系统”。关于这个定义,我们直观的感受就是:首先,这种系统相对来说比较牛逼,起码由好几台主机组成。以谷歌、亚马逊等服务商而言,他们的数据中心都由上万台主机支撑起来的。其次,虽然很牛逼,但对于外人来说,是感觉不到这些主机的存在。也就是说,我们只看到是一个系统在运作。

"宕机事件"为例,平时,我们压根不知道所提供的服务背后是由多少台主机组成,但是等到宕机才知道,是多么严重的事故。从进程角度看,两个程序分别运行在两个台主机的进程上,它们相互协作最终完成同一个服务(或者功能),那么理论上这两个程序所组成的系统,也可以称作是“分布式系统”。当然,这个两个程序可以是不同的程序,也可以是相同的程序。如果是相同的程序,我们又可以称之为“集群”。所谓集群,就是将相同的程序,通过不断横向扩展,以提高服务能力的方式。“分布式系统”和“集群”的定义够都简单吧。分布式系统有哪些优势那么,为啥我们要用分布式系统?说起分布式系统,我们就不得不说下分布式系统的祖先——集中式系统。集中式系统跟分布式系统是完全相反的两个概念。集中式系统就是把所有的程序、功能都集中到一台主机上,从而往外提供服务的方式。集中式系统最容易理解了。比如,我们主机的PC电脑,或者手机,我们把各种软件都安装在一台机子上,当我需要什么功能,我就从这台机子上去获取。再比如,我们在学生时代做的课程设计或者开发时的小应用,我们把Web服务器、数据库等都会安装到一台电脑上。好处是,易于理解、方便维护,想要的东西我都放到了一个地方,东西好找啊。当然弊端也是显而易见的,如果这台机子崩了,或者硬盘坏了,那相当与整个系统就奔溃了,而且如果备份也是在这个硬盘上,那相当于招了灭顶之灾。

有个名言,就是“不要把鸡蛋放在一个篮子里”。对于系统而言也是如此。厂商的机子不可能永远保证永远不坏,我们也无法保证黑客不会来对我们的系统搞基,最为关键的是,我们自己无法保证自己的程序不会出bug。所以问题无法避免,错误也不可避免。我们只能鸡蛋分散到不同的篮子里,来减轻一锅端的风险。这就是为什么需要分布式系统的原因。使用分布式系统的另外一个理由是可扩展性。毕竟任何主机(哪怕是小型机、超级计算机)都会有性能的极限。而分布式系统可以通过不断扩张主机的数量以实现横向水平性能的扩展。

————社区用户:bucai

有趣的观点:

我自己的理解:分布式系统能广为人知,跟社会的发展脱不了干系,每年的网民数量在逐步递增,随即带来的就是访问量以及数据量的问题,以前的单体架构不足以满足社会的发展,分布式系统存在的意义就是解决这样的事情,高并发、高可用、高、高性能,这也是常说的三高;至于优点前面已经说了,缺点的话我个人理解是取决于物理因素了,比如网络带宽等等,也会因为一些环境架构原因,通常最让人头疼的优化就是实时数据更新的问题

————社区用户:小乘字节

Vue 可以在一个项目中使用多个 UI 框架吗?

话题发起人:mmkk_ccvv

Vue的UI框架有ElementUI, AntUI 等,可以在一个项目中使用多个UI框架吗?

有趣的观点:

先说明:没问题,但是不推荐。

有几点考虑:

全局样式不同。会导致冲突,虽然可能很少,但是只要出现一个,就会很烦。

站点 UI 设计通常是基于一个组件库。多个组件的风格混合会让呈现效果显得格格不入,因为每套组件库都有自己一套设计模式,组合使用效果更佳。

组件齐全。当前来说,应该不会出现组件不够用,要去隔壁借一个用的场景,真出现了,那么可以考虑那种,专门做一种组件的插件,会更加专业。

————社区用户:YangFong

有趣的观点:

可以,但完全没有必要。

首先一个UI框架打包下来,即使按需加载,再怎么也得100K往上了。你用几个框架,打出来的包会相当大。

不同UI框架使用的CSS预编译不同,有些是less,有些是scss,混用会相当混乱,并且你必须安装两个loader。无形之中你的开发环境会变得非常臃肿。

设计语言不同,不同的UI框架遵循的设计语言和规范不同,容易出现放在一起不和谐的情况。

主题换肤功能不好做,需要统一两个框架的换肤方式。比如Ant Design可以直接用less.js换肤,但是Quasar是scss,没法通用。

可能引起样式冲突。

————社区用户:Gomi

大厂上线流程:是先上前端,还是先上后端?怎么保证平滑上线?

话题发起人:孟思行

1、如果先上前端,还没上后端,就请求不到新的接口。

2、如果先上后端,还没上前端,使用老接口的页面可能会报错。

有趣的观点:

一般情况都是后端先上线,这样现网对上线的感知也是最小的。毕竟前端上线之后,客户有了交互的界面,配合早已发布的后端环境,可以流畅体验新功能。

————社区用户:这个杀手不太冷静

有趣的观点:

如果是一个新项目,无所谓前后端先上后上

如果是老项目,在开发的时候,就该考虑到比如接口的兼容性了,然后后端先上线,然后前端上线。

————社区用户:冴羽

有趣的观点:

正常情况后端->bff->前端,如果是特殊情况比如前后端没有关联,先后上线不影响线上功能等就可以不关注顺序,想怎么上就怎么上。

还有一种情况就是没有规范的小公司了,可能是线上流量不大不在乎宕机就可以不关注上线顺序。

————社区用户:bucai

相关文章
|
18天前
|
前端开发 JavaScript 开发者
颠覆传统:React框架如何引领前端开发的革命性变革
【10月更文挑战第32天】本文以问答形式探讨了React框架的特性和应用。React是一款由Facebook推出的JavaScript库,以其虚拟DOM机制和组件化设计,成为构建高性能单页面应用的理想选择。文章介绍了如何开始一个React项目、组件化思想的体现、性能优化方法、表单处理及路由实现等内容,帮助开发者更好地理解和使用React。
50 9
|
16天前
|
Web App开发 JavaScript 前端开发
深入浅出Node.js后端框架
【10月更文挑战第34天】在数字化时代,后端开发如同一座桥梁,连接着用户界面与数据处理的两端。本文将通过Node.js这一轻量级、高效的平台,带领读者领略后端框架的魅力。我们将从基础概念出发,逐步深入到实战应用,最后探讨如何通过代码示例来巩固学习成果,使读者能够在理论与实践之间架起自己的桥梁。
|
1月前
|
人工智能 前端开发 JavaScript
前端架构思考 :专注于多框架的并存可能并不是唯一的方向 — 探讨大模型时代前端的分层式微前端架构
随着前端技术的发展,微前端架构成为应对复杂大型应用的流行方案,允许多个团队使用不同技术栈并将其模块化集成。然而,这种设计在高交互性需求的应用中存在局限,如音视频处理、AI集成等。本文探讨了传统微前端架构的不足,并提出了一种新的分层式微前端架构,通过展示层与业务层的分离及基于功能的横向拆分,以更好地适应现代前端需求。
|
5天前
|
缓存 负载均衡 JavaScript
构建高效后端服务:Node.js与Express框架实践
在数字化时代的浪潮中,后端服务的重要性不言而喻。本文将通过深入浅出的方式介绍如何利用Node.js及其强大的Express框架来搭建一个高效的后端服务。我们将从零开始,逐步深入,不仅涉及基础的代码编写,更会探讨如何优化性能和处理高并发场景。无论你是后端新手还是希望提高现有技能的开发者,这篇文章都将为你提供宝贵的知识和启示。
|
12天前
|
前端开发 JavaScript API
前端界的秘密武器:掌握这些框架,让你轻松秒杀99%的同行!
前端开发日新月异,掌握几个明星框架如React、Vue.js和Angular,不仅能让工作更得心应手,还能轻松超越同行。React以高效的虚拟DOM和组件化著称;Vue.js简洁易懂,灵活性高;Angular提供全面的解决方案,适合大型应用。此外,轻量级的Svelte也值得关注,其编译时处理设计提升了应用性能。掌握这些框架,结合深刻理解和灵活运用,助你在前端领域脱颖而出。
27 9
|
1月前
|
JavaScript 前端开发 Docker
前端全栈之路Deno篇(二):几行代码打包后接近100M?别慌,带你掌握Deno2.0的安装到项目构建全流程、剖析构建物并了解其好处
在使用 Deno 构建项目时,生成的可执行文件体积较大,通常接近 100 MB,而 Node.js 构建的项目体积则要小得多。这是由于 Deno 包含了完整的 V8 引擎和运行时,使其能够在目标设备上独立运行,无需额外安装依赖。尽管体积较大,但 Deno 提供了更好的安全性和部署便利性。通过裁剪功能、使用压缩工具等方法,可以优化可执行文件的体积。
115 3
前端全栈之路Deno篇(二):几行代码打包后接近100M?别慌,带你掌握Deno2.0的安装到项目构建全流程、剖析构建物并了解其好处
|
20天前
|
前端开发 Unix 测试技术
揭秘!前端大牛们如何高效管理项目,确保按时交付高质量作品!
【10月更文挑战第30天】前端开发项目涉及从需求分析到最终交付的多个环节。本文解答了如何制定合理项目计划、提高团队协作效率、确保代码质量和应对项目风险等问题,帮助你学习前端大牛们的项目管理技巧,确保按时交付高质量的作品。
31 2
|
30天前
|
JavaScript 前端开发 测试技术
前端全栈之路Deno篇(五):如何快速创建 WebSocket 服务端应用 + 客户端应用 - 可能是2025最佳的Websocket全栈实时应用框架
本文介绍了如何使用Deno 2.0快速构建WebSocket全栈应用,包括服务端和客户端的创建。通过一个简单的代码示例,展示了Deno在WebSocket实现中的便捷与强大,无需额外依赖,即可轻松搭建具备基本功能的WebSocket应用。Deno 2.0被认为是最佳的WebSocket全栈应用JS运行时,适合全栈开发者学习和使用。
103 7
|
29天前
|
Web App开发 JavaScript 中间件
构建高效后端服务:Node.js与Express框架的完美结合
【10月更文挑战第21天】本文将引导你走进Node.js和Express框架的世界,探索它们如何共同打造一个高效、可扩展的后端服务。通过深入浅出的解释和实际代码示例,我们将一起理解这一组合的魅力所在,并学习如何利用它们来构建现代Web应用。
48 1
|
30天前
|
缓存 前端开发 JavaScript
前端serverless探索之组件单独部署时,利用rxjs实现业务状态与vue-react-angular等框架的响应式状态映射
本文深入探讨了如何将RxJS与Vue、React、Angular三大前端框架进行集成,通过抽象出辅助方法`useRx`和`pushPipe`,实现跨框架的状态管理。具体介绍了各框架的响应式机制,展示了如何将RxJS的Observable对象转化为框架的响应式数据,并通过示例代码演示了使用方法。此外,还讨论了全局状态源与WebComponent的部署优化,以及一些实践中的改进点。这些方法不仅简化了异步编程,还提升了代码的可读性和可维护性。
下一篇
无影云桌面