如何通俗地理解「分布式系统」;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

相关文章
|
11天前
|
前端开发 JavaScript
前端项目公共组件封装思想
该文介绍了如何封装通用组件,如表单搜索、表格展示和分页器。首先,通过抽离出公共部分,创建`TableContainer`组件,利用具名插槽插入`navbar`和`table`,并通过props传递标题。然后在父组件中使用具名插槽和子组件实现具体功能。文中还展示了更复杂的组件封装示例,通过props实现数据双向绑定,以`el-pagination`为例,利用`sync`修饰符和`computed`属性监听并更新父组件状态,实现分页功能。文章最后提到了内容来源于哪。
|
15天前
|
存储 JavaScript 前端开发
使用Vue.js构建交互式前端界面的技术探索
【5月更文挑战第20天】Vue.js是一款渐进式JavaScript框架,擅长构建交互式前端界面。其核心特性包括响应式数据绑定、组件化开发、指令系统和虚拟DOM,简化开发并提升性能。通过Vue CLI创建项目,拆分组件,结合数据绑定和事件处理实现交互,使用Vue Router管理路由,Vuex进行状态管理,能高效构建现代Web应用。
|
3天前
|
分布式计算 Hadoop 大数据
分布式计算框架比较:Hadoop、Spark 与 Flink
【5月更文挑战第31天】Hadoop是大数据处理的开创性框架,专注于大规模批量数据处理,具有高扩展性和容错性。然而,它在实时任务上表现不足。以下是一个简单的Hadoop MapReduce的WordCount程序示例,展示如何统计文本中单词出现次数。
20 0
|
6天前
|
前端开发 JavaScript
前端综合练手小项目
前端综合练手小项目
|
6天前
|
分布式计算 网络协议 大数据
基于C++的分布式计算框架设计与实现
基于C++的分布式计算框架设计与实现
30 2
|
11天前
|
JavaScript 前端开发 NoSQL
构建基于Node.js的全栈应用:从前端到后端的完整指南
【5月更文挑战第24天】本文是关于使用Node.js构建全栈应用的指南,涵盖前端(React或Vue)、后端(Node.js + Express)和数据库(MongoDB)的选型与实现。文章介绍了项目结构、前端组件化开发、后端API接口编写、前后端联调及部署上线的注意事项,帮助读者掌握全栈开发流程。
|
12天前
|
移动开发 JavaScript 前端开发
【热门话题】Vue.js:现代前端开发的轻量级框架之旅
Vue.js,由尤雨溪于2014年创建,是一个轻量级的前端框架,因其简洁API、高效渲染和组件系统深受全球开发者喜爱。本文探讨Vue的核心理念、技术架构、开发实践及在现代Web开发中的应用。Vue遵循渐进式框架思想,提供声明式编程、组件化和响应式数据绑定。技术上,它采用双向数据绑定、虚拟DOM和生命周期钩子。开发实践中,Vue CLI和Vuex、Vue Router分别加速开发和管理状态、路由。Vue不仅适用于单页应用,还支持多页应用、移动开发和跨平台项目,拥有丰富的社区生态和插件。随着Vue 3的推出,Vue将持续创新并影响前端开发领域。
46 0
|
13天前
|
前端开发 JavaScript Java
web 技术中前端和后端交互过程
客户端:上网过程中,负责浏览资源的电脑,叫客户端
26 0
|
13天前
|
缓存 前端开发 JavaScript
微前端框架开发实践的体验报告
微前端架构作为一种解决方案,通过将应用拆分成更小、更易于管理的子应用来提高开发效率和应用性能。本文将分享我在开发微前端框架过程中遇到的问题、解决思路以及具体方案。通过本次微前端框架的开发实践,我们成功实现了应用的解耦和性能的提升。关键点包括跨域问题的解决、路由分发的实现、沙箱和样式隔离的技术应用、通信机制的构建以及性能优化策略的采用。我们的成果是建立了一个高效、可扩展、易于维护的微前端架构。同时,我们也认识到了微前端架构的复杂性,以及在实施过程中需要考虑的诸多细节问题。
58 0
|
14天前
|
SQL 分布式计算 Hadoop
Spark分布式内存计算框架
Spark分布式内存计算框架
34 0