摘要:作者韓子遲不知不覺間,源碼解讀系列進入了真正的尾聲,也請允許我最后一次下項目的原始地址這半年以來,花費了大量的業余時間,共計寫了篇隨筆包括此文,也給的源碼加了差不多行注釋,對于當初說的要做史上最詳細的源碼剖析,至此我也覺得問心無愧。
作者:韓子遲
What?不知不覺間,「Underscore 源碼解讀系列」進入了真正的尾聲,也請允許我最后一次 po 下項目的原始地址 https://github.com/hanzichi/u...
這半年以來,花費了大量的業余時間,共計寫了 25 篇隨筆(包括此文),也給 underscore-1.8.3 的源碼加了差不多 1500 行 注釋,對于當初說的要做「史上最詳細的 underscore 源碼剖析」,至此我也覺得問心無愧。
本文不想說我在這個過程中學到了什么,學到的東西,能寫的都在前面 24 篇隨筆中了,只能意會的我也說不出來(感觸最深的是閉包的強大)。本文是一篇「水文」,不談技術,拋開代碼,聽樓主扯扯淡。
Why Underscore?早期的幾篇隨筆都有「Why Underscore」這一節:
閱讀一些著名框架類庫的源碼,就好像和一個個大師對話,你會學到很多。為什么是 Underscore?最主要的原因是 Underscore 簡短精悍(約 1.5k 行),封裝了 100 多個有用的方法,耦合度低,非常適合逐個方法閱讀,適合樓主這樣的 JavaScript 初學者。從中,你不僅可以學到用 void 0 代替 undefined 避免 undefined 被重寫等一些小技巧 ,也可以學到變量類型判斷、函數節流&函數去抖等常用的方法,還可以學到很多瀏覽器兼容的 hack,更可以學到作者的整體設計思路以及 API 設計的原理。
其實這并不是直接原因,「導火索」是當時(三月末)學習函數節流和函數去抖的時候,發現很多文章混淆了這兩個概念,了解到 Underscore 封裝了這兩個函數,但是一用卻發現了它的 BUG!(詳見 一次發現underscore源碼bug的經歷以及對學術界『拿來主義』的思考 一文)
Underscore 早些年就接觸過,對其的了解也僅限于「一個輕巧的工具庫」,會不會還有其他的 BUG?同時源碼這么短(之前想過看 jQuery,被接近 1w 行嚇回來了),耦合度低(可以一個個方法分開看),也進一步激發了通篇解讀的興趣,想著這一路下來肯定能學到不少東西。好東西要與大家分享,同時確定了寫系列文章的 idea。
Where to write?哪里寫?想都沒想就確定了主戰場 GitHub。之前我是不玩 GitHub 的,現在已經離不開了,每天不刷個幾十次都手癢。為什么確定在 GitHub?理由很簡單,GitHub 有逼格啊(畢竟是全球最大的同性交友社區)。
當然,酒香也怕巷子深,寫完了沒人看無疑是對自信心的極大打擊,同時也需要大家來提出寶貴的意見。為此,幾乎每一篇完成后,都會在以下渠道分享:
開發者頭條
掘金
segmentfault 頭條
極客頭條
干貨集中營
其實主要就是前三個,后面兩個用了一段時間感覺不大好就不用了。極客頭條個人感覺分類有點亂,同時因為是 CSDN 旗下的,個人對 CSDN 沒太多好感;干貨集中營的話,維護者是「daimajia」大大,感覺移動開發者關注的會比較多。
分享的話,如果臉皮厚的話,也可以在微博艾特一些圈內大大們(樓主臉皮比較薄 ...)。
當然,我不僅在 GitHub 的 issue 里寫,還在以下一些渠道寫:
博客園
segmentfault
伯樂在線
簡書
簡書的話,后面斷斷續續不更了,個人喜歡專門的 IT 類博客,而且覺得簡書的 Markdown 渲染有問題,為什么都說它的 Markdown 體驗好 ... sf 和 伯樂在線 的話,閱讀量還是可以的,只是它們不是專門做博客系統的,基礎的分類歸檔功能都沒有(或許是我沒找到?),以后應該還是會以博客園為主要戰場。
Then?underscore.js 的源碼解讀畫上了句號,接下去干嘛?其實樓主對以下幾個庫也挺感興趣的。
lodash(Underscore 的完美替代品,據說效率比 Underscore 高好多)
underscore.string(Underscore.js 沒有為 String 擴展方法)
underscore-contrib(Underscore-contrib 是一個 Underscore 的代碼貢獻庫)
Underscore.php / API
underscore.php(Underscore.js 官網 推薦)
End那就這樣吧,749 Star / 140 Watch / 153 Fork 算是對我的肯定和鼓勵吧 ^_^
也許我韓子遲還會回來的!
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/88001.html
摘要:支持形式的調用這其實是非常經典的無構造,其實就是一個構造函數,的結果就是一個對象實例,該實例有個屬性,屬性值是。 前言 終于,樓主的「Underscore 源碼解讀系列」underscore-analysis 即將進入尾聲,關注下 timeline 會發現樓主最近加快了解讀速度。十一月,多事之秋,最近好多事情搞的樓主心力憔悴,身心俱疲,也想盡快把這個系列完結掉,也好了卻一件心事。 本文...
摘要:年,阿里巴巴在上開源,許多開發者及公司都青睞于使用來解決服務化問題。首先阿里巴巴將開源提到了新的戰略高度,去年云棲大會上阿里云宣布了加大技術投入擁抱開源的策略。自去年開源重啟以來,上的數增長接近,達到了。 摘要: 羅毅,花名北緯。這個名字,如果是混過天涯論壇的大齡網民應該都不陌生,北緯67度3分周公子(簡稱北緯)虐殺易燁卿MM的世紀大戰至今還是天涯神貼 ,當時更是有看客賦詩形容:目睹此...
摘要:隨著年上半年的臨近尾聲,我們有必要重新回顧一下云計算之戰,看看這一年將如何發展。毫不奇怪,這三家公司分別是,微軟和谷歌云,它們進入了領導象限。邊緣計算即服務。此舉是邊緣設備上機器學習的有趣測試平臺。和打磨他們的云計算并關注。 隨著基礎設施領域的差距縮小,上半年最有意思的發展圍繞著軟件即服務展開。然而,物聯網,...
摘要:隨著年上半年的臨近尾聲,我們有必要重新回顧一下云計算之戰,看看這一年將如何發展。毫不奇怪,這三家公司分別是,微軟和谷歌云,它們進入了領導象限。邊緣計算即服務。此舉是邊緣設備上機器學習的有趣測試平臺。和打磨他們的云計算并關注。 隨著基礎設施領域的差距縮小,上半年最有意思的發展圍繞著軟件即服務展開。然而,物聯網,人工智能和機器學習也形成了差異。隨著2018年上半年的臨近尾聲,我們有必要重新回顧一...
閱讀 2166·2023-04-26 00:00
閱讀 3278·2021-09-24 10:37
閱讀 3540·2021-09-07 09:58
閱讀 1531·2019-08-30 15:56
閱讀 2228·2019-08-30 13:11
閱讀 2323·2019-08-29 16:38
閱讀 972·2019-08-29 12:58
閱讀 1890·2019-08-27 10:54