React Ruined Web开发

2021-06-21 19:39:20

上周我参加了.debug,一个开发人员会议,我公司举办展位。这个想法是有一个“改变我的思想”的设置,在那里我们代表着一个激进的想法,邀请人们与我们辩论,并告诉他们我们在生产力方面建立一些有趣的东西。

除了笑话,反应是一个精美的图书馆。它在Web开发中很重要,因为它引入了声明性和无功模板,这是当时需要的一个范式转变。渲染引擎和反应性的问题发生了问题,然后(6或7年前),并反应它很好。

作为侧面,ember早些时候解决了同样的问题。但是,它并不是表演,而且框架太为自以为是赶上反应所做的方式。

在反应越来越受欢迎之后发生了什么乱七八糟。它在社区中开始了新的趋势,一切都围绕着炒作,新奇,创造了新的范式转变。每隔几个月都有新兴的图书馆出现了新的图书馆,制定了如何编写React Web Apps的新标准,但解决最多的解决问题 - 已经解决了。

让我们以“国家管理”为例。由于反应缺少传统的依赖注入系统(DI通过组成成分实现),因此社区必须自己解决这个问题。它确实如此。一遍又一遍。每个新年带来了一套新的标准。

React只是一个渲染引擎,并且在典型的Web应用程序中,您需要许多库来构建项目的框架 - 例如,数据层,状态管理,路由,资产捆绑程序等。

反应背后的生态系统给了你这个排序的太多选择,这是一个碎片的技术堆栈并导致臭名昭着的“JavaScript疲劳”。

也出现的趋势之一是“框架比较痴迷”。与渲染速度和内存足迹等属性不断进行js框架。大部分时间都是无关紧要的,因为慢速应用不是由慢的JS框架引起的,这是由坏代码引起的。

与占领世界的每一个趋势一样 - 这一个走得太远了,损坏了新的网上开发人员。我想知道一个如何对普通Web开发人员的简历成为最相关的技能?更糟糕的是,它甚至不是一个图书馆,而是该库中的模块。反应钩更常用为“技能”,而不是代码重构或代码审查等一些实际技能。

......不是通过提到GitHub上最具出售的图书馆,而是通过向我展示一两个最好的片段。

......不是通过提到一个流行的国家管理库(最好以“x”结尾),而是通过告诉我为什么“数据应该下降和行动应该上升”。或者为什么应该修改状态在创建并且在组件层次结构中更深的情况下修改状态。

......不是通过告诉我你知道jest或qunit,而是通过解释为什么难以自动化的端到端测试,并且为什么最小的有意义的渲染测试是10%的努力和90%的利益。

......不是通过提到你使用CI / CD(如今的每个其他项目都有多于一个人的工作),但通过解释部署和发布应该是分开的,所以您应该以没有的方式编码新的东西用旧的东西混乱,可以远程打开。

......不是通过提到你是一个“团队球员”,而是通过告诉我代码审查在审稿人的一边,你知道如何优化你的PRS以获得可读性和清晰度。

...因为除非你是一个人乐队,否则如果你不遵守项目中的严格标准和公约,否则你会讨厌你的生活。你应该告诉我命名是艰难的,更广泛的变量的范围,你应该投资的时间越多,就会有一个好名字。

...因为代码审查确保产品质量,减少错误和技术债务,建立共同的团队知识,更多 - 但仅在彻底完成。代码审查不仅要自上而下。这是一个越来越经验丰富的团队成员的学习机制。

...因为它不是关于Github Stars,它是关于大多数今天的JS框架分享的共同原则。了解其他框架的优缺点使您了解您的选择框架更好。

...因为技术只是制造产品的工具,而不是工艺。花时间优化这个过程总是比花时间更好地争论技术。

...因为配对编程是代码审查,知识共享和建筑团队凝聚力最重要的做法。这也很有趣!

...因为每个项目都有技术债务,你应该停止抱怨它并开始重构。每个新功能都应在次要代码重构之前。重构或重写永远不会好转。

所以是的,这就是为什么我认为反应破坏了Web发展。会议的人们受到索赔的兴趣,并热切地加入了辩论。我与少数经验丰富的反应开发人员进行了良好的谈话。没有人同意这篇文章的标题,说“毁了”太强大了。但大多数人都同意本文中讨论的问题。

你可以试图说服我反应不是那么糟糕,我会绝对同意你的看法! 😄 但相反,让我们辩论更重要的主题 - 我们实际做的工作是软件工程师的工作。