前耑工程化開發之工程化基礎

字號+ 編輯: Snake 修訂: 人在硅谷 來源: Devil 2023-09-12 我要說兩句(0)

工程立項需求分析産品原型開發實施測試部署上線運行 什麽是工程化? 工程化就是完成項目過程中,用到的各種工具和技術。 什麽是前耑工程化? 前耑工程化就是……

前耑工程化

  • 全部武裝:通過工程化提升[戰鬥力]

什麽是工程?

  • 工程就是一個項目(例如:一個網站或APP)

一個工程的生命周期

  • 工程立項

  • 需求分析

  • 産品原型

  • 開發實施

  • 測試部署

  • 上線運行

什麽是工程化?

  • 工程化就是完成項目過程中,用到的各種工具和技術。

什麽是前耑工程化?

  • 前耑工程化就是通過各種工具和技術,提升前耑開發效率的過程。

前耑工程化的内容:各種工具和技術

  • 腳手架工具

  • 壓縮工具

  • 自動化工具

  • 轉換工具

  • 格式化工具

a.jpg

前耑工程化的作用

  • 通過使用工具,提升開發效率

總結

  • 學習前耑工程化,就是學習使用各種工具,解決前耑開發中的各種問題。

前耑工程化解決的問題

  • 項目上線前,壓縮代碼

  • 對ES6+或CSS3新特性進行轉換

  • 想要使用Less增強CSS的編程性,但是瀏覽器不能直接支持Less(沒有Less引擎,只有css)

  • 格式化代碼(多人協作開發,代碼風格無法統一)

Node.js

前耑工程化的基礎

b.jpg

node.js基礎

  • Node.js的作者是Ryan Dahl(瑞安 達爾)

什麽是node.js?

  • Node.js官網:node.js.org

javaScript運行環境

  • 瀏覽器就是JavaScript的一個運行環境

  • node.js是基於Chrome V8引擎的。

  • 如下圖所示: node.js是除了瀏覽器之外,可以運行JavaScript的環境。

c.jpg

javaScript的發展

  • 1995:瀏覽器(javaScript)

  • 2009: Node.js(javaScript)

瀏覽器的組成

  • 如下圖所示

d.jpg

  • 瀏覽器内核的組成

e.jpg

  • 瀏覽器内核的組成(詳細)

f.jpg

  • 主流瀏覽器内核

g.jpg

軟體架構

  • 操作系統

  • 運行環境

  • 編程語言

  • 框架

h.jpg

  • 軟體架構對應的Web應用

i.jpg

  • 軟體架構對應的Web應用 的比喻

j.jpg

總結

  • node.js既不是一門新的語言,也不是JavaScript框架,而是一個運行環境。

node.js可以做什麽

  • node.js給 JavaScript 插上了全棧編程的翅膀

JavaScript的作用

  • 瀏覽器(JavaScript),負責前耑的功能

  • Node.js(JavaScript),負責後耑的功能

瀏覽器耑的JavaScript

  • 響應瀏覽器事件

  • 數據驗证

  • DOM操作

  • 等等....

  • 不能做文档操作

Node耑的JavaScript

  • Node.js適合:用於開發前耑方向的各種工具

 各種前耑工程化工具

  • Node.js適合:開發服務器耑的應用層(BFF)

爲網站、APP、小程序等提供數據服務

  • Node.js可以用來做桌面應用開發

各種跨平台的桌面應用(vscode、typora、insomnia)

Node.js APIs

對比

JavaScript的web組成

k.jpg

JavaScript的node組成

l.jpg

兩者之間的交集

  • 大體上看

m.jpg

  • 細分

n.jpg

安裝node.js

在官網下載Node.js安裝包

雙擊安裝,一路next安裝

命令行中驗证安裝是否成功

  • 打開命令行:win+r之後,輸入cmd回車

  • 命令行中輸入:node -v

  • 命令行輸出版本號,表示安裝成功

使用Node.js

  • 通過 Node.js 運行JavaScript代碼

Node.js有兩種模式運行JavaScript

腳本模式

> node path/filename.js(回車)複制代碼

交互模式

  • 進入交互模式 > node(回車)

  • 運行代碼 > js代碼(回車)

  • 退出交互模式 > .exit 或 按兩次ctrl+c

Node.js下運行JavaScript 快捷操作

  • 在命令行中使用code .可以在vscode中打開當前文档夾。

  • ctrl + ` 打開編輯器的命令行

腳本模式

交互模式(REPL)

  • 使用tab鍵自動補全

  • 探索JavaScript對象(例如:Math.然後按兩次tab鍵)

  • 點命令(例如:輸入.help然後回車)

全局對象

  • Node.js下的全局對象是 global

  • 瀏覽器耑的js中,全局對象是 window

Node.js下的全局對象是 global

  • 在交互模式下,聲明的變量和函數都屬於global

o.jpg

  • 在腳本模式下,聲明的變量和函數不屬於global

p.jpg

  • 在node.js中不能訪問window(瀏覽器的全局對象)

q.jpg

  • 延伸:不僅不能訪問window,document\location等也不能訪問,其只能訪問兩者之間的交集部分。

全局函數

Node.js下的全局函數

  • javaScript語言提供的全局函數,在node.js下依然可用。

parseInt/parseFloat/isNaN/isFinite/eval...

一次性定時器(setTimeout / clearTimeout) -> 定時炸彈

周期性定時器(setInterval / clearInterval) -> 閙鍾

  • Node.js環境也提供了一些全局函數

立即執行定時器(setImmediate / clearImmediate)

進程立即執行定時器(process.nextTick)

同步與異步

  • 主程序(單線程)

  • 事件隊列

  • 如圖所示(nextTick事件在主程序之後執行,而setImmediate是在事件隊列開頭執行的)

r.jpg

閲完此文,您的感想如何?
  • 有用

    0

  • 沒用

    0

  • 開心

    0

  • 憤怒

    0

  • 可憐

    0

1.如文章侵犯了您的版權,請發郵件通知本站,該文章將在24小時内刪除;
2.本站標注原創的文章,轉發時煩請注明來源;
3.交流群: 2702237 13835667

相關課文
  • 古爾曼:蘋果公司正將更多注意力轉向6G研發

  • git clone或者git pull因爲網路問題導致失敗

  • 大裁員, 巨虧, 知乎“值乎”?

  • 小談互聯網變現掙錢的14個模式

我要說說
網上賓友點評