前端從小白到架構要知道的3點

凌霄光發表於2018-11-01

1.前端的技術體系

前端程式碼執行在瀏覽器之上,並不和作業系統耦合,就像java執行在jvm一樣,都是在平臺之上,而平臺是可以做移植和適配的。前端這些年的發展,整體可以分為兩方面,平臺之上的前端發展,和平臺本身的發展。

前端程式碼的執行平臺現在不只限於pc端瀏覽器、移動端瀏覽器,也可以是app中的hybrid的頁面,可以是node上的後端或者做工程化的程式碼,可以是electron做的桌面端,還可以是weex、rn等通過打包後執行在Android和ios上的原生應用,甚至是嵌入式的應用。這些都是基於js引擎和渲染引擎做封裝和擴充套件而實現的前端程式碼的執行平臺。

平臺之上的前端發展包括js本身es6、es7的不斷演進,包括vue、angular、react等的mvvm和元件化,因為有了虛擬dom而實現了平臺無關。這些程式碼是可以執行在各種平臺和環境的,對應的技術也更加的通用和核心。

平臺本身提供的api因環境的不同而不同,不需要過度深入細節,只要對整體的思路和脈絡有所掌握和理解,具體開發的時候可以定位到文件中對應的位置就可以了。而平臺之上的前端核心技術,才是我們的核心技能和競爭力,包括對js語言包括es6、es7等的熟練度,包括對vue、react、angular本身機制和基於這些機制封裝元件的掌握等。

這兩部分程式碼(平臺無關的程式碼和與具體平臺耦合的程式碼)會通過架構來合理的有機的組合成一體,架構的基礎也就是對這兩部分的理解和掌握,這時候你也要學習一些設計模式或函式式等組織程式碼的思想,才能設計出易於理解和維護,易於迭代和擴充套件的優雅架構。

前端這些年風起雲湧、百花齊放,不能一鍋端的全部學習,工作之餘很難有那個精力,我們主要要做的就是對核心部分的語言和框架還有架構更好地掌握,對平臺的特性和能力還有機制有整體的理解就夠了。新的庫或框架分門別類的層次化的融入到你已有的知識體系中去。前端在變,認知體系的骨架不變。

2.面試和工作中的業務和技術

面試問兩方面,一方面是你的專案經歷,主要是其中的純技術和一部分業務的技術方案。另一方面就是技術本身了,包括語言的基礎、邏輯能力、架構思想、對框架的掌握程度等,主要就是一些具體的程式碼和抽象的思想。

所以,不能過度關注業務,多關注技術本身,專案是一方面,技術本身的成長更重要。

如果能做一些沉澱會更好,如果有技術部落格或者開源專案,面試成功率會增加,因為這些能夠更全面的看到你的實力,光靠面試是不行的。而且做這些的過程中也能理清思路,幫你更好的掌握,而且持久化也方面以後檢視,這些是伴隨你整個職業生涯的,與公司無關。

還有,看文件很重要,因為你所有的使用方式所有的業務程式碼的組織都與框架相關,你要優化也要對框架有全面掌握,最起碼知道有什麼東西。而且對框架了解之後,你也能區分出什麼程式碼應該使用什麼封裝形式,比如dom操作的邏輯是應該放到元件裡還是封裝成指令等。

當然,如果你到了管理層,業務的狀況直接關係到你的kpi,這時候你就要把更多精力放在業務上了,以後你面leader崗也更多是管理技巧和業務和一部分技術的考察。但前期還是應該以提升技術,積累專案經驗為主,其中專案經驗就是用技術解決業務問題的方案的經驗。

3.最重要的態度

最重要的是要主動的去思考和做事,而不是被動的接受需求和技術方案,被動的工作,被動工作的叫做碼農。

要有自己的想法,無論是否成熟或正確,比如你要做產品的這個功能,你會怎麼設計流程,你如果自己做ui,你會怎麼設計,你如果做mvvm框架,你的思路是什麼。主動的思考,用你的思路去整合接受到的資訊,你就會形成自己的觀點和看法,而且一旦有一些你驗證後發現是正確的,那麼你對它的掌握程度會非常高。

想法的表達有各種形式,聊天、文章、具體的程式碼等等,輸出和表達的過程是理清思路、疏通細節以及把你的想法傳遞出去的過程,也很有必要。

總之,主動思考和做事,不斷輸出和接受反饋,才能變得更有主見,對技術有更深入的理解,慢慢也就會擁有話語權。

總結

前端從小白到架構需要接觸和學習大量的知識,需要經歷大量的專案實踐,知識和技術方面需要體系化的去整理和擴充套件,才能在前端的發展洪流中游刃有餘。對於專案經驗要區分出那些是通用的技術,那些是用技術解決業務問題的方案,這些你的經驗才真正的有價值且可複用。

如果說上面兩點是術的話,主動的態度才是道。唯有主動的學習和思考,才能對技術有更加深入的理解和掌握,也會更有主見,有鞭辟入裡的觀點,這種態度最終會讓你形成上面所說的知識體系和對大量解決業務問題的技術方案。

有了體系化的前端技術和大量針對業務問題的技術方案的積累之後,你是做全域性的架構,還是做細節的底層實現,whatever,隨你喜歡。

相關文章