Node.JS left-pad 事件
這件事情 NPM & left-pad: Have We Forgotten How To Program?,似乎在 node.js 圈吵很兇 ….
node.js 現在讓人最困擾的就是: 每個 module 都有小而美的精神,而且都很有個性 (跟 Un*x 很像)。但就是太有個性了,所以讓人覺得隨便的感覺 ….. 特別是很多 source code pull 下來真的是慘不忍睹 … 可讀性差, naming 混亂 ….
一隻 function module 放到 npm, 有可能就會被大的 module 參考. (很多 module 裡只有一行 code 的 ….)
像 left-pad 這種一個 loop 的東西,開發快當然沒問題,但從效能角度來看是有待商榷的,甚至是出局的。
PHP 剛開始的 function 大概就是這樣,超級亂的 function 與 naming / arguments / output … 但是能動 …. 然後 node.js 有些 “慣例性的用法”, 像是 lodash, 熟悉了就還好, 但是可讀性很差. 感覺很像 perl … 寫的人很爽,接手的 XXX 罵不完.
這樣的生態圈發展很快,也非常熱絡,但是對於需要高效能、穩定性、標準化的實務應用來講,還是要多慎選 modules 的使用。特別是效能的評估與架構性。
雖然感覺很亂,語法 (ES6) 在 OO 方面也不夠成熟, 像是沒 interface, TypeScript 才有; 只能宣告成員方法,無法宣告成員屬性; 沒有 private 修飾 …. (可能有,或者有類似的寫法 ….) …. runtime 能否做 profiling, memdump, 分析工具? 重構工具?
但是,天下分久必合,合久必分 …. node.js 還是很棒 + 潮到出水的,值得投資學習 ….