原文链接(https://flaviocopes.com/solve-javascript-fatigue/)
直到几个月前,我没办法不带着焦虑去看待JavaScript.
我一定是陷入了所谓的JavaScript疲劳之中,并且无法摆脱。这样的情况持续了数年。
如今,我喜爱JavaScript以及它的生态系统。这是如何做到的呢?
从90年代开始,我就一直在以某种形式使用JavaScript,而且我的书架上有一些如今看起来非常有趣的书籍,里面满是document.write句式的语句。大概在2012到2013年的时候,ES6带给我们的巨大变化无处不在。起初,我无法解决所有正在发生的变化,我无法一次接受如此多的变化。但是JavaScript确实发生了这些变化,后来我只能忍受,我花费了很多时间去正确地学习它,然而与此同时它仍然在变化着。
我发现在博客文章的评论当中存在这样一种论点,它指出”如果您一开始就没有去过那里,那么学习现代JavaScript将会非常困难“:
我会争辩说从一开始就在那(是的,我年纪有这么大了),使得学习现代JavaScript变得更加艰难
我在2012年认真研究了JavaScript和Node.js,但是从来没经历过像ES6那样那样巨大的编程语言更改,先前的重大变化发生在2009年的ES5中。ES6确实改变了一切,这是对JavaScript的巨大改进,以至于每天都有很多东西可以纳入规范,但是您实际上并不知道它们是否会帮助JavaScript获得成功,而且您必须和每个人一样,追赶上在twitter上谈论那些可能是下一件大事的事。
var被留在了尘土中。
function不复存在。
基于原型的继承,花费了很长的时间才学会,但它却消失了,隐藏在诸多的类当中。这只是表面,在过去的几年中,整个JavaScript生态系统发生了巨大的变化。
构建所有的东西
JavaScript领域发生的一大变化就是构建。我们从一个非常简单的事情开始,包括使用带有脚本标签的JavaScript,到构建那些将我们的语言编译成难以理解的大文件的步骤。起初我顽强地抵抗这些。
但是,当Babel来临的时候,我起初也是加倍努力地抵抗但是最后还是投降了,我加入了Babel那一方。我意识到Babel不是一个介绍未来浏览器功能的奇特的库,当这些未来有的功能落地到浏览器上时,我们会忘记Babel,但是不然,在可预见的未来,Babel会一直存在。当ES2017在浏览器中完全落地的时候,Babel将会支持ES2018、ES2019等等的使用。拥抱未来吧,无法逃脱的。Babel是您的朋友。
使用最简单的可选择项
工具是如今JavaScript最难的部分之一,是的,您可以了解有关Webpack的全部知识,但是,当您开始动手,忽略一切并使用现成的技术方案(例如create-react-app)时,React模板将为您隐藏一些小细节,而您只需关注代码本身。
无需更多的版本
ES6太大了,ECMAScript委员会决定下次发布一个较小的版本,这就是为什么ES6也叫做ES2015,并且是该年度的第一个版本,从那年开始,ECMAScript委员会每年发布一个版本.这样会使得我们更加容易赶上那些变化,增加变化内容的时间也有了限制,并且是可预见的时间(默默在心里记住,JavaScript会有更改的)
忽略杂音
如果您像我一样,在twitter上关注一些人,其中某些思想领袖会预测下一件大事,他们说使用X,其他人也用X。可能他们喜欢展示一些还没有成为标准的代码片段,但是可以和浏览器的某些特性一起使用。他们一般会有一个很好的理由去使用那些还没有成为标准的特性,但是你没有,所以不要陷入这些小亮点当中,关注你自己的工作。
不是每周都有新框架
有一个流传的笑话:这个月的JavaScript框架是什么?或者,每周都有一个新的库。是的,有不计其数的人在研究JavaScript,这是非常棒的,正是这些研究,带来了创新和发展,最近几年,JavaScript经历的那些,对于编程语言的生态系统而言是巨大的。但是需要注意的是,重要的事物不会改变的很频繁。
React 6 年了。
Vue 5 年了。
在科技行业,5年是个很长的时间,去学习那些稳定的技术,它们会存留很长时间,不会轻易过时。(您有足够的时间成为这些框架中的任何一个的专家,它们不会很快过时。)
接受事物的变化
任何事情都有生命周期。几年前,到处都在用Jqeury,现在很少有新项目去使用它了。在2013年,Backbone.js用户量巨大。 现在也没人使用了。 CoffeeScript,也一样无人使用了。Ember.js, Angular.js, 和 Meteor的受欢迎程度也维持了数年,现在最受关注的似乎是React,Vue和Angular(与Angular.js不同)。
这些主要框架的生命周期通常持续数年,我仍然有许多Ember.js应用程序可以正常运行,如果它们完成了它们的工作就不需要更新它们,并且我也不打算碰它们。
技术不断发展和成熟,重要的是被使用而不是谈论
使用jQeury并不傻
有些人硬着头皮使用被人鄙视的技术,但是如果你阅读的内容足够多,就会发现鄙视每个人都曾经使用过的技术是不对的。在我长期使用PHP之后,我逐渐习惯了被鄙视,人们批评一些流行的东西是很正常的,即使是Go,它令人赞叹的简单性,有时也会因此被人诟病。某些人对某些事破口大骂在生活中是很常见的。
我必须以Pieter Levels的推文举个例子,他使用PHP建立了一个庞大的独立业务。
作为一个初学者,你可能会碰到有人跟你说你选择了一个没有人再使用的旧技术,你应该使用React。忽略他们,忘掉他们说的这些吧,
记住:
如果它对你有用,那选择它就是正确的
多数情况下,技术是由那些和您或者您的小型团队有着完全不同的需求的巨头公司建立起来的,使用你擅长的技术吧,即使不是先进技术。如今,你可能不需要jQeury,但是用无框架的JavaScript来代替也不是非常好。
另外,过度工程化是需要避免的,不要仅仅因为感到小聪明去使用技术,要更好的去了解它。还要去学习什么时候去使用一个框架或者库能真正的帮助到你。
您无需了解每一个细节,找到你自己的平衡点就行
这貌似很像阅读您的twitter评论,没有人能掌握所有的细节。没有人知道所有在前端领域发生的事情,它们是需要终身学习的,而且也没办法能毕业。
选择有友好文档的技术
React和Vue拥有友好的文档不是偶然的,拥有友好的文档是它们成功的关键
JavaScript将不断进步
去年ECMAScript语言引进了await/async,如今这个特性已经得到了广泛的使用,基于Promise的代码看起来很糟,您会有去修改这些代码的冲动。不要这样做,在您的新代码里使用新特性吧。ES2018今年也会发生同样的情况,每个人都会谈论那些新特性一段时间,后来他们会回到自己的工作当中,继续谈论ES2019的特性。拥抱变化。这比关注停滞甚至快要的技术,陷入无关紧要的事情当中要好的多:JavaScript将继续存在!
学习基本原理,选择您自己的旅程
在web平台上开发需要有不断学习新事物的兴趣,甚至只是找出一些可能性。有时候,在20%的时间里学习所需的80%的东西就足够了,而不必过多地研究边缘情况。
旅程才刚刚开始
相比于其他语言而言,JavaScript非常年轻,它非常受欢迎,在过去的几年间也发生了巨大变化,它每天都吸引着许多有才华的新开发人员,想象到10年或者20年后我们写着JavaScript,这简直太棒了!