JavaScript 剖析
- ECMAScript 新特性
- JavaScript VS ECMAScript
- 块级作用域、模板字符串
- 对象与数组的解构、rest 操作符、对象|数组的拓展用法
- 箭头函数、默认参数
- Proxy、Reflect、Map、WeakMap、Set、WeakSet、Symbol、for…of、迭代器、生成器…
- ES Modules 模块系统
- ES2016 ~ ES2020 新特性
- 新特性编译工具(Babel)的使用
- 新特性的Polyfill: CoreJS 标准库
- JavaScript 异步编程
- JavaScript 单线程设计
- 同步、异步模式的调用,回调函数的执行原理
- Promise 异步方案的使用进阶与剖析
- 处理异步任务的任务队列和事件循环
- JavaScript 内部的宏任务与微任务
- ES6 Gererator 、Async/Await 语法糖
- TypeScript 高级教程
- 基本语法、类型声明
- 高级特性(泛型、接口、联合类型)
- 内置对象标准库
- 类型检测方案、工具配置及插件使用
- 函数式编程范式
- 编程本质以及应用场景
- 什么是纯函数,如何避免和消除副作用
- 柯里化、Compose、高阶函数的优点
- 不可变数据结构(immutable)
- 常用库(Lodash、Ramda)
- JavaScript 性能优化
- 垃圾回收(引用计数、标记清除、增量标记)
- V8垃圾回收机制分类
- 内存管理
- Preformance 工具注意事项
- 代码层面注意事项(xxxx)
前端工程化实践
- 脚手架工具 (Yeoman、Plop)
- 设计思想与目标
- 本质作用
- 工作原理
- 自动化构建
- 如何使用自动化构建提高开发效率
- 任务执行器
- 自动化测试
- 单元测试
- 集成测试
- E2E测试
- 常见自动化测试工具(Jest、Mocha、Enzyme)的实现原理
- 自动化部署
- 持续集成与持续部署
- Github的自动化工作流
- 常见CI实践:Jenkins、TravisCI
- 模块开发与 Webpack
- 配置详解、资源模块的加载(Loader)
- 打包过程和打包结果分析
- 插件机制
- 如何开发一个 Webpack Loader
- 实现原理(AST语法解析)
- 代码检测
- ESLint、TSLint、StyleLint
- Prettier
- Git Hook
常用框架与原理
- React
- 进阶与实战
- 封装自定义组件库
- 组件性能优化
- 受控组件非受控组件的选用标准
- React 16.8 Hooks 特性以及实现原理
- css in js
- 数据流方案:Redux(常用中间件以及中间件的开发)、Mobx、dva
- SSR、同构
- SSG 、 Gatsby
- 设计解密
- JSX 语法
- Virtual-DOM
- Fiber 算法
- React Router
- 进阶与实战
- Vue
- 进阶与实战
- 参考 React
- 3.0 设计和用法的变化以及优势
- 3.0 Composition APIs
- 设计解密
- 虚拟 DOM 和 Diff 算法的实现
- 响应式数据
- 模板编译模块的实现原理
- Vue Router
- 进阶与实战
- Angular
- 只用过 1.0,无可告知。
Nodejs
- nodejs 高级编程
- 非阻塞 IO 、EventLoop、事件队列
- 核心模块、自定义模块、第三方模块
- 文件系统、Buffer 对象、字符编码、压缩解压、签名加密、
- 网络编程、TCP/IP、HTTP 服务
- Cookie、Session、Socket
- 反向代理、多进程、集群
- 应用层最佳接口: GraphQL
- NoSQL(MongoDB)
- 特性及优势
- 安装、链接、API(mongoose)
- Redis
- Web 开源框架
- Express (路由、引擎、错误处理、中间件)
- Express + Handlebars + MongoDB 实践、部署(PM2)
- Koa
- Egg
- Nest
- Adonis
客户端
- 小程序与快应用
- 原生开发
- 基于 mpvue 框架打包快应用和 H5
- Remax
- Taro
- Hybrid App
- WebView 基础方案
- Cordova/Ionic
- JSBridge 双向通信
- React Native
- 环境搭建、基础配置
- 热更新
- 布局
- 接入第三方 Native 组件(Object-C/Swift/Java)
- 实现原理
- Flutter
- Dart 语言
- 常用 Widget 、表单组件、布局、路由、导航
- 界面状态管理、第三方包
- Native 和 SDK 的调用
- Electron
- 常用 API 、基础案例
- 主进程与渲染进程之间的差异及相互通信
- 结合 React 、Vue
- 应用调试(Spectron/Devtron)
- 集成打包(Electron-builder/electron-package/electron-forge)
高阶技术与解决方案
- PWA 渐进式 Web 应用
- 服务端、客户端离线缓存
- 浏览器多线程环境
- ServiceWorkers 生命周期
- 消息推送、应用更新
- 渐进式加载
- 可视化
- Canvas、SVG、WebGL
- Echarts、AntV、D3、three
- Web Components
- Custom Elements
- Shadow DOM
- Templates
- 性能
- 首屏渲染
- 离屏渲染
- WebSocket
- 局部刷新
- 长列表无限滚动
- 打包、分包
- 其它
- 微前端
- 数据埋点
- 接口鉴权
- Mock
- Serverless 无服务端方案
- 中间层
- 多语言
- CDN 加速
- OSS 云存储
- 权限管理