如何突破技術瓶頸(適合P6以下)

大家好,我是若川。我持續組織了近一年的源碼共讀活動,感興趣的可以?點此掃碼加我微信?lxchuan12?參與,每周大家一起學習200行左右的源碼,共同進步。同時極力推薦訂閱我寫的《學習源碼整體架構系列》?包含20余篇源碼文章。歷史面試系列。另外:目前建有江西|湖南|湖北籍前端群,可加我微信進群。

本文作者:@孟祥_成都
原文鏈接:https://juejin.cn/post/7168671474234949662

1前言

最近在更新react組件庫源碼的文章,其實vue和其他框架都一樣,就是我發現自己在一年前直接看這些源碼(不調試),還是有點吃力的,然后就放棄了。

可最近不知道為啥,看這些源碼對我來說沒啥太大難度,直接干就完事了,不需要啥調試。自己好好回想了一下,為什么會有這樣的變化?也算幫助一些想突破自己技術瓶頸的同學。

有新人在下面留言說看到很焦慮,剛進前端領域的同學,你們首要任務是能完成業務開發,此時業務開發帶給你的提升是最明顯的,文章更多的是幫助業務api用熟之后的想有突破的同學,不用焦慮,哈哈。而且話說回來了,我在平時工作中看到不想突破的人基本占百分90%,無論大小廠,所以不突破也沒啥,大部分人只是僅僅當一個普通工作而已。

2結論

首先我得出結論是:

  • 最開始不要自己去讀源碼,看別人的文章和視頻即可,目的是先接觸比自己能力層次高的代碼,為超越現有的能力鋪路(后面詳細談怎么做)

  • 平時注意積累一些手寫題的思路,網上面經很多,主要不是寫出來,是理解原理,理解大于一切,不理解的東西終究會忘記,我們要積累的是能力,能力是第一!(后面詳細談),設計模式里的發布訂閱者模式必須要理解!這是寫很多庫常見的技巧。

  • 最后開始獨立去看一些小的代碼庫,比如騰訊,阿里,字節的組件庫,這些庫大部分組件難度低。

3去哪里看視頻和文章學源碼

視頻

最簡易的就是跟著視頻學,因為視頻會把代碼敲一遍,給你思考的時間,講解也是最細的,很適合剛開始想造輪子的同學了解一些有難度的源碼。

舉個例子:

我當時看了koa的源碼,了解了koa中間件的原理,我自己造了一個自動化發布腳本就利用了這個原理,redux中間件也是類似的原理,在函數式編程領域叫做compose函數,koa是異步compose,redux是同步compose,

簡單描述下什么是compose函數我把大象裝進冰箱是不是要 1、打開冰箱門 2、裝進去大象 3、關冰箱門那么很多同學就會寫一個函數

function?裝大象(){//?打開冰箱//?裝大象//?關閉冰箱門
}

compose函數會把這個過程拆開,并且抽象化

//?把裝大象抽象為裝東西函數
function?裝東西();
function?打開冰箱();
function?關閉冰箱();compose(打開冰箱函數,?裝東西函數,關閉冰箱函數)

此時compose把上面三個函數抽象為一個打開冰箱往里面裝東西的函數,我們只需要把參數大象穿進去就抽象了整個過程

compose(打開冰箱函數, 裝東西函數,關閉冰箱函數)(大象)

具體內容我還寫過一篇文章,有興趣的同學可以去看看:終極compose函數封裝方案![1]這個大家應該有自己的去處,我自己的話很簡單,視頻一般去b站,就是bilibili,有些同學以為這是一個二次元網站是吧,其實里面免費的學習資料一抓一大把呢,啥都有。

比如說我在b站看了很多linux入門教學視頻,還有一個培訓公開課,講的都是源碼,什么手寫react hook,手寫webpack,手寫xxx,那個時候說實話,聽了視頻也不是很理解,但是我還是挺喜歡前端的,沒咋理解就繼續聽。

記住,我們需要短時間內提升能力,所以視頻算是其中最快的了,其他方法不可能有這個來的快,并且沒理解就算了,能理解多少是多少。

學習是一個螺旋上升的過程,不是一下子就全懂或者全不懂的,都是每次比上一次更懂一點。除非你是天才,急不來的。

視頻搜索第二大去處就是論壇,一些論壇有各種各樣的培訓視頻,這種論壇太多了,你谷歌或者百度一抓一大把。

對了,谷歌是爸爸,你懂我意思,不要吝嗇小錢。在搜索學習資料面前,百度就是個弟弟。

4文章

文章一定記住,在精不在多。

切記,每個人都處在不同的學習階段,不要盲目追求所謂的大神文章,不一定適合你,比如說有些人剛接觸前端,你去看有些有深度的文章對你沒啥好處,浪費時間,因為你理解不了,理解不了的知識相當于沒學,過兩天就忘了。

文章選擇范圍,比如掘金,知乎還有前端公眾號,基本上就差不多了,選一兩個你覺得你這個階段能吸收的,好好精讀,堅持個一年你會發現不一樣的。

5額外的知識儲備

前端3年前主流的前端書我都讀過,什么紅寶書,權威指南都讀了好幾遍了。

但有一本從菜鳥到高級-資深前端很推薦的一本是:JavaScript設計模式與開發實踐(圖靈出品)(騰訊的一位大哥寫的,不是百度的那位,這兩本書我都看過)

里面的知識點很干很干,里面有非常多的技巧,比如說你的同事寫了一個函數,你不想破壞函數,有什么辦法拓展它(其實我覺得我想的這些題就比前端八股文好玩多了,是開放性的)

  • 技巧很多,比如面向切面編程,加個before或者after函數包裝一下

  • 比如責任鏈模式

  • 比如剛才的compose函數

  • 比如裝飾器模式

6確立自己的發展方向

大家其實最后都要面對一個很現實的問題,就是35以后怎么辦,我個人覺得你沒有對標阿里P7的能力,落地到中小公司都難。

所以我們看源碼,看啥都是為了提升能力,延長職業壽命。

那么如何在短時間內有效的提升,你就需要注意不能各種方向胡亂探索,前端有小游戲方向,數據可視化方向,B端后臺系統方向,音視頻方向等等

我是做b端,那b端整個鏈路我就需要打通,組件庫是我這個方向,所以我探索這里,還有node端也是,寫小工具是必須的,但是你們說什么deno,其他的技術,我根本不在乎,沒時間浪費在這些地方,當然除了有些業務上需要,比如之前公司有個ai標注需求,用canvas寫了一個類似畫板的工具,也算開拓了知識點,但這也不是我重點發展的方向,不深入。

我做組件庫是為了后面的低代碼,低代碼平臺的整體設計思路我已經想好了,整體偏向國外開源的appsmith的那種方式,然后打通組件間通信的功能,我認為是能勝任稍微復雜的b端業務場景的,而且可以走很多垂直領域,比如網站建站,微信文章編輯器這種。所以我才開始研究組件庫的,因為低代碼大多數復雜功能都在組件上。

7工作上勇于走出舒適圈

為什么這個跟看源碼相關呢,如果你做過比較復雜的項目,你會發現很多現成的第三方庫滿足不了。比如說我自己遇到過的大型sass項目,ant design就滿足不了,所以你才發現,源碼看得少加上業務急,代碼就爛,時間上就留不出自己偷偷學習的時間,如果你想長期從事軟件開發,沒有成長是一件很危險的事(錢多當我沒說,哈哈),因為無論如何,有本事,總沒錯的。

當你的業務難度上去的時候,會逼著你去提升能力,所以你如果想前端走的更遠,建議不要在自己的舒適區太久,業務上選擇一家比較難的公司,后面再跳槽就是沉淀這段時間的知識點了,當你能夠有自信說,我現在帶團隊,從0到1再遇到那么難的業務時,能從容應對,恭喜你,你可以去面下阿里p7,不是為了這個工作啊,可以檢驗下是不是達到這個職位的標準了,我就喜歡偶爾面一下,也不是換工作,就是看看自己進步沒。

參考資料

[1]

https://juejin.cn/post/6989815456416661534: https://juejin.cn/post/6989815456416661534

c57573dd0f0270630e13d100bb1a8c7e.gif

·················?若川簡介?·················

你好,我是若川,畢業于江西高校。現在是一名前端開發“工程師”。寫有《學習源碼整體架構系列》20余篇,在知乎、掘金收獲超百萬閱讀。
從2014年起,每年都會寫一篇年度總結,已經堅持寫了8年,點擊查看年度總結。
同時,最近組織了源碼共讀活動,幫助4000+前端人學會看源碼。公眾號愿景:幫助5年內前端人走向前列。

a86f0351aadfb4719f0ed7dbeb978d2e.jpeg

掃碼加我微信 lxchuan12、拉你進源碼共讀

今日話題

目前建有江西|湖南|湖北?籍 前端群,想進群的可以加我微信 lxchuan12?進群。分享、收藏、點贊、在看我的文章就是對我最大的支持~

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/274452.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/274452.shtml
英文地址,請注明出處:http://en.pswp.cn/news/274452.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

stack smash_扶手椅VGUX:Super Smash Bros.Ultimate

stack smashEasily far the most exciting news out of Super Smash Bros. Ultimate’s announcement was that every single character would be returning to the game.asily迄今為止最令人興奮的消息了任天堂明星大亂斗最終宣布的是, 每一個字符會被返回到游戲中…

《Two Dozen Short Lessons in Haskell》學習(十)- Private Definitions — the where-clause

《Two Dozen Short Lessons in Haskell》(Copyright © 1995, 1996, 1997 by Rex Page,有人翻譯為Haskell二十四學時教程,該書如果不用于贏利,可以任意發布,但需要保留他們的copyright)這本書是學習 Ha…

我和掘金合作的源碼共讀小冊報名快1000人了~

眾所周知,我和掘金合作出了源碼共讀第一期。我是前端領讀員。現在報名快1000人了~獎品豐厚。也有一些小伙伴已經寫了好幾期筆記了~但相對1000人寫的還是太少。什么?你不知道?那也很正常,畢竟我的公眾號常讀人數比較少。大部分人都…

【短語學習】盈余量分析(earned value analysis)

作者:gnuhpc 出處:http://www.cnblogs.com/gnuhpc/ 各種形式的盈余量分析是衡量執行時最常用的方法。它把范圍、成本和進度等度量標準結合在一起以幫助項目管理小組評估項目執行。對每項活動而言,盈余量分析包括計算三個主要數值:…

配音劇本_網絡的各個階段:劇本如何傳達更好的UX

配音劇本讓我們將焦點放在使用劇本技巧提升顯微鏡上。 (Let’s put the spotlight on elevating microcopy with playwriting techniques.) “Anything you put in a play — any speech — has got to do one of two things: either define character or push the action of t…

極致編譯速度,一文搞定webpack5升級

大家好,我是若川。我持續組織了近一年的源碼共讀活動,感興趣的可以 點此掃碼加我微信 lxchuan12 參與,每周大家一起學習200行左右的源碼,共同進步。同時極力推薦訂閱我寫的《學習源碼整體架構系列》 包含20余篇源碼文章。歷史面試…

Java學習筆記(7)——輸入輸出

1、File 不同的操作系統對于檔案系統路徑的設定各有差別,例如在Windows中,一個路徑的表示法可能是: "c:\\Windows\\Fonts\\" 而在Linux下的路徑設定可能是: "/home/justin/" Windows的路徑指定是使用UNC&…

全庫模式 用戶模式 表模式_暗模式,亮模式和用戶的故事

全庫模式 用戶模式 表模式I have been working on designing a UI for an app that has individuals over the age of 60 as its main audience. At some point, I found my design more appealing in dark mode. As a UX designer, I know that my opinions and preferences d…

Rollup 與 Webpack 的 Tree-shaking

大家好,我是若川。我持續組織了近一年的源碼共讀活動,感興趣的可以 點此掃碼加我微信 lxchuan12 參與,每周大家一起學習200行左右的源碼,共同進步。同時極力推薦訂閱我寫的《學習源碼整體架構系列》 包含20余篇源碼文章。歷史面試…

聚類與分類的主要區別在于:_經驗在于細節:分析流服務的用戶體驗

聚類與分類的主要區別在于:看不見的差異 (The Invisible Difference) When app markets mature the overlap in features and designs grows closer as they catch up and copy each other. The more similar the apps are to one another, the more important the …

asp.net 動態創建TextBox控件 如何加載狀態信息

接著上文Asp.net TextBox的TextChanged事件你真的清楚嗎? 這里我們來說說狀態數據時如何加載的。雖然在Control中有調用狀態轉存的方法,但是這里有一個判斷條件 if (_controlState > ControlState.ViewStateLoaded) 一般的get請求這里的條件是不滿足…

從零實現一個迷你 Webpack

大家好,我是若川。我持續組織了近一年的源碼共讀活動,感興趣的可以 點此掃碼加我微信 lxchuan12 參與,每周大家一起學習200行左右的源碼,共同進步。同時極力推薦訂閱我寫的《學習源碼整體架構系列》 包含20余篇源碼文章。歷史面試…

ios 刷新遮罩遮罩_在Adobe XD中進行遮罩的3種方法

ios 刷新遮罩遮罩Are you new to Adobe XD? Or maybe you’re just stuck on how to create a simple mask? Here are 3 quick tips for how to mask your photos and designs in Adobe XD.您是Adobe XD的新手嗎? 或者,也許您只是停留在如何創建簡單的…

C#除法運算

C#中進行算術運算容易牽扯到類型的自動轉換,這種自動轉換稱之為隱式轉換,當然還可以人為的強制轉換 隱式轉換要求:不丟失精度,而且轉換前后都為數值 強制轉換:容易丟失可能會丟失精度 1 namespace 除法運算2 {3 cl…

Vite 4.0 正式發布!

源碼共讀我新出了:第40期 | vite 是如何解析用戶配置的 .env 的鏈接:https://www.yuque.com/ruochuan12/notice/p40也可以點擊文末閱讀原文查看,歡迎學習記筆記~12 月 9 日,Vite 4.0 正式發布。下面就來看看 Vite 4.0 有哪些更新吧…

代碼復審

我們CodingCook復審的是WWW的代碼,他們的項目是時間管理助手(TimeLine)。只是跟根據自己的經驗來看,不一定準 先說一下整體的感覺。WWW的代碼用了應該是比較符合面向對象的思想,借口,封裝隨處可見&#xff…

圖像標注技巧_保護互聯網上圖像的一個簡單技巧

圖像標注技巧補習 (TUTORIAL) Have you ever worried about sharing your images on the Internet? Anytime you upload something to the web you risk the chance of your work being used (without permission) by another.您是否曾經擔心過要在Internet上共享圖像&#xf…

【VueConf 2022】尤雨溪:Vue的進化歷程

大家好,我是若川。我持續組織了近一年的源碼共讀活動,感興趣的可以 點此掃碼加我微信 lxchuan12 參與,每周大家一起學習200行左右的源碼,共同進步。同時極力推薦訂閱我寫的《學習源碼整體架構系列》 包含20余篇源碼文章。歷史面試…

WCF netTcpBinding寄宿到IIS7

config配置文件不多說 <?xml version"1.0" encoding"utf-8" ?> <configuration><system.serviceModel><behaviors><serviceBehaviors><behavior name"myBehavior"><serviceMetadata/></behavior…

ar軟件測試工具_如何為用戶測試制作快速的AR原型

ar軟件測試工具We had a project recently with an element of AR-based interaction, which it turned out was impossible to create as a prototype in either Invision or Framer (our current stack). This had a massive impact on our ability to test with users in a …