我开始接触JavaScript--以及一般的Web开发--时,一切都感觉很脆弱。用jQuery开发整个应用程序感觉是错误的,JavaScript的API(例如DOM API)还不够成熟,缺乏支持性的CSS使得在没有黑客的情况下对准HTML是不可能的,而且总的来说,没有任何工具可以运送高质量的web应用程序。
教育材料的缺乏只是冰山一角,这使得学习JavaScript(或者在学习它的时候主要是jQuery)本身就是一种冒险。没有课程或训练营,只是复制和粘贴Stack Overflow的答案,最终让事情变得可行。
相比之下,我发现现在是成为一名JavaScript开发者的最好时机。JavaScript生态系统每年都在发展--很多人都在抱怨JavaScript一直在变化--然而,我发现它已经到了一个甜蜜的地步,许多库、工具和语言本身都越来越趋于停滞。这是一个完美的机会,可以让你的脚踏入门槛。
JavaScript的基础知识
在进入任何JavaScript框架之前,请确保学习该语言的基础知识。在过去的几年里,随着ES6的出现,JavaScript得到了一些令人兴奋的补充,使该语言更加强大。现在,每年只有少数新增内容进入语言。所以现在是学习现状的好时机。现代JavaScript使开发应用程序变得轻而易举。
例如,React使用了大量的JavaScript。这就是为什么我相信每个React开发者都会自动成为一个更好的JavaScript开发者。因此,无论接下来用JavaScript进行前端或后端开发的框架是什么,一旦你掌握了这门语言,你应该有一个良好的开端。
同时学习 "老 "的JavaScript ES5和带有所有ES6及以上版本的新的JavaScript编写方式是非常有意义的。作为一个初学者,不同种类的JavaScript编写方式可能会令人费解。我的建议是写下不同JavaScript语法的比较。开始学习现代的JavaScript,但仍然要检查在JavaScript ES6之前人们是如何写某些语法的。你也可以反过来做,但不管你怎么做,一定要学习语言的细微差别。有了对JavaScript的良好掌握,接下来的一切都会变得更容易。
JavaScript的前端框架
有很多像Svelte和WebAssembly这样的东西,每隔一天就会推动使用(或不使用)JavaScript的web开发的界限。没有一个星期不宣布关于JavaScript的新东西。这使得这个环境对那些能够跟上它的开发者来说超级兴奋;但对进入这个空间的人来说,它又是一个充满恐惧和不安的地方。初入JavaScript的人常常忽略的是,大多数闪亮的技术并不是日常业务中开发应用程序的现状。
JavaScript社区已经基本确定了React、Angular和Vue。通常情况下,框架的决定只是取决于公司的规模/类型/理念或地理位置。然而,如今所有的框架都在为现代应用提供动力。根据你所在地区(或偏远地区)的就业市场,只需在其中之一上加倍努力。我相信你不可能做错什么。
编程的历史表明,没有哪个框架、库或编程语言能永远保持下去。但目前,我对JavaScript领域的Angular、React和Vue的感觉相当好。 jQuery、Backbone和MooTools没有大公司或个人的支持。但是像Angular(谷歌)和React(Facebook)这样的框架却被许多财富500强公司所使用。从个人经验来看,我也可以看到德国企业公司进入React/Angular市场的巨大转变。
所有这些公司都有一个共同点:他们遇到了这些框架的局限性(如Angular 1.x),但他们已经投入了大量的资源,所以他们和社区确保为这些问题推出解决方案(如Angular 2)。随着应用程序的增长,从一个框架迁移到另一个框架已经不那么容易了。大多数公司都是用他们选择的一个框架来完成他们的任务。在他们做的时候,要加倍注意一个。
JavaScript的后端框架
在Node.js发布后,其生态系统迅速发展。像Express.js这样的几个框架被开发出来,使JavaScript生态系统内的客户端-服务器架构开发成为可能。现在,客户端和服务器之间的通用通信仍然是REST,尽管GraphQL最近得到了更多的关注。
如果你想用Node.js学习后端开发,请加倍关注一个能让你创建客户端-服务器应用程序的框架。如果你能够掌握路由和中间件背后的概念,那么从一个框架跳到另一个框架,事情的实现方式不会有很大变化。Express、Koa和Hapi只是成为具有不同实现细节的工具。
无论如何,Web应用的未来将朝着无服务器的方向发展。你将不需要再自己设置整个服务器应用,但仍要对你的API负责。不过,我觉得目前是一个完美的时机,在一切都进入 "无服务器 "功能之前,仍然可以通过自己建立一个后端服务器来学习客户端-服务器架构的基本Node.js的一切运作方式。
JavaScript的工具化
-
webpack,alt: parcel,没有gulp或grunt了。
-
大多数情况下,你不会看到它的任何东西,因为它已经被抽象掉了。
-
只有一个软件包管理器npm,以前有很多(比如Bower)。
-
typescript正在到来,但它还没有那么流行,所以它仍然是一个开始学习JavaScript的好时间点。你可以在以后选择使用TypeScript。
-
集成开发环境的整合现在正变得流行。不久前,人们还在使用光秃秃的编辑器。
-
很多使用JavaScript长大的开发者在不久之后就开始学习更强大的IDE了。
网络开发中的CSS
- Css(flex box,grid,只需应用一些边距和padding,边框就可以了(见这个简单的GraphQL react应用)。
- JS中的CSS
- 也许是sass,CSS模块,现在不那么流行了
- Deno、Web Assembly、JAMstack、Serverless、TypeScript、GraphQL,首先学习之前的东西应该给你最好的基础,以便在未来寻找闪亮的新东西(或 hackernews)。