用我用什麼角度去看套件?
往常找一款套件,大部分的人的態度是「我看起來好用就好,不需要關心實作方法」。但隨著自己資歷的增長,我開始在意我用的套件是採用什麼解決方案去做到效果。
其實我蠻討厭有一種「反正套件幫我解決了,所以我使用套件,不用關心他細節實踐」,但我其實挺不能認同這種方式⋯⋯過去我的實力建立在「大量閱讀原始碼」這樣的方法去提高能力,所以會思考各種實作的實踐,用它本身實現的方式來思考坑在哪,其實很大的程度避免了很多坑。當然常常別人覺得「有問題寫法」的問題,我常常會用「他原理就這樣,一定會有問題啊」這樣的思維看待。我也不太會100%去依循官方的作法,我會從本質思考「它就是這樣的東西,所以這樣用也是蠻合理的」。
上面種種情況,其實某種角度有點狂妄,但跟我的成長歷程和學習方法造就現在的我。經常鑽牛角尖在底層邏輯,搞得自己人仰馬翻,又無法被理解。
我很贊同「工作要用套件解決問題」,這是效率與產出的問題。
我也贊同「沒有程式碼就是最好的程式碼」,這是維護性的問題。
我更贊同「站在巨人的肩膀上開發」,所以所以善用各種前人開發基礎與背景知識去開發絕對是必要的。
經常社群朋友笑我是「竹輪」,因為我在個人的小專案真心造過不少輪子,也為了學習怎麼造輪子嗑了許多的套件原始碼,熟悉不同的套件作者的手段與方法。我不喜歡揣測套件作者的想法,我對待所有程式碼是用「平等的」態度去看待,好與壞有時是客觀的,場景不同也有時是主觀的。但我想說的是,造輪子絕對是建立在背後大量的準備和閱讀,不是憑感覺憑空想像出來的。