现代Web开发需要学习的15大技术

2016-06-08 13:08

快进到现在,我发现现代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

来源【郑州宇晨PHP培训】博客:

http://blog.163.com/yong5123@126/blog/static/45516062201655105026991/

现代web开发需要学习的15大技术的更多相关文章

  1. 值得 Web 开发人员学习的20个 jQuery 实例教程

    这篇文章挑选了20个优秀的 jQuery 实例教程,这些 jQuery 教程将帮助你把你的网站提升到一个更高的水平.其中,既有网站中常用功能的的解决方案,也有极具吸引力的亮点功能的实现方法,相信通过对 ...

  2. Manual | BSD手册| Linux手册 | 数据库手册 | 编程开发手册 | WEB开发手册 | 软件应用手册 | 网络技术手册 | GNU手册

    豆豆手册 □ BSD手册 □ Linux手册 □ 数据库手册 □ 编程开发手册 □ WEB开发手册 □ 软件应用手册 □ 网络技术手册 □ GNU手册 在线手册 首 页 BSD手册   ·FreeBS ...

  3. 《应用Yii1.1和PHP5进行敏捷Web开发》学习笔记(转)

    学习地址为: http://www.yiibook.com/book/agile_web_application_development_with_yii1.1_and_php5   1.建立应用程序 ...

  4. Web开发入门学习笔记

    公司web项目终于要启动了,本以为django学习可以在实战中进行,结果最终使用了Drupal框架,好吧,那我们就PHP走起,买了本<细说PHP>,先跟着过一遍Web开发入门. HTTP协 ...

  5. python web开发——django学习(一)第一个连接mysql数据库django网站运行成功

    1.新建一个项目 2.新建一些文件夹方便管理 3.新建一个项目叫message  4.连接数据库 python web开发Django连接mysql 5.在数据库里自动生成django的表  6.运行 ...

  6. 2020年Java程序员应该学习的10大技术

    对于Java开发人员来说,最近几年的时间中,Java生态诞生了很多东西.每6个月更新一次Java版本,以及发布很多流行的框架,如Spring 5.Spring Security 5和Spring Bo ...

  7. [Java Web] 1、Web开发初识——一大堆历史和技术名词

    LZ前言 LZ最近发现网络真是个神奇的东西,以前做的好玩的只能自娱自乐(或者说顾影自怜),现在只要发一个帖子,写一个博客,很快能引来一大群小伙伴的围观(有时候还能遇见几个大牛给个战略性的指导)...L ...

  8. 《Flask Web开发》学习笔记

    第一部分 Flask简介 前言:想熟练掌握一门web框架,为以后即将诞生的测试工具集做准备.为什么选择flask要做熟练掌握的一门框架,而不是其他的,最主要的原因是可以随意定制. 特别提醒:这本书的代 ...

  9. 做web开发需要学习哪些技术--基础篇

    做一个web网站,包含哪些技术,自己需要学习哪些技术 自己想到哪里就写到哪里 -- 给自己做的一个记录 1: 页面的展示, 一个web的开发语言  1.1 一个web的开发语言需要注意哪方面,才能符合 ...

随机推荐

  1. linux下vi的一些简单的操作

    前言 在嵌入式linux开发中,进行需要修改一下配置文件之类的,必须使用vi,因此,熟悉 vi 的一些基本操作,有助于提高工作效率. 一,模式 vi编辑器有3种模式:命令模式.输入模式.末行模式.掌握 ...

  2. SpringBoot使用PageHelper进行分页

    因为SpringBoot就是为了实现没有配置文件,因此之前手动在Mybatis中配置的PageHelper现在需要重新配置,而且配置方式与之前的SSM框架中还是有点点区别.    首先需要在pom文件 ...

  3. POJ 2528 Mayor's posters 【区间离散化+线段树区间更新&&查询变形】

    任意门:http://poj.org/problem?id=2528 Mayor's posters Time Limit: 1000MS   Memory Limit: 65536K Total S ...

  4. CodeForces - 598A Tricky Sum (数学,快速幂的运用)

    传送门: http://codeforces.com/problemset/problem/598/A A. Tricky Sum time limit per test 1 second memor ...

  5. Swift_控制流

    Swift_控制流 点击查看源码 for-in 循环 //for-in 循环 fileprivate func testForIn() { //直接循环提取内部数据 //[1,5] for index ...

  6. Struts2知识点小结(三)--值栈与ognl表达式

    1.问题一 : 什么是值栈 ValueStack        回顾web阶段 数据交互问题?        客户端提交数据  到  服务器端    request接受数据+BeanUtils实体封装 ...

  7. tablib模块

    ####tablib基础知识#### tablib是什么我就不说了,网上一大推,我大概就知道能将数据转为某种格式 1.安装tablib模块 pip install tablib 2.安装完毕,就在你要 ...

  8. SP1043 GSS1 - Can you answer these queries I(线段树,区间最大子段和(静态))

    题目描述 给出了序列A[1],A[2],…,A[N]. (a[i]≤15007,1≤N≤50000).查询定义如下: 查询(x,y)=max{a[i]+a[i+1]+...+a[j]:x≤i≤j≤y} ...

  9. 2018 Wannafly summer camp Day8--区间权值

    区间权值 小Bo有\(n\)个正整数\(a_1\)--\(a_n\),以及一个权值序列\(w_1\)--\(w_n\),现在她定义\(f(l,r)=(\sum_{i=l}^r a_i^2) *w_{r ...

  10. python写爬虫的弯路

    一开始按照视频上的找了笔趣阁的网站先爬一部小说, 找了<遮天>,但是章节太多,爬起来太慢, 就换了一个几十章的小说. 根据视频里的去写了代码, 在正则表达式哪里出了很大的问题. from ...