2017-Web进阶路线图

2017 Web进阶路线图

前言

本书囊括了笔者五年来在前端工程领域的实践总结,笔者希望对于不同等级的开发者都能有所收获。本书最核心的目标

  • 希望对于没有经验的开发者能够在本书选定的最短路径上快速成为一名合格的现代前端开发者。每一小节都会讲解最基础的语法或者使用要点,但是不会长篇大论地介绍语法细节这些应该查看文档的内容。通过简单的示例快速上手之后,笔者会介绍很多工程当中的具体实践。可能刚入门的开发者并不能理解这些实践的意义或者价值,但是首先保证能用,而后在自己的实践中慢慢回味,逐渐明了。
  • 而对于有一定前端开发经验的开发者,本书能够帮你梳理现代纷繁复杂的前端开发状况,探寻百花齐放的工具库背后蕴藏的设计理念与编程范式,最终融会贯通,形成自己的前端工程化思想与体系。

本书最大的优势在于形成了完整的知识体系结构,让你合理归纳自己学到的知识,将知识放在它该在的地方。另外笔者想强调的是,无论React还是Vue或者Angular2都是非常优秀的前端框架,使用哪个框架还是属于术的范畴。本书虽然立足于React,但是其中蕴含的设计模式与工程架构可以通用于任何框架。笔者也着力于不希望受到某个具体框架的太多的束缚,毕竟在这个日新月异的前端世界,说不准哪天就落于人后了。读者阅读完本书之后,参照Demo的流程可形成属于自己的组件库。

第一部分 初窥门径,看山是山

Hyper Text Markup Language,10

HTML语法基础,5

HTML

  • 介绍基本的div、p、a、script ( asyhc属性)
  • 介绍meta属性doctype viewport
  • 介绍HTML方面的优化小知识
  • HTML5 Boilerplate

H5,3

  • 介绍HTML5规范,讲明H5到底是什么
  • 介绍H5实现的典型事件,譬如地理位置、触感等等
  • 基本的基于H5的小Demo

Semantic HTML,2

  • 介绍语义化HTML布局

CSS,20

CSS语法基础,3

  • 介绍CSS基础选择器,包含选择器优先级
  • CSS引入方式
  • 介绍BEM命名法

CSS元素样式,5

  • 介绍基本的尺寸设置,介绍尺寸单位,还有widthheight/line-heght (垂直居中)等属性
  • 介绍基本的文本属性,包括字体大小、文本省略、文本换行等
  • 介绍基本的背景属性

CSS元素定位:盒模型与文档流,3

  • 介绍盒模型,包括内边距,边框,外边距,连写情况下顺序(上下 左右;上右下左),以及边距合并,百分比值效果
  • 介绍文档流,,介绍基本定位方法,提及float
  • 介绍所谓的七种居中方法

Flexbox与网格系统,3

  • 介绍CSS网格系统的理念与传统做法
  • 介绍Flexbox基础语法
  • 介绍FlexboxPolyfill
  • 介绍Flexbox的使用示范

SCSS,2

  • SCSS语法基础与基本用法,建议使用node-sass编译
  • SCSS文件组织与命名规范(BEM-SCSS )
  • 常用的SCSS辅助库,home.scss,等Todo

CSS工程实践,4

  • CSS样式指南,1
  • CSS Linting,1
  • CSS目录结构,1
  • CSS reset,1

JavaScript,25.5

JavaScript语法基础,9

  • JavaScriptECMScript的演化过程,1
  • JavaScript基本变量定义、声明(变量提升)2
  • node环境搭建(npmcnpm,nvm的基本使用,babel-node的安装),2
  • es6模块系统(简单命令行例子,babel-node运行)1
  • 介绍变量赋值方法,解构赋值,1
  • 常见类型列表和类型转换,2

    JavaScript数据结构,4.5

  • 数组类型,1.5
  • 字符串类型,1.5
  • 时间与日期类型,1.5

JavaScript控制流,3

  • 循环,2
  • 异常处理,1

    JavaScript函数,6

  • 函数定义,1
  • 函数参数,1
  • 函数调用,2
  • 词法作用域与闭包,2

    JavaScript类与对象,6

  • class,属性定义(语法糖)1
  • 方法,构造器(单例模式),原型,快速ORM3
  • 类继承,2

    DOM,16.5

    元素选择与操作,4.5

  • DOM选择器,选择器polyfill1.5
  • 属性的判断和获取,1.5
  • 常见元素操作(元素创建、插入)1.5

    事件响应,4

  • event对象与事件绑定及参数传递,2
  • 事件分发传递、常用事件列表,2

    Ajax,4

  • XHR对象,1
  • fetch,1
  • cors,2

    客户端存储,4

  • Cookie,1
  • localstorage,session storage,2
  • websql,indexdb,1

    常用的前端工具库,9

    jQuery,5

    jQuery基础,2

  • jQuery选择器,0.5
  • jQuery元素操作,0.5
  • jQuery事件绑定,0.5
  • jQuery动画,0.5

jQuery Plugins,2

本章节介绍部分优秀的jQuery Plugins

  • fullPage.js1
  • LightBox1

    你并不需要jQuery1

    Lodash/Underscore,2

    Lodash/Underscore基础,1

    你并不需要Lodash/Underscore1

    Pattern Library,2

    jQuery UI,1

    BootStrap,1

    React初探

    数据流驱动的页面,2

  • 本部分主要介绍React设计思想,从命令式编程到声明式编程的变化,及以jQueryReact实现相同功能的例子对比。

    搭建你的脚手架,7.5

    create-react-app,2.5

  • 引导建立hello-world app2
  • 介绍yarn0.5

    webpack入门,5

  • JavaScript模块化发展历程与webpack介绍,1
  • webpackhello-world应用引导,1.5
  • 基于webpackreact最简应用搭建,2.5
  • 列举一些boilerplate及评价,0.5

    React组件,16

    JSX,3

  • JSX基础与转化,1
  • 语法,2

    组件基本介绍,4

  • 组件声明,说明createClass与继承的关系,2
  • state,1
  • props,1
  • context,1

    组件生命周期,3

  • 正常生命周期,2
  • 无状态组件生命周期,1

    组件样式,4

  • 行内样式设定,1
  • CSS样式,类名与模块化,2
  • 基于context的主题传递,1

    组件中DOM处理,2

  • findDOMNode,0.5
  • refsjQuery的封装使用,1.5

    React事件交互

    React事件绑定与处理

React合成事件

React事件列表

React Router

路由配置

路由控制

React技术栈

MobX

MobX设计思想

Observable

Redux

Redux设计思想

简单的Redux实例

简单的MobX实例

第二部分 登堂入室,看山不是山

第五章 深入JavaScript工程实践

JavaScript静态类型

JavaScript函数式编程

JavaScript异步编程

Promise

Generator

Async/Await

JavaScript面向对象

琢磨不透的this

原型链与继承

JavaScript类的几种实现方式

JavaScript数据绑定

脏检测

ES6 Proxy

JavaScript性能优化与样式规范

变量

数据类型

函数

React工程实践

React设计模式与样式指南

High-Order Component

Stateless Functional Component

Pretty Component

React优化

包体优化

React动画

CSS动画

JavaScript动画

React Transition

基于ReactPattern Library

Material UI

antd

第五章 深入React内部原理

简单的Virtual DOM实现

React Diff算法

React setState

React Fiber

Virtual DOM Alternatives

前端状态管理

Redux的得与失

渐进的前端状态管理

常见的状态管理模式

合理的状态设置

前端测试

单元测试

组件测试

自动化测试

前端性能优化

浏览器渲染原理

前端性能评测

资源加载

首页与关键路径

渲染策略

NodeJS

NodeJS初窥

常用NodeJS框架

Express

Koa

服务端渲染

跨平台开发利器Electron

移动开发

Mobile First

本部分介绍移动开发的常见注意点,包括响应式尺寸、响应式布局、移动开发中存在的点击问题等。

React Native

介绍React Native的基本原理与语法,能够利用Deco开发一个简单的TODOList

微信小程序

介绍微信小程序的基本用法,能够基于微信小程序开发简单的TODOList

第三部分 融会贯通,看山还是山

GUI应用程序架构变迁

MVC

MVP&MVVM

Flux Unidirectional Data Flow

REST表现层状态转化

Hyper Text Transport Protocol

HTTP协议基础

HTTP请求与响应

HTTP缓存

HTTPSHTTP/2

RESTful API

RESTful API最佳实践

REST的不足与GraphQL

前端工程化

前后端分离与全栈

合理的使用工具

渐进式的工程架构

微服务与微前端

模块化

介绍常见的模块化形式:CommonJS、AMDJS、System.import介绍小模块难题

组件化

介绍Web Components规范(Shadow DOMCustom Elements)以及典型的符合Web Components规范的框架Polymer分析ReactWeb Components规范的优劣分析VueWebComponents规范的优劣分析何谓好的组件

数据可视化

数据可视化范式

常见的数据可视化库

ECharts

D3.js

Web安全基础

输入校验与内容编码

SQL注入

XSS跨站脚本

CSRF跨域请求伪造

Web的未来

WebAssembly

WebVR

下一页