本文作為Vue3源碼系列的開篇詞,以問答形式來诠釋程式員為什麼要學習源碼

1. 為什麼要學習源碼
閱讀優秀的代碼的目的是讓我們能夠寫出優秀的代碼
寫代碼其實就跟我們寫作文一樣,你看的高分作文越多,寫出高分作文的機率就越大
大部分程式員都隻會寫代碼(改,抄,
stackoverflow
工程師,代名詞: 搬磚),會閱讀代碼的很少,為什麼呢?因為國内大部分的IT教育,網課,教育訓練都沒有教你怎麼去看代碼,隻教你怎麼去寫代碼
再者基于現在的程式員工作模式(子產品化開發,隻需要拿到需求做自己的部分),别說看源碼,甚至就連項目裡的代碼都懶的去看,我認識的很多程式員就是這樣的,一個項目摸了兩三年,你要問他項目中
webpack
都幹了哪些事情,他的回答是不知道,反而趾高氣揚的告訴你,那些他從來都用不上,看了也沒什麼用,也看不懂,這裡省略内心千字髒文
閱讀代碼其實就咱們跟閱讀一本小說一樣,看過玄幻小說才能說出來修仙,看過都市的才能講出來穿越
閱讀主要目的是為了幫助我們積累素材,不要書到用時方恨少,看到美女我們應該能有一萬種詞語去形容,如氣若幽蘭,美豔不可方物,世間尤物,而不是簡短的幾個字,我艹,美女!
- 那麼為什麼非要看源碼呢?
前面有提到優秀的高分作文看多了你才能寫出來高分作文,你天天看着0分作文,那麼寫出來的大機率也自然是0分作文,什麼樣的作文算是高分呢?這個很好區分,前期從衆就好
不給自己設限,不要讓你周圍人的技術上限成為你的上限
很多時候,人會潛意識給自己設限
井底之蛙是大家應該都熟悉的故事,大多數時候我們會給自己畫一個圈,将同僚的技術跟自己的技術做對比,或者将
TL
的技術跟自己做對比,經常有人向我吐槽說,同僚的技術不如他為什麼工資比他高,
TL
的技術也不怎麼樣,為什麼能成為
TL
,現在給你的回答是,"因為你以為的并不是你以為的"
我們完全沒有必要把時間花費在這種毫無意義的事情上面,改變不了環境就改變自己,學會破圈,為什麼總有人說北上廣深适合創業,因為北上廣深的風水爆炸還是空氣新鮮?顯然都不是,在北上廣深無非就是讓你的人脈更優質一些,上限更高一點,你的圈有多大,未來的想象空間才有可能更大
- 你一直将自己跟同僚對比,那麼你同僚的上限就是你的上限
- 你拿尤大跟自己對比,那麼尤大的上限就是你的上限
功利性的閱讀源碼
功利性即指有目的性的,明确知道自己幹完某一件事後能得到什麼樣的回報,是以首先你要知道你想得到什麼?
看每一本書都有明确的目的,想學會理财,就得看理财相關的書,想學點技術,就得看點技術相關的書
看源碼也是一樣,你對
vue.use
之後發生了什麼比較好奇,或者是你覺得現在面試都需要會看點源碼,這都很好,至少你有明确的訴求
凡事隻要有了功利屬性,才更容易走的下去,否則就是真香警告
2.源碼應該怎麼閱讀
單點突破
這種情況一般在是自己寫需求遇到問題了,或者突然一時興起想看看内髒的同學,可以直接粗暴的找到源碼的倉庫,直接在該倉庫搜尋關鍵字,然後根據模糊搜尋的結果再結合自己的了解選擇合适的結果,以下以
Vue.use
為例,如下圖
我們可以看到第一個結果就是
.spec
(Standard Performance Evaluation Corporation,标準性能評估機構bai) 可以了解為代碼的試金石,優秀開源代碼的标配,直接代表着代碼的穩健性
點進去我們看到的代碼如下,從圖中我們就能大緻的猜到
Vue.use
的一些使用場景及邊界值
image.png
從結果的第四個點進去,我們就能直接看到源碼了,是不是很easy ?
系統閱讀
即指以項目為次元的源碼閱讀,這種方式比上面的單點突破價值就要大很多,讀完之後,不僅可以知道執行一個Api時具體發生了什麼,更重要的是能學習到項目整體的設計思想和架構理念
當然,閱讀難度也會有相應提高,這裡給你四個建議
- 決心(事事把決心放第一)
- 對你所閱讀的代碼架構要有基本的了解(不然你讀個啥)
- 設定一個計劃并自我監督總結
- 循序漸進,任何事情需要一個過程,由易到難,由淺入深
具體方案
- 選擇合适的工具讓代碼先跑起來
- 理清楚代碼組織關系及用途
- 利用好單元測試
- 利弊權衡(該跳就跳,長期處于蒙的狀态很容易走進死胡同,可以标記回頭再看)
- 利用搜尋引擎(可以結合網上的源碼分析資料了解)
- 多跟自己互動(帶問題閱讀)
3.本地怎麼調試源碼
科普一下
SourceMap
這個東西吧,分開念
Source
Map
,一句話了解就是一段維護了前後代碼映射關系的
json
描述檔案,具體故事可以泡杯茶慢慢講了,這裡不過多描述,感興趣的自行查閱相關文檔
有了
sourcemap
檔案後,你想
debugger
還是
console
,就可以随意了
在vue3的
example
中的我們看到示例引用的都是
dist
檔案
隻需要将
sourcemap
配置開啟,然後就能随意的
debugger
了
最後
- 關注我的公衆号
,回複pdf領取前端優質書籍pdf若川視野
- 覺得文章不錯,可以點個
呀^_^另外歡迎贊
交流~留言