全棧工程師,也叫全端工程師。是指掌握多種技能,並能利用多種技能
獨立完成產品的人
技術棧
- 介面設計 Axure
- 前端開發 HTML5+CSS3
- 後端開發 Node.js Express Koa
- 資料庫 Mysql Mongodb Redis
- 移動端 Ionic
- Restful API
- OAuth QQ第三方認證
- 單頁應用 AngularJs
- WebSocket
- 微信開發
- 設計模式
基礎篇
- NODE基礎
- Javascript高階
- 物件導向
- 閉包
- 作用域
- this
- 執行上下文
- ……
提高篇
- GIT 原理解析與最佳實踐
- ES6+Gulp+Webpack+ ReactJS 高階
- React Native 實戰
- AngularJS 高階
- 微信開發
- OAuth QQ第三方認證
- Restful API
Node是什麼
- Node.js是一個讓JS可以執行在瀏覽器之外的伺服器端的平臺它實現了諸如檔案系統、模組、包、作業系統API,網路通訊等核心JS沒有或不完善的功能
- 它摒棄傳統平臺依賴多執行緒來實現高併發的設計思路,而採用單執行緒,非同步式I/O,事件驅動式的程式設計模型
- Node.js使用了來自於Google ChromeV8引擎。V8是目前世界上最快的Javascript引擎
同步和非同步
同步是指發起呼叫之後主執行緒只能掛起
非同步是指發起呼叫之後主執行緒可以做別的事情
什麼是I O
I/O輸入/輸出(Input/Output)
node.js的優點
Nodejs基於Javascript語言
統一公共類庫,程式碼標準化
Nodejs選擇了目前最快的瀏覽器核心V8做為執行引擎
Nodejs的社群非常活躍
js模組
不足
js沒有模組系統,不支援封閉作用域或依賴管理
沒有標準庫,沒有檔案系統API
沒有包管理系統,不能自動載入和安裝依賴
commonjs規範
一個 node.js由大量模組組成, 每個JS檔案都是一個模組
實現了require 方法,npm基於commonjs 實現了自動載入和安裝
依賴
模組和包的優點
增加內聚性,有助分工協作
方便重構
提高程式碼質量
模組使用
定義模組
匯出模組 (匯出類和物件或常量)
使用模組
什麼是前後端分離
前端:負責View 和Controller 層。
後端:只負責Model 層,業務和資料處理等。
為什麼要前後端分離?
後端為主的MVC,遇到同步非同步結合的頁面溝通麻煩
Ajax為主SPA 型開發模式, 如果一個頁面請求過多則效能較低
前後端職責不清
限制了前端的發揮空間
基於Node.js的前後端分離
後端提供API資料介面
前端負責渲染模板和頁面
案例
抓取百度百家生成新聞列表