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