一、基礎(chǔ)部分
1. ES6/ES7語法和原理實(shí)現(xiàn)
2. 異步發(fā)展過程:callback、promise、generator、co、
async/await等異步流程控制(async和await的實(shí)現(xiàn)原理)
3. promise設(shè)計(jì)模式原理及在es6中的應(yīng)用,手寫一個(gè)符合promise A+規(guī)范的promise實(shí)現(xiàn)
4. Node基礎(chǔ)與實(shí)戰(zhàn)
5. Node事件原理和發(fā)布定閱設(shè)計(jì)模式
6. 函數(shù)式編程
二、模塊化的演進(jìn)
1. JavaScript模塊化發(fā)展的演進(jìn)歷史 CommonJS、AMD、CMD、ES6模塊的演進(jìn)歷史
2. 目前最主流的模塊化實(shí)現(xiàn)方案: CommonJS 到 ES Module
3. 手寫 CommonJS 的簡單實(shí)現(xiàn)
三、前端工程化構(gòu)建工具
1. gulp的基本用法以及實(shí)現(xiàn)原理
2. 常用插件(壓縮、合并、編譯、預(yù)覽服務(wù)、自動(dòng)注入)
3. node.js中自定義流的高級(jí)用法
4. 實(shí)現(xiàn)自定義插件(auto-prefixer)
5. webpack基本用法以及運(yùn)行原理
6. 常見的loader以及plugin(DllPlugin等)
7. Webpack工作原理分析
8. 編寫自定義Loader、編寫自定義Plugin
9. webpack優(yōu)化(resolve、模塊熱替換、壓縮、代碼分割、可視化工具)
四.React全家桶
1. react
1. 為什么采用組件化的方式
2. react環(huán)境搭建
3. JSX語法的使用(createElement,render的原理實(shí)現(xiàn))
4. JSX表達(dá)式的用法
5. JSX的屬性(className,htmlFor,style,dangerouslyInnerHTML)
6. 組件使用(類聲明,函數(shù)聲明)
7. 組件的屬性和狀態(tài)(屬性的檢驗(yàn)以及setState詳解)
8. 復(fù)合組件
9. 組件的聲明周期
10. 受控組件 非受控組件
11. children屬性的使用
2. redux
1.手寫redux庫(
getState,
createStore,
dispatch,
subscribe,
applyMiddleware,
combineReducer,
compose,
bindActionCreators
)
3. react&-redux
1.高階組件的原理和使用
2.react高級(jí)屬性context上下文
3.react-redux實(shí)現(xiàn)todoList
4.手寫react-redux(Provider和connect原理解析)
4. 中間件
1. 手寫applyMiddle和compose(中間件原理)
2. 手寫redux-logger,redux-thunk,redux-promise
3. 手寫自定義本地緩存中間件
5. react-router-dom
1. HashRouter,BrowserRouter的區(qū)別
2. Link,NavLink的使用(extact絕對(duì)匹配,state帶參數(shù)跳轉(zhuǎn))
3. Route組件三種渲染方式(component,render,children)
4. 路由參數(shù)以及子路由的使用(params)
5. withRouter,PrivateRouter的用法
6. Prompt組件阻止跳轉(zhuǎn)
7. 重定向(Redirect組件)
8. 手寫HashRouter Route等常用組件
6. React-Transition-group
1. react動(dòng)畫的實(shí)現(xiàn)原理
2. 使用React-Transition-group庫開發(fā)todo動(dòng)畫應(yīng)用
7. 源碼級(jí)Vue+React深度解析與實(shí)現(xiàn)
1. 手寫Vue雙向綁定實(shí)現(xiàn)
2. Vue虛擬DOM和React虛擬DOM的區(qū)別
3. 如何實(shí)現(xiàn)一個(gè) Virtual DOM 算法
4. 通過源碼徹底搞明白setState的更新機(jī)制
5. 手寫包含虛擬DOM、事件監(jiān)聽、基本組件生命周期等功能的React庫
五.node高級(jí)
1. http深入和tcp詳解
2. 七層網(wǎng)絡(luò)協(xié)議分析
3. TCP連接和Nagle算法
4. 使用wireshark學(xué)習(xí)七層網(wǎng)絡(luò)協(xié)議
5. DNS服務(wù)器詳解
6. Node靜態(tài)服務(wù)器實(shí)現(xiàn)與緩存機(jī)制的實(shí)現(xiàn)
7. HTTP常用報(bào)文的實(shí)際應(yīng)用
8. Node Stream的應(yīng)用與文件分片上傳策略
9. RestfulAPI設(shè)計(jì)和使用
10. CDN和OSS的使用
11. HTTPS安全通信過程分析
Express
1. 手寫express框架
2. 中間件的實(shí)現(xiàn)原理、bodyParser、cookie-parser、static、模板原理
Koa
1. 手寫Koa框架
2. 中間件的實(shí)現(xiàn)原理、bodyParser、cookie-parser、static、模板原理
Linux
1. Linux介紹
2. Linux文件和目錄
3. Linux用戶和組權(quán)限
4. Linux命令
5. Shell腳本
Mongodb
1.Mongodb安裝和使用
2.Mongodb的系統(tǒng)架構(gòu)
3.Mongodb高級(jí)查詢
4.Mongodb索引
5.Mongodb安全與權(quán)限
6.mongoose模塊之Schema
7.mongoose模塊之Model
8.使用Model對(duì)文檔進(jìn)行增刪改查
六、通信
1.什么是實(shí)時(shí)通信
2.什么是Websocket
3.websocket和http的對(duì)比
4.使用socket.io實(shí)現(xiàn)聊天室
七、MySQL
1.MYSQL安裝與使用
2.MYSQL系統(tǒng)架構(gòu)
3.數(shù)據(jù)處理之增刪改查
4.數(shù)據(jù)類型和約束分頁
5.索引和慢查詢性能分析
6.數(shù)據(jù)庫安全之防止SQL注入
八、Redis
1.Redis安裝和使用
2.5種數(shù)據(jù)結(jié)構(gòu)及使用場景
3.API的理解和使用
4.Redis客戶端
九、Nginx
1.nginx的安裝和使用
2.模塊和基本配置
3.正向反向代理等應(yīng)用場景
十、Docker
1.Docker介紹和安裝
2.Dockerfile
3.存儲(chǔ)和鏡像倉庫
4.Dock實(shí)戰(zhàn)
十一、單元測試
1.測試用例和需求分析
2.單元測試框架mocha/ava
3.自動(dòng)化測試之selenium
十二、前端性能監(jiān)控與性能優(yōu)化、行為監(jiān)控與安全防范
1.針對(duì)重繪重排的優(yōu)化策略
2.如何發(fā)現(xiàn)性能短板與各個(gè)短板的優(yōu)化
3.前端埋點(diǎn)上報(bào)
4.前端錯(cuò)誤上報(bào)
5.前端性能上報(bào)
6.前端行為監(jiān)控上報(bào)
7.前端恢復(fù)上線與A/B測試
8.網(wǎng)絡(luò)緩存技術(shù)分析
9.瀏覽器渲染過程分析(DOM樹、RenderObject、繪圖上下文)
十三、項(xiàng)目部署
1.npm script工作流
2.shell腳本布署
十四、安全
1.XSS的原理與代碼實(shí)戰(zhàn)
2.CSRF的原理與代碼實(shí)戰(zhàn)
十五、功能測試與性能測試
1.測試用例和需求分析
2.常用功能測試框架基礎(chǔ)使用(mocha/ava)
3.常用性能測試框架基礎(chǔ)使用(Benchmark)
十六、全鏈路優(yōu)化
1.DNS優(yōu)化
2.請(qǐng)求速度優(yōu)化
3.渲染優(yōu)化之 JS css image html
4.緩存優(yōu)化
5.服務(wù)器優(yōu)化
6.數(shù)據(jù)庫優(yōu)化
十七、前端設(shè)計(jì)模式
創(chuàng)建型設(shè)計(jì)模式
1.工廠模式
2.建造者模式
3.原型模式
4.單例模式
結(jié)構(gòu)型設(shè)計(jì)模式
1.外觀模式
2.適配器模式
3.代理模式
4.裝飾者模式
5.組合模式
行為型設(shè)計(jì)模式
1.觀察者模式
2.狀態(tài)模式
3.策略模式
4.命令模式
5.訪問者模式
6.中介者模式
5.迭代器模式
十八、算法&數(shù)據(jù)結(jié)構(gòu)
1.時(shí)間復(fù)雜度
2.空間復(fù)雜度
3.常見排序算法
排序
1.冒泡排序、優(yōu)化
2.選擇排序
3.插入排序
4.歸并排序
5.快速排序式
6.計(jì)數(shù)排序
7.桶排序
8.基數(shù)排序
2.鏈表(鏈表反轉(zhuǎn)、鏈表是否有環(huán))
3.樹(高度、前序、中序、后序、廣度優(yōu)先算法、反轉(zhuǎn))
4.二叉樹搜索算法