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 云存储
    • 权限管理