对于什么是全栈开发者,没有一个明确的定义。不过,有一点可以肯定:2019年对全栈开发者的需求很大。在这篇文章中,我将为你概述一些趋势,你可以根据这些趋势来尝试投资你的时间。
简单来说,全栈开发者就是能够构建完整应用的人。他们了解前端和后端技术、工具和服务,并结合所有这些技能来开发可以在生产环境中运行的东西。

这是2019年美国全栈开发者的薪酬趋势:
工资走势人生苦短,尽量少做无用功。如果你希望保持最新并成为全栈开发者,你需要了解以下2019年趋势。
前端前端
基础
HTML,CSS,Javascript都要掌握。还需要学习React、Vue或Angular等前端框架或库。但是你应该选择哪一个呢?对于真正的全栈开发者来说,2019年可以选择这三个框架中的任意一个。
React 16的更新
你需要了解基于单向数据流架构的React及其组件的基础知识。今年,我们看到了React 16的大量更新和一些将于2019年发布的小更新。
新的生命周期方法;代码分割的暂停;在React 16.6中;带React钩子的16.x版本;16.x版本,带并发模式;16.x版,带有数据提取暂停功能。这意味着你需要知道如何使用React.lazy和代码拆分,使用React.memo进行优化,并关注新功能,如React挂钩,这些功能可能会给React生态系统带来重大变化。
现在我们仍然有标准化的React上下文API,您应该对它有一个基本的了解。
React生态系统将在2019年继续发展和进化。不仅限于网络。在移动、物联网和AR/VR等不同平台上移植和使用React的能力将使其越来越重要,并在2019年领先于其他2个库。
Vue 3.0
2018年,Vue继续受到开发者的青睐,2019年还将继续增长...但是超过另外两大玩家就足够了吗?我们拭目以待。
Vue生态系统是不断发展的。而且,随着Vue 3.0的发布和极其完善的Vue CLI,2019年的开发者体验会比以往更好。
开发者可以使用Vue Native进行跨平台开发。我们已经接近React这样的大型生态系统,但还有很长的路要走。
Vue有一个非常有趣的趋势,它将在2019年继续增长:阿里巴巴、腾讯、小米和DJI等中国科技巨头更喜欢Vue。预计中国市场将继续保持高速增长,因为Vue是一个独立的开源库,与西方大型科技巨头无关。
角状常春藤和角状元素
新的渲染引擎Ivy即将推出,性能会有很大的提升。
Ivy将是Angular渲染引擎的第三个化身,它的目标是成为一个更小、更快、更简单的编译器。
角度元素将使我们能够在除角度之外的其他环境中使用角度组件。简单来说,你可以构建不使用Angular的可以添加到HTML页面的组件,有点像Web组件。现在,我可以使用Angular创建世界上最好的组件,并把它送给我的朋友,她在她的React应用程序中使用它!
2019年,Angular将继续做他们擅长的事情:为构建丰富的Web应用提供全功能框架。
Angular,Vue,React-它会更小更快
总体而言,2019年将会看到这三个前端库的发展。如前所述,只要掌握其中一项,就为新的一年做好了准备。预计在2019年,所有这些库都将进行微小的更改,提高渲染速度,减少库的体积...但它们都不会带来任何压倒其他库的显著改进。
CLI将变得更加流行。
不得不用babel、webpack、eslint、test library等工具搭建项目脚手架的日子已经一去不复返了。我的意思是,我们仍然可以这样做,但CLI确实使这种体验变得更好。
角度CLI创建React App 2;Vue CLI .2019年,我们将在CLI中看到越来越多的改进体验。
状态管理
Vue将继续使用Vuex进行状态管理。Angular会继续以RxJS为主。随着新的上下文API的出现和GraphQL+Apollo的流行,React今年遭遇了一点危机。很长时间以来,Redux第一次被认为不是状态管理的明智选择。你还是需要学习Redux,因为你可以从Redux中学到一些有用的计算机科学原理,比如事件追踪和CQRS。新的上下文API vs Redux vs GraphQL
Apollo内置的离线客户端缓存将使Apollo+GraphQL成为2019年Redux的重要替代方案。新的Context API出来了,很多人称之为Redux Terminator。
2019年,你需要了解这三者,它们是如何工作的,它们可以用来解决什么问题。但是从就业的角度来说,学Redux还是一个不错的选择。
服务器端渲染
服务器端渲染仍然是Javascript领域有待解决的问题。我们知道,单页面应用和客户端渲染很容易造成项目中代码膨胀,需要发送给客户端的Javascript代码太多,可能会影响你的SEO。
有一些方法可以解决这个问题,比如:PRPL模式,prerender.io或者你可以这么想。其实googlebot在抢单页应用方面也没那么差。
目前,如果要执行服务器端渲染,可以使用:
Next.js用于反应;Nuxt.js对于Vue角度通用用于角度。静态页面正在吹一股新潮流。可以看看JAM Stack的一篇文章,题目是:Jamstack vs同构服务器端渲染。
它的主要思想是:预先构建标记,通过使用服务器的API,在客户端成为一个动态的单页应用。这将真正改变2019年的服务器端渲染。我预测会有更多的人使用GatsbyJS这样的工具,而不是自己构建复杂的服务器端渲染逻辑。
Web组件
浏览器采用的Web组件终于越来越接近我们想要的标准了。2019年,我们会看到更多关于Web组件的讨论,但仍然不会达到2019年的临界点。你可以密切关注它们,但不需要花很多时间去掌握如何构建Web组件。
你可以了解React、Angular、Vue和普通HTML的组件,但是很难说Web组件什么时候会被大规模采用,给我们带来重大的好处。
表演
每个人都喜欢谈论性能。2019年,代码拆分可能成为一种标准做法,更多新的优化图像格式将发挥越来越重要的作用。
人们还是会讨厌谷歌的AMP。
2019年你应该学习和准备的是:
针对角度、反应和Vue的特定优化;代码拆分;树山景;只传输必要的Javascript代码;多关注你正在使用的NPM库,尽量缩小库的大小;制定绩效预算;使用CDN和浏览器优先级工具更好地对资源进行优先级排序。艾滋病患者
渐进式网络应用程序在2019年仍将流行,但其最复杂的功能可能不会流行起来。
在大多数情况下,您将使用HTTPS,应用程序外壳和服务工人获得一些额外的离线功能,安全性和性能。您应该学习如何构建PWA,并使用Lighthouse之类的工具来测试它。
Safari终于增加了一些对PWA的支持,可能更容易实现渐进式的Web应用功能。但是说到底,你需要先学会使用manifest.json文件和Service Worker。谷歌正在这方面努力,但不要指望在2019年看到任何突破。
后端后段
放心吧!2019年的后端世界不会像前端世界那么疯狂。
HTTPS无处不在
需要将用户输入数据发送到服务器的网站必须使用HTTPS。如果你不使用HTTPS,谷歌会惩罚你。幸运的是,HTTPS Everywhere或Gaddy使得迁移到HTTPS变得更加容易。
使用REST GraphQL
RESTful API在2019年依然会存在。您需要学习如何实现和设计这些API。你应该学会使用Node.js和Express.js来创建API服务器。2019年,这两种框架的组合仍将占主导地位。
现在关于GraphQL的炒作很多,但并不是大赢家就能拿下所有市场。了解GraphQL可以解决什么问题,以及如何在RESTful API中使用它进行路由优化。这将是2019年最重要的趋势:不是如何单独使用GraphQL,而是如何在极少数情况下使用GraphQL优化一些RESTful API路由。
HTTP2
HTTP2变得越来越流行。你需要知道如何使用这个协议来优化内容的传输。另外,HTTP3正在开发中,可以关注一下,但在2019年并不是你需要太关注的事情。

基础设施即服务
需要构建和管理自己的服务器的场景越来越少。以下是2019年的主要选择。
数字海洋-用于简单的服务器。heroku-用于简单和集成的服务器和部署。现在-超级简单的部署。firebase——用于托管基础设施和数据库。AWS——几乎任何你想要的东西,你都不必考虑自己管理服务器。你需要学习SQL
学习Firebase AWS等托管数据库将继续增长,但您仍需要学习SQL。2019年,PostgreSQL这样的数据库会继续发展,而MongoDB这样的NoSQL数据库似乎会衰落。你可能需要了解每种方案的优缺点,因为没有完美的方案可以解决数据库领域的所有问题。
别忘了搜索。
搜索可能不是绝对必要的,但它是网络的重要组成部分。2019年,全栈开发者可以尝试了解以下两个平台:
你可能需要学习Redis。
了解Redis如何作为缓存和内存存储工作。缓存和内存存储是2019年要学习的重要概念。您可以使用它们来优化您的系统。Redis是理解这些概念的良好起点。
测试试验
了解三种类型的测试。
很多人都在讨论这个话题,但是为了问题简单,考试可以分为三种类型:
单元:给定输入和测试输出,它用于测试单个函数或类。测试:测试流程或组件是否按预期工作。端到端测试:测试用户的实际行为,而不仅仅是简单的功能。保持简单
测试框架有很多选项,但这里是2019年的两个最佳组合:
Jest mocha+Chai+Sinon+伊斯坦布尔将Jest视为一个集成的测试框架,因此不需要像第二个选项那样添加其他工具和库。如果你想简单,就用Jest。如果想要更多的定制和模块化,请选择摩卡。
如果你还知道这些,那就是锦上添花:模拟、间谍、存根和快照测试。
适当的端到端测试就足够了。
端到端的测试需要公司投入大量的成本,所以你的职业生涯中可能会遇到也可能不会遇到这种测试。但无论如何,在2019年,你最好了解一下这些框架,或者至少了解一下:
柏树;守夜;量角器,适合有棱角的爱好者。
移动开发移动开发
告别移动开发?
再见移动端2019年移动开发可能会有点难过。应用的下载没有过去那么多了,最受欢迎的下载不是游戏就是大型科技公司的应用。2019年,移动网页浏览量将超过原生移动应用。所以对于全栈开发者和移动开发者来说,更应该关注移动设备Web应用。
IOS和Android仍然是企业需要的重要开发技能,但过去几年对它们的需求一直在下降,似乎出现了从原生移动开发到React Native主导的混合开发的显著转变。如果看上面的图表,React Native已经取代Swift,成为原生iOS开发的主要编程语言。
以下是您需要关注的开发技术:
React Native在2018年遭遇了一些挫折,一些大公司在博文中表示,他们正在放弃它。但这些公司试图在现有的iOS或Android代码库中添加React Native。如果你是这个领域的新手,2019年对你来说还是不错的选择。它将继续增长。
Flutter在2018年非常受欢迎,但现在说它在2019年会如何发展还为时过早。你需要注意的是,到目前为止,它并没有带来比React Native更显著的优势。
2019年Ionic和Nativescript的使用会逐渐减少。除非你用的是Angular,否则不要去关注它们。
所以,2019年,敬请期待React Native。
工具工具
你应该使用的NPM软件包
更漂亮——让你专注于你正在写的代码,而不是关心代码的格式;ESLINT——保持代码干净整洁;date-fns-轻量级替代date-fns——moment . js;lodash-主要用于节流和去抖功能;拉姆BDA-如果你真的喜欢函数式编程。
Javascript和世界
Javascript是有争议的编程语言之一。2018年,静态类型在Javascript的动态类型领域越来越流行。那么竞争对手是谁呢?
Typescript:可以编译成Javascript的Javascript超集。流:静态类型检查器流:Javascript。原因:它利用了Javascript和OCaml生态系统的类型语言。Pure:一种强类型语言,可以编译成Purescript,使用Haskell开发。Elm:可以编译成Javascript的纯函数式编程语言。关于静态和动态类型化语言的讨论由来已久,不会很快得出结论。以上都不会取代Javascript作为Web主要编程语言的主导地位。但是Angular和Vue都已经采用Typescript作为开发者社区的标准,所以Typescript可能会继续成长,并超越上面提到的其他语言。
您需要学习Typescript的基础知识和原则,但是要知道这不是编写好代码的唯一方法。要写出好的代码,可以先把重点放在如何写出好的单元测试上。
模块装订器
Webpack 4和Parcel是2019年的主要工具。都在朝着降低复杂度,更多“为用户着想”的方向发展,很多前端库都提供了CLI。学习这两个工具,但是记住CLI帮助您在项目开始时消除80%的初始复杂性。如果要发布NPM包,请使用Rollup。
计算机科学基础计算机科学基础
数据结构+算法
讨论技术趋势的文章很少提到计算机科学的基础知识。但这可能是最重要的话题,我可以非常自信地说,这个趋势有99.99999%的准确率:如果你想在2019年以及未来几年成为一名全栈开发者,计算机科学的基础非常重要。计算机科学的基本原理变化不大,而且已经存在很久了,不像开发库,一旦有新东西出来就会过时。
其他趋势其他趋势
而且没有服务器。
容器为我们提供了与几年前完全不同的架构,其中一个主要思想是无服务器。无服务器不是说不需要服务器,而是有人替你管理服务器,你可以专注于自己的应用逻辑,不用担心可扩展性等问题。
无服务器的流行始于2017年,一直延续到2018年。在2019年,我们将看到一些相同的常见用例,如AWS API Gateway和AWS Lambda的结合,供前端应用程序代码调用。
在降低成本的同时提高性能是个好主意。如果2019年能解决冷启动问题,会越来越受欢迎。
平台即服务/后端即服务
亚马逊、谷歌和Azure将在2019年争夺服务器市场,它们都提供完全托管的服务。
AppSync、Amplify、App Services、App Engine等服务会继续发展,但由于程序员很难放弃这么多控制权,所以不会真正有大的提升。
2019年,Azure将主导企业市场,AWS将主导一般开发者市场,Google将主导机器学习市场。
机器学习
2019年,你需要通过以下API学习和理解如何使用机器学习模型:
Google Cloud AI Amazon Machine Learning Azure Machine Learning除了之前列出的平台即服务和后端即服务之外,还会有更多的服务。这些大公司提供的机器学习API和模型将成为2019年更重要的趋势。你应该学会在未来的项目中使用其中的一些。
2019年,我们将能够在Web上看到机器学习API的应用,而不是从零开始构建我们自己的机器学习模型。与上述大型科技巨头不同,大多数人或公司都无法为机器学习提供足够的资源或数据。
Web组件
Web Assembly set会继续慢慢完善,但只有少部分开发者会使用。你可以先了解一下,等几年后成为主流,你就是这方面的专家了。

有什么不推荐你学习的?
jQueryEmberAngularJS引导Ruby
以上只是我个人的看法。不要因为我刚才说的话而恨我,因为无论如何,学习新的东西绝不是一个坏主意。
以上内容翻译自Andrei Neagoie最近写的一篇关于Medium的热门文章,题目是:Top-Libraries-Tech-To-Learn-In-2019-For-Full-Stack-Developers-f8c 0331 b8a 00。
由于外部链接在这里是不允许的,文本中的所有链接都被边肖手动删除。如果影响了阅读体验,真的很抱歉。


