很多前端工程師會把自己比作“魔法師”,而對於JavaScript這門語言,我也想把它喚作一門“有魔力的語言”。因為這群有無限想法的人,真的在用它創造各種讓你驚歎的事物。
一、前言
幾年前,筆者還是一名初涉程式設計的學生,對於開發的各個領域都倍感新奇。曾經在知乎一個程式設計相關的問題下,看到一個關於各個領域的詼諧論調,談到前端,他概括為:“前端簡單來說就是畫網頁”。笑談過後,筆者也不經意間留下了前端很簡單、比較低端的印象。
後來有了幾年的移動端開發經歷,後端也有一些實踐。在最近的一份工作經歷中,開始逐漸瞭解了一直未曾涉足的前端領域。這段經歷切實地印證了“無知者無畏”這句話,因為我逐漸發現了前端的魅力所在,甚至被她所吸引。
這篇文字我分類在了隨筆中,嚴格來說它不算一篇技術文章,寫下來的目的是想記錄一番自己的感悟,也希望和各位前端的前輩以及曾經和我有一樣想法的同學多多交流。
二、移動端的開始。
大學的時候,學院科創基地在專案領域的實踐順序便是先從前端開始入門,完成一個網頁專案之後,開始自由選擇後端、移動端,或者繼續深耕前端。那時對前端有了最初的印象:通過程式設計創造一個網頁。它的容易入門,讓最初的我覺得這個領域不過如此。各種培訓機構對於前端教學的猛烈勢頭,也造就了我對於這個技術方向“低端”的誤解。所以轉而開始 iOS 開發的學習。
轉眼幾年過去,在移動端學習的過程中,也在不斷地瞭解著其他領域。由於移動端對後端的依賴,自己也開始了後端開發的實踐,對幾種後端語言都有了嘗試。但是一直以來,對於前端都只是停留在能夠簡單地寫一些 HTML,粗略地讀懂前端的程式碼。而對於它的理解,更是和最初無異。
三、大前端的工作經歷
前段時間開始了在某數十人大前端團隊工作的經歷,崗位 iOS 開發,團隊中移動端工程師負責ReactNative、Hybrid等專案的 Native 部分。由於工作需要,開始了JavaScript的學習。曾經對這門語言的認識是“操作DOM,從而實現網頁中UI、資料等的動態部分”。
團隊中前端工程師的工作內容,也和我印象中的大大不同。他們會進行React框架的本地化改進,會為ReactNative新增更豐富的功能,他們更會創造一個個有想法的產品,比如根據註釋自動生成標準化文件的工具、協作管理和測試API的平臺等等,我印象中網頁的畫師竟然也可以是各種富有創意和實用性的產品的創造者。這讓我開始重新認識前端這個領域。
四、對前端的重新認識
隨著瞭解的加深,我開始接觸到更多開拓了眼界的前端專案,也對前端工程師有了全新的理解。
永遠不熄滅一統三端的雄心
由於任何平臺都必備 Web 執行環境,造就了“每當一個新的平臺出現,都是前端工程師的新舞臺”的局面。
個人電腦普及之後,由於 Windows 和 Mac OS 作業系統都有各自的市場,每當一款軟體推出,開發人員都必須為兩個平臺分別使用不同的語言編寫不同的桌面客戶端。這個時候前端工程師開始站了出來,他們創造了Electron,想要用Web三件套來構建跨平臺的桌面客戶端。
在智慧手機風靡的今天,他們又創造出了PhoneGap,想要用Web三件套來開發跨平臺的移動應用程式。他們創造了Weex,甚至想用一套Web程式碼構建各移動平臺的原生應用程式。他們還創造了ReactNative,想要用Web程式碼編寫各平臺的原生應用程式。
他們為了這個巨集偉的目標不斷嘗試,而桌面客戶端或移動端工程師則在不停地追隨他們的工作。(哭百家爭鳴的開發框架
對於各種設計模式,前端工程師們總是衝在前面進行嘗試,各種前端開發框架也就層出不窮。React、Angular、Vue,雖然彼此之間競爭激烈,但無疑他們都各有所長,也深刻改變了前端開發的方式。可以說,對於前端工程師,“與時俱進”是最基本的要求,因為這群人總在不停地創造新東西。後端?我也可以
誰說前端真的就永遠停留在前端?node.js告訴我們前端工程師也可以進行後端開發。而且由於 JavaScript 的語言、以及對應引擎的特點,node架構的專案在某些場景下還有著優秀的表現。在各種場景中進行創造
由於前端專案在各種平臺中的通行,以及瀏覽器在個人電腦中的使用方便性,前端工程師創造了各種可以方便我們生活的產品。可以說,很多前端工程師是具有優秀產品經理的想法的。
筆者使用的部落格框架Hexo以及同樣非常優秀的Ghost,可以非常方便地進行個人部落格網頁的自動化生成。
其他的各種JavaScript專案,筆者不一一列舉了,總之你會發現不斷地發問,“它竟然可以做到這個?”無所不能的JavaScript
很多前端工程師會把自己稱作魔法師,因為它們會創造出各種神奇的專案,滿足各種切實的需求。這一切都是因為它們有 JavaScript 這個有魔力的武器。在 Github 語言排行榜中中雄踞第一,那麼多人都在使用它做著各種有趣的事情。又或者說是指令碼語言的“無所不能”,另一個出色的指令碼語言 Python,也同樣在做著各種神奇的事情。
五、筆者的最終感悟
自己的職業規劃一直都是成為一個全棧工程師,進而成為一個懂技術的產品經理。後端作為一個專案的基石,所以一直在進行著嘗試,也規劃著即將發力學習。移動端是實踐已久的領域。而前端,一直都被自己所忽視。開始瞭解之後,竟然發現前端這個領域人人都是產品經理,讓我覺得移動端、後端的工程師總是在專注著自己的部分,而前端工程師卻是最有產品視野的,他們總思索著各種新奇的想法。事實也確實如此,相比起來,前端領域是極其有活力的。自己接下來,也將開始大前端的探索。
後記
無知者無畏。曾經覺得前端淺顯,覺得其他領域高階。經過了解才知它的魅力。確實,前端入門門檻很低,然而它的上限確實無窮高。不甚瞭解的時候,心中有莫名其妙的不屑。瞭解得越多,越發產生了敬畏。技術的鄙視鏈一直存在,現在卻發現,總是叫囂著鄙視某個領域的人,多半對這個方向不甚瞭解。只有在某個領域做到頂端的人,才有資格評判高下。哪天尤雨溪要是發話:“嗨,前端這個方向,不過如此。”那我可能就真的會信了吧。(笑