- 为什么有人戏称前端娱乐圈?
- 到底是前端难还是后端难?
- 为什么架构师的主流是后端?
- 为什么对核心思想完全一样的 react 还是 vue 讨论的这么多?
对比来看,前端面临计算机基础相关的挑战更少,主要因为前端是单点,并且 js 是封装过的高级语言
-
前端不太需要考虑内存问题、读写性能等问题(前提是不把代码写废的情况下,比如:该异步的没异步、能避免的for 循环嵌套没避免,甚至哪里写出死循环、执行慢的 js 代码阻塞渲染等等),因为前端是单点,后端是并发,按照算法的角度,前端这方面的复杂度是 O1,服务端可以算 On。
-
前端也架构也和后端不是一个量级,也是因为前端只是单点,后端是集群,涉及到很复杂的服务治理。
-
前端也不太需要算法,因为通常前端请求的数据是用来给一个用户提供某些服务、或者内容,一个用户需要浏览上百万条数据的场景并不多见,就算你能优化得出来 浏览器也抗不住,而后端经常要操作几百万、上亿的数据。
-
前端也不太在意数据结构,通常是存个数组还是链表、还是树形结构假设优化掉了 200ms 的延迟,但放在后端 假如有一万个用户,对后端带来的性能提升是 200ms * 1万
-
前端也不需要考虑数据同步问题,就利用浏览器缓存,js 一个线程就可以,操作数据没什么复杂度,而后端为了数据同步可是煞费苦心,什么 数据库集群之间同步、数据库与缓存同步、消息队列、ES,总之怎么存数据可是煞费苦心。
那么前端的挑战到底在哪里呢?
- 需求量大,活就是很多,从而对效率的要求很高。
- 终端很多,js 是一门寄生虫语言,需要配合各种宿主进行功能实现,所以面临的东西很杂。
- 有一定的架构要求,由于项目迭代快、需求多,项目很容易就不可控,所以还是很需要能力的。
- 工程化。
- 用户体验,最常见的前端能控制的用户体验的部分包括,页面渲染性能优化、细节交互优化。
- 对数据的操作逻辑更杂,代码的熵更高,个人感受是在做全栈项目时,前端代码的bug 要远远多于后端代码,后端一顿操作猛如虎,最后输出的就是一坨数据,而前端要对处理 用户高频操作 -> 代码逻辑 -> 界面反馈用户。更多一些的逻辑。
前端与后端对同一词的含义是完全不同的
架构
后端的架构通常数据存储、数据同步、数据通信、并发控制、微服务划分等等服务治理的概念
前端的架构我理解通常是指应用之间的状态管理、快速迭代的工程化架构、再有可能就是代码风格的划分
性能
后端的性能是指数据的访问速度、多少硬件资源承载了多少业务,服务了多少用户
前端的性能是指给予用户更快、更流畅的感受,并且尽可能兼容低性能的网络条件、硬件条件