前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >React 毁了 Web 开发!

React 毁了 Web 开发!

作者头像
开发者技术前线
发布2021-07-23 10:58:35
7620
发布2021-07-23 10:58:35
举报
文章被收录于专栏:开发者技术前线

以下为译文:

React 是一个很好的库,对于Web开发很重要,因为它引入了声明式与反应式模板,这在当时是每个人都需要的范式转变。当时(也就是6~7年前),我们面临着需要的范式转变的问题,而React 很好地解决了这个问题。

另外提一句,在React之前,Ember也解决了同样的问题。然而,它的性能并不那么好,而且该框架规定了太多东西,远不如React。

然而,React在开始流行之后,发展变得一团糟。React社区中开启了一种新趋势,一切都围绕着炒作、新奇和创造新范式的转变。每隔几个月就会涌现一些新的库,为我们应该如何编写 React Web 应用程序设定新标准,同时还会解决大部分已经解决的问题。

下面,我们以“状态管理”为例来说明。由于 React 缺少传统的依赖注入系统(DI 是通过组件组合实现的),所以社区不得不自己解决这个问题。然而,后来就变成了一遍又一遍地解决这个问题,每年都会带来一套新的标准。

React 只是一个渲染引擎,在常见的Web应用程序中,你需要使用很多库来构建项目的框架,例如数据层、状态管理、路由、资产捆绑器等。

React 背后的生态系统给了你太多这样的选择,而这个技术栈也因此而变得支离破碎,并引发了著名的“Javascript 疲劳”。

此外,还涌现了一种趋势:“框架比较热潮”。各个JS框架之间经常会展开渲染速度以及内存占用等属性的比较。其实,这些因素在大多数情况下根本无关紧要,因为应用的速度缓慢并不是由于JS框架的速度过慢而引起的,而是因为糟糕的代码。

然而,就像世界上所有的趋势一样,这个趋势有点过,甚至危及了新一代的 Web 开发人员。我就在想,为什么一个库能成为Web开发人员简历中最耀眼的技术?更糟糕的是,它甚至算不上一个库,只不过是库中的一个模块。人们常常将 React hook视为一项“技术”,甚至可以与代码重构或代码审查等实际技术相提并论。

认真地说,我们什么时候才能停止吹捧这种技术?

比如说,你为什么不告诉我,你知道:

如何编写简单易读的代码

不要向我炫耀你掌握了某个GitHub上获得星星数最多的库;而是给我展示一两个优秀的代码片段。

如何管理状态

不要讨论某个流行的状态管理库,而是告诉我为什么“数据应该下降而动作应该上升”。或者说,为什么应该在创建的地方修改状态,而不是组件层次结构中更深的地方。

如何测试代码

不要告诉我你知道 Jest 或 QUnit,而是解释一下为什么很难自动化端到端的测试,以及为什么最低程度的渲染测试只需付出10%的努力,却能带来90%的好处。

如何发布代码

不要告诉我你使用 CI/CD(因为如今每个项目里的成员都不止一个人),而是解释为什么部署和发布应该分离,这样新功能就不会影响到已有功能,而且还可以远程启动新功能。

如何编写可审查的代码

不要说你是一名“团队成员”,而是告诉我代码审查对审查者来说同样困难,而且你知道如何优化PR才能提高可读性和清晰度。

如何建立稳固的项目标准

除非团队中只有你一个人,否则你就必须遵守项目中的标准和惯例。你应该告诉我命名很难,而且变量的范围越广,投入到命名中的时间就应该越多。

如何审核别人的代码

因为代码审查可确保产品质量、减少bug和技术债务、共同建立团队知识等等,但前提是将代码审核贯彻到底。代码审查不应该只是自上而下的活动。对于经验不足的团队成员来说,这是一个很好的学习机制。

如何在JS框架中找到自己的方式

这与GitHub上的星星数量无关,你应该学习如今大多数 JS 框架都拥有的共同原则。了解其他框架的优缺点可以让你更好地了解自己选择的框架。

如何建立最小化可行产品

技术只是制造产品的工具,而不是流程。与其将时间浪费在技术争论上,还不如花点时间优化流程。

如何优化:不要太早,也不要太晚

因为在大多数情况下根本不需要优化。

如何结对编程

因为结对编程与代码审查一样,这是最重要的共享知识和建立团队凝聚力的实践。而且也很有意思!

如何持续重构

因为每个项目都有技术债务,你应该停止抱怨,并开始重构。每次开发新功能之前都应该进行小型代码重构。大规模的重构和重写永远不会有好结果。

以上就是我认为 React 毁了 Web 开发的原因。很多人对这一说法很感兴趣,并热切地加入了辩论。如果你认为React 并没有那么糟糕,请在下方留言。

现在的大前端时代,是一个动荡纷争的时代,江湖中已经分成了很多门派,主要以Vue,React还有Angular为首,形成前端框架三足鼎立的局势。Vue在前端框架中的地位就像曾经的 jQuery,由于其简单易懂、开发效率高,已经成为了前端工程师必不可少的技能之一。

Vue 越来越受欢迎了。使用 Vue 会让人感到身心愉悦,它同时具备 Angular 和 React 的优点,轻量级,api 简单,文档齐全,简单强大,麻雀虽小五脏俱全。

《Vue开发实战》视频课里,讲师唐金州会跟你基于 Vue 去开发一个完整的大型开源项目 Ant Design Pro,从开发、测试、打包构建到最终的上线,并努力将它打造成一个万星项目,让你具备独立负责 Vue 前端项目的能力。

唐金州是开源组件库 Ant Design Vue 的作者,这一组件库已纳入 Ant Design 官方域名下,成为蚂蚁金服 Ant Design 官方唯一指定的 Vue 版组件库。他曾就职于蚂蚁金服、搜狗、一点资讯,负责前端相关开发工作,对中后台和移动端都有丰富的开发经验。

无论是 BAT 等大厂,还是小型初创公司,Vue 都有着广泛的应用,其相关技术原理也是面试的必考知识点。可以说,对任何一个前端工程师来说,掌握 Vue 更像是一门“必修课”。

Vue 的优势太过明显:基于 HTML 的模板语法,响应式的更新机制,可以让我们更快、更高效地开发项目;渐进式的开发理念和繁荣的生态圈,也给大家带来了超多的实践体验。

小到简单的活动页,大到复杂逻辑的中后台系统,Vue 都能轻松应对。

但,想要真正用好 Vue ,却没想象中容易。估计很多朋友在学习和使用 Vue 时,都有过类似下面的困境:

  • 概念过多,记不住。属性、事件、插槽、指令、修饰符...,开发还要现场翻文档;
  • 做不到真正数据驱动,用各种 hack 方法更改视图,不断给项目挖坑;
  • 状态管理不合理,不知道如何组织 Vue 中的 data、provide、vuex、observable等;
  • 大型项目无从下手。有单页面、多页面、前后端分离、mock 联调、构建、打包、单测、持续集成等,系统掌握很费力。

我在开发过程中,也总会遇到奇奇怪怪的问题,稀里糊涂地解决,再次遇到相似的问题,手忙脚乱不知从何入手。作为一名前端工程师,在遇到问题的时候,我们能否准确定位问题的原因并及时解决,主要取决于我们对前端框架的理解是否足够深入。

说实话,这几年 Vue 资料没少看,但真正有体系的却不多,唐金州的视频课《Vue开发实战》算是一个,给我启发很大,分享一份他总结的 Vue 核心知识图谱,把零散的概念系统地整理在一起,是我的压箱底存货:

跟着学下来,不仅让我对 Vue 的理解上了一个新高度,还拓宽了视野。字里行间都能感受到唐哥扎实的知识体系,从原理到实践都清晰明了,弥补了我零散的知识框架,上线那会儿还是追着更新看的,后来又二刷了一遍。

方法用对事半功倍,这次我是感受到了。唐金州这个视频课,是我看过最好的 vue 教程,口碑也不错,已有快 20,000 人订阅了。马上要恢复原价 ¥129,现破 2W 订阅特惠仅 ¥89,这里推荐给你。

拼团+口令「 vuekaifa6 」立省 ¥40 原价 ¥129,口令仅「前 50 人」有效

唐金州,就职于一点资讯,负责数据中心的前端开发和管理工作,同时也是开源组件库 Ant Design Vue 的作者。

在加入一点资讯之前,曾就职于搜狗、蚂蚁金服,同样负责前端相关的开发工作,并对中后台和移动端都有丰富的开发经验。

2017 年,开始开发基于 Ant Design 这一设计语言的 Vue 组件库,组件库开源后获得了众多好评,现已纳入 Ant Design 官方域名,成为了蚂蚁金服 Ant Design 官方唯一指定的 Vue 版组件库。

视频里干货还有很多,大家可以试读一下,这里篇幅有限,就不一一展开了。整体读下来,内容完整详尽,帮你在掌握 Vue 技术原理及应用的同时,通过实战项目打通前端工程化全链路技能点,对应的案例和工具也相当丰富。课程口碑也不错,截了些评价供你参考。

课程将从以下几个方向入手?

1.Vue 核心知识点及实现原理

从属性、事件、插槽、指令再到生命周期,让你学完后对 Vue 有一个全面的认识,可以上手开发基本的组件,甚至是负责项目中独立的模块。

2.一个完整的 Vue 项目+实战习题

基于 Vue 去开发一个完整的大型开源项目 Ant Design Pro,从开发、测试、打包构建到最终的上线,并努力将它打造成一个万星项目,帮你构建更全面的前端知识体系。

3.Vue 3.0 最新消息

基于 Vue 2.6 最新版本的语法进行开发,无缝对接即将到来的 3.0 版本,3.0 版本正式发布后,我会在第一时间补充 3.0 相关知识点,保证大家能够快速的享受新版本带来的优势。

相信你学完这门课程,不仅能够掌握 Vue 的技术应用, 也会对其底层原理有所了解,并通过实战项目,具备独立负责 Vue 前端项目的能力。

代码语言:javascript
复制
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-07-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 开发者技术前线 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
持续集成
CODING 持续集成(CODING Continuous Integration,CODING-CI)全面兼容 Jenkins 的持续集成服务,支持 Java、Python、NodeJS 等所有主流语言,并且支持 Docker 镜像的构建。图形化编排,高配集群多 Job 并行构建全面提速您的构建任务。支持主流的 Git 代码仓库,包括 CODING 代码托管、GitHub、GitLab 等。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档