#### 项目构建
1. 理解npm、yarn依赖包管理的原理,两者的区别
2. 可以使用npm运行自定义脚本
3. 理解Babel、ESLint、webpack等工具在项目中承担的作用
4. ESLint规则检测原理,常用的ESLint配置
5. Babel的核心原理,可以自己编写一个Babel插件
6. 可以配置一种前端代码兼容方案,如Polyfill
7. webpack的编译原理、构建流程、热更新原理,chunk、bundle和module的区别和应用
8. 可熟练配置已有的loaders和plugins解决问题,可以自己编写loaders和plugins
#### nginx
1. 正向代理与反向代理的特点和实例
2. 可手动搭建一个简单的nginx服务器
3. 熟练应用常见的nginx内置变量,掌握常用的匹配规则写法
4. 可以用nginx实现请求过滤、配置gzip、负载均衡等,并能解释其内部原理
#### 开发提速
1. 熟练掌握一种接口管理、接口mock工具的使用,如yapi
2. 掌握一种高效的日志埋点方案,可快速使用日志查询工具定位线上问题
3. 理解TDD与BDD模式,至少会使用一种前端单元测试框架
#### 版本控制
1. 理解Git的核心原理 、工作流程、和SVN的区别
2. 熟练使用常规的Git命令、git rebase、git stash等进阶命令
3. 可以快速解决线上分支回滚、线上分支错误合并等复杂问题
#### 持续集成
1. 理解CI/CD技术的意义,至少熟练掌握一种CI/CD工具的使用,如Jenkins
2. 可以独自完成架构设计、技术选型、环境搭建、全流程开发、部署上线等一套完整的开发流程( 包括web应用、移动客户端应用、PC客户端应用、小程序、H5等等 )
#### 安全
1. XSS
2. CSRF
3. DDOS
4. HTTP劫持