为什么前端开发这么不稳定?

更新日期: 2019-06-04 阅读: 3.1k 标签: 前端

我们都有这样的经历:当学习了一种前端技术的时候,同时会有几种新的前端技术诞生。 还有,你选择的那种前端技术,也许已经过时了。然而我们似乎也从来没有关注为什么会这样。

典型的解释似乎是 web 开发者天生不耐烦,永远追求最前沿的技术,赶时髦。总的来说:前端技术更迭如此之快是整个开发者社区的不明智(而你的不明智行为完全取决于你无法控制的因素)。

不管真实原因是否是这样,前端开发确实存在这样的问题。


前端开发有多不稳定?

在探讨原因之前,有必要验证这个问题是否真实。 前端技术是否真的变化如此之快?

考虑一下 Github 上星号最多的 JavaScript 前端技术列表:

+------------------------------------------------------------+
| Library          | Stars   | Released       | Age          |
|------------------------------------------------------------+
| react            | 96986   | March 2015     | 3 years      |
| vue              | 95727   | October 2015   | 2.5 years    |
| angular (1)      | 58531   | October 2010   | 7.5 years    |
| jquery           | 49061   | August 2006    | 11 years     |
| Angular (2+)     | 36665   | December 2015  | 2.5 years    |
| Backbone         | 27194   | October 2010   | 7.5 years    |
| Polymer          | 19668   | May 2015       | 3 years      |
| Ember            | 19003   | December 2011  | 6.5 years    |
| Aurelia          | 10506   | June 2016      | 2 years      |
| Knockout         | 8894    | July 2010      | 8 years      |
+------------------------------------------------------------+

最短的 2.5 年也不是那么久 - 不到传统桌面系统迭代周期的一半,这足以说明问题。 那么是什么原因导致了这种快速的,甚至是不可持续的变化?


React

造成这个问题的原因可能是 React。 作为一款功能强大的工具,它需要大量的辅助模块和支持库,而这正是问题出现的地方。React 社区是一个很大的微型库架构组织,其中应用程序由许多独立的单一功能 JavaScript 库组成,该架构是为了致敬 Unix 哲学。

这种架构的优势在于,随着新的实践的出现,可以轻松地进行调整,这对快速创新(如过去几年一样)是有意义的。 缺点是增加了变化的影响范围,并且需要大量的审查。

这就是我的核心观点:JavaScript 的问题不在于语言,网络或其他任何特定技术,而是选择的架构无法让开发者跟上变化趋势。


npm 问题

现代 JavaScript 最大的资产是 NPM。它提供了大量的模块,可以满足任何人的特定需求,但是很难过滤和决策。哪些库真的被支持?哪些库的功能是正确的?哪些不是有恶意的库? JavaScript 开发人员真正作为唯一的参考标准就是流行度 - 下载数量和 star 数量 - 这加速了库的传播。

当然,还有其他验证库的方法:可以通过 Github 问题阅读并搜索 StackOverflow。你可以做一些测试,甚至自己检查源代码。但是这需要很多时间。

这是 JavaScript 开发人员的弱点。作为一名面试官,我经常会问面试者是如何选择技术,但回答往往让我失望,因为知名度几乎总是他们选择某个库的唯一标准。软件工程至少部分是研究工作,我们需要培养初级程序员的研究能力。但即使这样做了,这些可能性仍然会出现在他们身上。


设想成为一名初级开发人员

把自己设想为一个初级到中级的 JavaScript 开发者,首次编写一个新的应用程序。

从完全空白,这让事情变得简单。你很佛系,所以从选择一个简单的框架开始。听起来不错(这也是你的唯一选择)。

作为准系统它没有什么作用,所以选择辅助库的任务落在你肩上。如果你在做前端工作,它可能是 Redux 的表单和 api 请求的库。如果是后端,它可能是 Express 的中间件。

然后你开始搜索,搜索结果中的一篇来自 Medium(译注:博客网站) 的博客推荐 X.js。该博客的作者是 X,但她从未表明这种特殊的利益冲突。Medium 上所有的博客都一样,所以永远不能用知名度来作为我们的参考标准。

你错过了指出了 X.js 中的一些重要不足之处的答复,因为 Medium 在有意忽略。然后继续搜索,发现了 Y.js.

这次你在 Twitter 上找到一个链接 - 超过一百个点赞!这应该值得信赖了吧,毕竟这么多人为自己"把关"了。你在感谢中点了个赞,然后跳转到了 Github 的链接。

但不是那么快。这个链接太老了 - 该库现已弃用。你可以看出,DEPRECATED 这个词无处不在,十分醒目。

Y.js 是“面向对象”的。你认为这是一件好事,隐约回想起 ComSci 第一年关于 Smalltalk 和消息传递的一些东西。但显然这是非常糟糕的。

另一篇 Medium 上的博客试图解释为什么,虽然推理有些模糊,并且用你不认识的密集术语来包装。后来事实证明,这个术语是由该博客的作者发明的,文中权威的参考链接也来自他自己的博客。

更糟糕的是,该帖称,即使在 JavaScript 面试中提到 OOP 也会使你完全失业!你现在已经迷失方向了。值得庆幸的是 - 有他的 $ 50 美元的 JavaScript web 开发课程。你很庆幸找到这么好的资源,记下了链接,并点了赞。

所以,你将转向 Z.js,这个库有更多的 star,文档似乎不太有用。 尽管列出了很多方法,但如何实际使用? 至少看到它使用了一种叫做“标准 JS”的东西,你认为它与 ECMA 标准委员会有关? 其实并没有。

但怎样才能避免这些坑呢? 谁来帮助你避免采坑? 高级开发人员也正在学习。 我们都卷入了追求最新技术,追赶潮流的旋涡中,只是为了保持最新并保持就业。

所以,你采取了看似最可靠的标准:Github 项目 star 最多。 这就是为什么 JavaScript 开发受到随波逐流的影响。


应该怎么做?

像大多数抱怨者一样,我只想表达不满,而不是解决它们。 但我有一些想法:

警惕 Medium

Medium 上有点难以区分权威内容。以前博客允许优秀的作者创建自己的视觉主题,帮助访问者识别之前帮助过他们的来源。

警惕自我推销

在过去的几年里,JavaScript 世界出现了激进的自我营销,这可能是因为付费在线培训材料的兴起以及作为 Github名人的就业、咨询优势。

我对好的内容没有任何问题,但也出现了很多不诚实的手段:自我引用 ,发明专有术语(例如'Standard.js')

考虑非微型库架构

尝试能提供大面积的功能,并且不需要很多插件来提高生产力的框架来开始你的项目 - 这将立即减少变化的影响范围。 这是我对 Vue.js 非常感兴趣的原因之一。 您也可以将 React 用作入门工具包或较大框架的一部分,如 Next。

不要过分满足无理需求

唯一需要知道整个公司技术栈细节的是自由身承包商,他们获得了可观的工资来完成项目。 否则,大多数雇主不需要你了解最新 React 的细节。 所以,避免学习所有东西的要求:大部分都是没用的。


原文链接http://www.breck-mckye.com/blog/2018/05/why-is-front-end-development-so-unstable/


本文内容仅供个人学习、研究或参考使用,不构成任何形式的决策建议、专业指导或法律依据。未经授权,禁止任何单位或个人以商业售卖、虚假宣传、侵权传播等非学习研究目的使用本文内容。如需分享或转载,请保留原文来源信息,不得篡改、删减内容或侵犯相关权益。感谢您的理解与支持!

链接: https://fly63.com/article/detial/3547

相关推荐

前端和后端的区别_为什么很多人选择前端?

什么是前端什么是后端,前端开发和后台开发是有区别的,工作的内容和负责的东西是完全的不同的,下面简单说一下:前端更容易入门,每天调整界面的展示,通过代码 完成优美的界面和酷炫的交互。后端入门稍困难,每天关注的是业务逻辑的处理,数据的增删改查,性能的优化

掘金前端课程(小册)推荐

大家好,本期内容给大家推荐一些优质的前端掘金课程,比较适合初学者及工作几年的前端小伙伴,里面的内容讲解的比较详细,作者也是一线的大厂工作者。有兴趣的小伙伴快来打卡看一下吧

什么是前端? web1.0、web2.0时代的网页制作,前端开发都有哪些内容等

前端基础-什么是前端:一、 web1.0时代的网页制作,二、 web2.0时代的前端开发,三、 Web前端能做什么?四、 为什么要学习前端开发,五、 前端开发都有哪些内容,六、 开发环境

前端开发,如何写出优秀js代码

前端开发如何写出优秀js代码,什么样的javascript代码才是最优秀的的呢?我总结的大概分为三点:性能好,简单优雅,通俗易懂,这篇文章就将围绕这这3点来说明。

解读前端热更新原理

热更新:浏览器的网页通过websocket协议与服务器建立起一个长连接,当服务器的css/js/html进行了修改的时候,服务器会向前端发送一个更新的消息,如果是css或者html发生了改变,网页执行js直接操作dom,局部刷新,如果是js发生了改变,只好刷新整个页面。

前端开发,你的优势是什么?

每个前端开发都要有自己的优势,总结一下我的优势:1、工作年限长、经验多;2、基础相对扎实;3、逻辑思维能力合格;4、业务需求分析能合格。

前端权限控制

权限管理一般分以下 3 个基础概念:功能点,角色,用户。它们之间的关系一句话就能说清楚:一个用户可以拥有多个角色,而一个角色可以包含多个功能。

前端需要了解的后端知识

一名有前端工程师,除了掌握自身知识体系外,在业余时间也应该了解下后端的知识时间,由于前端与后端工作是最最密切相关的,多学习些后端知识对自身也是大有好处的。当然除了上述这些,计算机网络、数据结构和算法、计算机组成和原理、离散数学等知识都要涉及。

女生30 岁转行做前端开发,晚吗?

30岁转行做前端程序开发!请把“晚吗”去掉。50多岁大爷都学编程了。你还担心啥?先从年龄上来说,这个年龄进入IT职业,那是相当棒的黄金时间,有目标,有干劲,有新颖的思想,而且仍是女孩子。

前端常用的新手引导库,总有一款适合你!

在产品发布新版本或者有新功能上线时,经常需要新手引导功能来引导用户了解应用,下面就来分享几个开箱即用的新手引导组件工具库,帮你快速实现新手引导功能!

点击更多...

内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!