(点击上方的蓝色文字,可快速关注我们)

将近4年前,我写了一篇名为《Future of Web and Mobile: HTML5, CSS3 and Javascript》的博客文章,其中我提到了Javascript的出现,以及JavaScript框架,例如jQuery、Knockout等的爆发。

快进到现在,我发现现代web开发再一次将发生压倒性的改变。信息资讯的铺天盖地令人迷惑,尤其对于初学者而言。首要原因是新的框架,例如Angular 2和ReactJs出现了,使用了尚未完全定型的ECMAScript 6特性。并且有更多的工具可用于转换ES6代码为普通的旧的JavaScript代码,也就是ES5。

我概括了一系列我们应该学习的编程语言/工具,以便于理解势不可挡和快速变化的现代web开发。

JavaScript

这是唯一一种所有浏览器都理解的编程语言,并且它是前端开发的支柱。JavaScript也被称为ECMAScript,ES 5。在深入其他语言之前好好理解这门编程语言非常重要。

ES6

这是Javascript语言的扩展,而且许多浏览器正在实现ES6。好处是哪怕是现在,你也可以开始编写ES6代码,因为你可以使用transpiler(转译器)如Babel来转换ES6代码为ES5代码。经历这些并了解新功能是一件好事。不过,没有不要钻研得太深因为它们很容易发生变化。

Babel

这是最流行的ES6到ES5转译器之一。此外,它还被许多框架,如React所推荐。要想实时地将ES6转换为ES5代码,在https://babeljs.io/repl/有一个可用的REPL。

需要注意的是Babel不仅仅是ES6到ES5的转译器。它也是JSX到JavaScript的转译器。不知道什么是JSX?那么请看下面。

NodeJS

NodeJS是一个服务器端平台,它允许你用JavaScript语言构建后端。为什么我要提NodeJS呢?这是因为,即使你对后端开发不感兴趣,但是许多前端工具依赖于NodeJS。至少要熟悉node和它的命令行工具。

NPM

NPM是node的软件包管理器。就像pip之于Python,ruby gems之于Ruby,以及Maven之于Java。了解如何安装/删除/升级软件包,尤其是package.json文件结构。

Grunt或Gulp

这两个是运行在Node平台上最为流行的任务运行器。从技术上讲,它们是针对npm的软件包。它们允许你自动化许多前端任务,如Lint源文件,串联,缩减,部署以及更多。

Bower

这是用于前端库本身的一个软件包管理工具。想添加Jquery到你的应用程序?和使用bower install jquery一样容易。

上述工具用于基本的前端开发已经足够。不过下面我还要说一说两个最流行的框架,即React和Angular。

ReactJs

ReactJs是构建视图最流行的前端库。请注意,它不仅仅是MVC中的V,因此和框架如Angular没有比较性。ReactJs是用ES6写的,并且可以用Babel转译为ES5。它还使用也可以用Babel转译为JavaScript的JSX。

WebPack或Browserify

这两个都是最流行的模块打包机。它们可以获取js源代码,找出正确的依赖关系,并发出可以驱动整个应用程序的JavaScript文件。我更喜欢WebPack。点此查看关于WebPack。

Flux或Redux

React组件被布置在一个层次结构中。大部分时间,数据模型遵循层次结构。在这种情况下,Flux并不怎么有用。然而,有时候你的数据模型是不分层的。当你的React组件开始接收外部道具,或你有少量的组件开始变得非常复杂的时候,那么你可能会想要试试Flux。

Immutable.js

Immutable.js提供了一套数据结构,可以帮助解决在构建React app时的某些性能问题。这是一个伟大的库,你可能会在你的app中大量使用它,但是当你关注于性能影响时,它就完全没用了。

Angular 2

Angular 2是JavaScript中最流行的MVC框架之一的下一个版本。它被完全重新设计过了,并且有一条陡峭的学习曲线。全面支持双向数据绑定。在选择Angular 2开发时要小心评估。

TypeScript

Angular 2推荐TypeScript作为编程语言的首选。我不是很熟悉TypeScript,但我认为它增加了静态类型到Javascript的动态特性中。最后,我相信它只是一个转译器。

Service workers

实验性的API。它就像是在浏览器用于做各种工作的一个后台线程。我想它也增加对离线浏览的支持。

Fetch API和Push API

请自行阅读链接。因为到目前为止我自己对此也是知之甚少。


欢迎关注“互联网架构师”,我们分享最有价值的互联网技术干货文章,助力您成为有思想的全栈架构师,只聊架构,不聊其他!打造最有价值的架构师圈子和社区。

长按下方的二维码可以快速关注我们

如想加群讨论学习,请点击右下角的“加群学习”菜单入群

现代Web开发需要学习的15大技术相关推荐

  1. 2019年Java编程开发值得学习的10大技术

    01 Gradle Java世界中主要有三大构建工具:Ant.Maven和Gradle.经过几年的发展,Ant几乎销声匿迹,还剩Maven和Gradle两种,maven是我目前工作中用的版本管理工具. ...

  2. springboot python 开发效率比较-2018年Java开发值得学习的10大技术

    作为一个开发人员,我们最大的挑战就是保持自己了解新的技术.技术变化很快,你大概每两年就会看到一个新版本的编程语言和框架. 就拿2017年来说,AR.VR.区块链.人工智能等等已经扑面而来了.除了这些离 ...

  3. Java开发2018年值得学习的10大技术

    转载自 Java开发2018年值得学习的10大技术 作为一个开发人员,我们最大的挑战就是保持自己了解新的技术.技术变化很快,你大概每两年就会看到一个新版本的编程语言和框架. 就拿2017年来说,AR. ...

  4. java web开发需要学习哪些知识_java web开发需要学习哪些知识?

    现在世界已经进入一个以web为核心的阶段,掌握一门相关技术是非常有用的,那么java web开发需要学习哪些知识呢?下面小编就来给大家分享一下java web开发的知识. 1.面向对象分析设计思想 J ...

  5. python web开发要学什么_Python WEB开发 用Python开展web开发必须学习什么?

    用Python开展web开发必须学习哪些? 针对新手想更轻轻松松的学好Python开发技术性,Python网络爬虫,Python数据分析,人工智能技术等技术性,这儿给大伙儿共享一套系统软件教育资源,加 ...

  6. Web前端开发必学15大技术

    快进到现在,我发现现代web开发再一次将发生压倒性的改变.信息资讯的铺天盖地令人迷惑,尤其对于初学者而言.首要原因是新的框架,例如 Angular 2和ReactJs出现了,使用了尚未完全定型的ECM ...

  7. php和python web开发-Web开发应该学习php还是python

    看来Python的呼声很高啊. 若论排行榜,综合指数,以及看似大热,政治正确,非Pyhon莫属. 之前我曾有回答的帖子,建议初学者,没有编程经验者,可以从Python入手,选取一个方向,深入地研究.再 ...

  8. Java开发程序员最值得学习的10大技术

    作为一个开发人员,我们最大的挑战就是保持自己了解新的技术.技术变化很快,你大概每两年就会看到一个新版本的编程语言和框架. 就拿2017年来说,AR.VR.区块链.人工智能等等已经扑面而来了.除了这些离 ...

  9. java web开发(学习路线)

    [ 声明:版权所有,欢迎转载,请勿用于商业用途. 联系信箱:feixiaoxing @163.com] java语言天生就是为计算机网络开发而存在的.之前,学习java的时候,总觉得奇怪,为什么jav ...

  10. python开发需要学什么_用Python进行web开发需要学习什么?

    匿名用户 1级 2017-08-24 回答 HTML(超文本标记语言)是网页的核心,学好HTML是成为Web开发人员的基本条件.HTML很容易学习的,但也很容易误用,要学精还得费点功夫. 随着HTML ...

最新文章

  1. opencv+VS如何运行
  2. MySQL主键学习总结
  3. vc6.0垃圾文件清理工具_干货 | 电脑清理宝典
  4. ELK之centos7安装 elasticsearch6.5遇到的坑
  5. code css怎么拿不到div_不会“编程”拿不到初中毕业证?听北京海淀教委怎么说...
  6. python导入csv报错_Python Pandas read_csv报错
  7. 怎么在同一页中分页_分库分表业界难题,跨库分页的几种常见方案
  8. Oracle列直方图的问题隐患
  9. 为什么负数的补码是取反加一
  10. 商品列表,添加,显示
  11. 文件压缩原理是什么?
  12. 教你炒股票27:回复
  13. MapReduce作业提交流程
  14. C++核心准则T.61:不要过度参数化成员(SCARY)
  15. 牛腩--SQLHelper
  16. ACM/ICPC 2017 Nanning Regional 总结
  17. 什么是固态功率放大器?射频固态功率放大器?
  18. 产品化软件开发与项目化软件开发的对比
  19. 28岁的我坐在医院的轮椅上大哭
  20. git push失败:Unable to access 'https://gitee.com/Lmui/proxy.git/': Could not resolve host: gitee.com

热门文章

  1. Spring(16)——使用注解进行bean定义
  2. 羊年快乐!献上小礼一份!
  3. 标题:印刷电路板的设计
  4. Illustrator 教程,如何在 Ai 中创建一个新文档?
  5. 区块链开发(一)搭建基于以太坊的私有链环境
  6. Mac密码管理工具:1Password 7
  7. FoneDog Toolkit for Android如何从Android恢复丢失的文件
  8. 阿里云爬虫风险管理产品商业化,为云端流量保驾护航 1
  9. 研磨设计模式学习笔记3--适配器模式Adapter
  10. 9.3 客户端接收响应信息(异步转同步的实现)