透明還是不透明,是個問題 —— 《你不知道的 JavaScript》書評
很喜歡《你不知道的 JavaScript》系列。我想這套書真正做到了深入淺出。入得深,以 JS 規範為藍本,把原理剖析的一清二楚,本書並不適用於初學者,而是對JS開發有一定的經驗的人。出的淺,剖析完原理,評判完各種觀點、方法的優缺點,能夠給出自己的結論,收斂到切實可行的方法。
這是一套有個性的書。針對市面上一刀切式的批判 JS 缺陷的書籍,作者的觀點是,你丫不會用而已。對於 JS 的 “bad parts”,作者認為不應該唯恐避之而不及,在倒掉洗澡水的同時把孩子也給倒掉了;而是取其精華,去其糟粕。在武林高手手裡,再爛的招式,也可以化腐朽為神奇。
更有意思的是,作者沒有迴避網路上對於 JS 一些奇葩特性的吐槽,而是秉著該書一貫的原則,進行細緻的剖析,給出令人信服的解釋。這一貫的原則——同時也是作者對於程式設計的理念——就是你必須知道自己寫的程式是如何執行的。你不僅僅要知道程式為什麼不能執行,更要知道程式為什麼能夠執行,否則你寫的程式就是“紙牌屋程式”。
對於這一點我深以為然。我曾經在播客上聽過一期作者的談話節目。作者認為,從事程式開發工作,不僅僅要對工作中使用的工具掌握精通,還要對該工具的底層理解透徹。假如你從事 React 開發,那麼除了精通 React 之外,還要對 JS 語言本身有深入的理解。當然技術棧可以一直往下深挖,但是至少要對自己所使用工具的下一層能夠理解。
“透明”一詞相信廣大程式設計師都不陌生。高層抽象對底層細節進行封裝,只暴露出簡單、符合直覺的介面,這樣我們就可以說,底層程式細節對於呼叫高層介面的人來說,就是透明的(不可見的)。分層抽象和封裝在軟體工程領域是非常有用的方法論。很多程式設計師也只滿足於會使用高層介面進行程式開發,而對於底層細節一無所知。
如果你對於中學時老師的口頭禪“你不需要理解,記住這麼做就可以了”不以為然,對自己的程式為什麼能夠執行而懷有強烈的好奇心,希望能夠明白自己在幹什麼,那麼,這個系列的書籍就是為你而寫的。
相關文章
- 健康還是工作,這是個問題
- 【基礎】EM 還是 REM?這是一個問題!REM
- netty系列之:選byte還是選message?這是一個問題Netty
- 去留無意,去留爺爺,是去還是留,這是一個哲學問題?
- 《你不知道的JavaScript》 (下) 讀書筆記JavaScript筆記
- 《你不知道的JavaScript》 (上) 讀書筆記JavaScript筆記
- 《你不知道的JavaScript》 (中) 讀書筆記JavaScript筆記
- 讀書筆記 – 你不知道的 JavaScript(上)筆記JavaScript
- 轉賬問題是屬於業務問題還是屬於技術問題?
- 通訊是個大問題,還好我們有方法。
- 《你不知道的 JavaScript》全卷讀書筆記JavaScript筆記
- 格力員工閒魚賣手機,背後“癥結”是手機的資訊不透明
- javascript中怎麼判斷某變數是null,undefined,還是不存這個變數 ? 以及變數是array 還是 object 還是 null ?JavaScript變數NullUndefinedObject
- JAVA關於判斷年份是閏年還是平年的問題Java
- 小遊戲研發團隊生存圖鑑:存活還是解散,這是個問題!遊戲
- css怎麼設定div不透明CSS
- 細讀《你不知道的JavaScript·上卷》1-1 作用域是什麼?JavaScript
- 問你個問題:是什麼讓高鐵變得“安靜”?
- IBM攜手Mediaocean通過區塊鏈解決廣告行業不透明問題IBM區塊鏈行業
- 朋友還是敵人:五個問題概述了人工智慧的未來人工智慧
- 都2019了你還不知道人工智慧是什麼嗎?人工智慧
- fdisk 更改分割槽容量遇到問題,還以為是oracle asm的問題OracleASM
- 你知道 0.1+0.2 !==0.3是進位制問題,但你講不出個所以然,是吧??
- JavaScript之你不知道的thisJavaScript
- 你不知道的JavaScript(二)JavaScript
- 你不知道的JavaScript(一)JavaScript
- 跳槽季,你是該跳,還是該留?
- 什麼是伺服器SSL證書 是SSL加密證書還是程式碼簽名證書伺服器加密
- 不看不知道,JavaScript 是如何在後臺工作的JavaScript
- 你是在扮演角色,還是在讓角色扮演你?
- 爭論不休的一個話題:金額到底是用Long還是BigDecimal?Decimal
- 5G到來,App的未來,是JavaScript,Flutter還是Native ?APPJavaScriptFlutter
- 在群裡看到一段程式碼,是記憶體模型的問題還是協程排程的問題呢?記憶體模型
- js 判斷是手機訪問,還是pc訪問JS
- 你所不知道的JavaScript 二JavaScript
- 你所不知道的JavaScript(三)JavaScript
- 一個有趣的問題, 你知道SqlDataAdapter中的Fill是怎麼實現的嗎SQLLDAAPT
- 你不知道的JavaScript中的5個JSON祕密功能JavaScriptJSON
- 長達 12 年,Go 泛型才引入,是政治,還是技術問題?Go泛型