最近在閏土大叔的前端圈裏有不少小夥伴南下杭州應聘求職拿OFFER,貨比三家以後,最終入職了適合本身的公司,而且還拿到了不錯的薪水。在這些小夥伴當中,不乏剛剛大學畢業或者師出培訓班的職場萌新,在順利找到工做以後,該如何在公司裏體現前端的價值?你又該如何在前端圈裏提升本身的議價能力呢?前端
別急,接下來且聽大叔娓娓道來。vue
今天我主要想講講前端工程,這是目前國內的前端主流模式,這其中就包括了webpack 和 Vue.js。webpack
webpack已是一個咱們開發WEBAPP這種類型的項目的時候,離不開的工具。webpack能幫咱們解決很是多的問題。做爲一個前端開發人員,在可見的幾年內,咱們都須要去增強本身webpack的能力。或者說未來可能會出現一個相似於webpack,或者比它更強大的工具,那麼這麼一個工具是可預見的,確定會存在的一個東西,而這個東西會在很長的時間內成爲咱們前端去衡量一個開發人員的能力是否強大的一個標準。web
Vue.js做爲如今前端圈的框架裏首屈一指的存在,尤爲是在國內,用的很是多,應該來講已經超過了React的使用量。並且如今Vue.js依然處於一個很是好的社區氛圍當中,它的開發速度,新的功能的增長速度都很是的快。而後它的BUG解決的效率也很是的高。vue-cli
Vue.js的做者在他的發佈過程中,爲咱們解決了很是多的在開發過程當中遇到的工程問題,好比他給咱們提供了.vue的開發模式,讓咱們能夠很是方便地去寫一個組件。而後官方發佈了Vuex、Vue Router這些工具包,這在React中有類似的參照物像 React Router、Redux。這些工具包都是Vue.js官方去開發的,因此它的維護性會比React 中的第三方維護的要好不少。在這種狀況下之下,國內的不少工程師,在作前端項目以後,愈來愈多地選擇使用Vue.js做爲開發框架。因此咱們做爲前端開發人員去學習Vue.js,是咱們須要掌握的必不可少的技術棧。後端
在如今的前端開發當中,重點和難點並非咱們的業務開發。由於大部分公司的業務並不會特別的複雜,並且每一個公司當中他們的業務是不同的。因此你在學習一門技術的時候,你若是花不少的時間去作業務開發,其實你的效率是很是低的,由於你沒有學到真正的內容。瀏覽器
在公司中咱們的前端應用,也就是客戶端應用,它是放在每個人的電腦或者手機裏面去跑的,每一個人跑的都是單獨一份。因此它們的性能不會特別的高。由於不少的公司的業務不會很複雜,不會像那種要在線編輯,PS圖片這種工具要求性能會很是高。因此在性能不是特別大的問題的時候,咱們更多要考慮的是工程化的問題。緩存
因此咱們如何在前端圈體現出本身的一個價值呢?接下來咱們將圍繞如下四個Keywords來具體闡述:前端框架
首先,咱們要學會如何在一個項目中去搭建工程。由於如今前端變得愈來愈複雜,不像是之前咱們前端開發一個頁面,開發一個模板,一個簡單的DOM交互的動畫,一些CSS樣式,這些東西咱們寫好以後交給後端,他們去填數據就能夠了。網絡
那如今不同,如今的前端業務邏輯都在咱們的工做範疇以內,咱們要去作不少的東西,好比說數據緩存,這時候咱們必需要考慮一個工程化的概念。否則的話咱們代碼太多,很差維護。
咱們寫起來效率會很是低。並且咱們如今的前端開發並非所見即所得了,咱們要使用ES6,使用LESS,這些東西咱們都不能在瀏覽器裏面直接跑,可是這些東西又能夠加快咱們的開發效率,因此咱們但願去使用它。那麼如何去平衡這二者之間的關係,這就是咱們在前端工程中須要考慮的問題。
網絡優化涉及到的更多的是基礎概念,好比說咱們HTTP的理解,由於咱們全部的靜態資源都是經過HTTP去加載的,如何才能去加快咱們HTTP使用的速度,如何去緩存咱們的HTTP請求,這些東西只有咱們理解了以後,才能更好的去優化咱們的前端工程。這些東西如何去作到,這也能體現出你的價值。
咱們但願去減小HTTP請求,咱們但願去壓縮靜態資源的文件,咱們但願使用瀏覽器的長緩存,讓應用的流量可以變得更小,加載速度變得更快等等。
在咱們作前端應用以後,大部分項目的開發模式是先後端分離的,不是之前在瀏覽器裏輸入一個URL,後端填數據操做HTML模板,而後返回給用戶的。這是咱們之前看到的HTML頁面。
跟如今不同的是,咱們跟後端的交互都是API請求,好比說JSON數據,這個時候咱們要跟後端達成一個合做協議,由於API是涉及到前端和後端的,咱們是使用方,後端是提供方。若是後端提供的很差,那麼咱們前端使用起來就會很是的難用,因此這個咱們要如何去跟後端進行交流,須要咱們去理解後端去開發一個API接口是如何去作的等一些簡單的概念。
若是你不懂這些,你沒法去跟他們交流,那麼你只能聽他們後端說,「 這個東西你剛纔說的咱們作不到啊~ 」,而後你沒有辦法去反駁他。那這樣的話,就跟產品經理走過來跟你說,這個需求必定要作,但你跟他說 「 這個用前端技術實現不了的~ 」 這個概念實際上是同樣的。
因此,若是你不但願作一個被忽悠的一方,那麼你就要去了解他們這邊如何去作這個事情。
NodeJS如今在前端開發中用的很是的多,舉個最簡單的例子,好比前端工程的搭建,都是圍繞於NodeJS。好比咱們的webpack,Gulp,Grunt等這些工具他們都是在NodeJS環境裏面去運行的,不是在咱們前端環境裏面去運行的。因此你要有基本的NodeJS使用的概念。你要去學這些東西,至少要知道如何用NodeJS去寫一個腳本,讓它在咱們的Terminal命令行裏面去跑起來。只有這樣才能把咱們的前端工程去運行起來。
同時有不少公司已經把NodeJS運用起來,他們會在前端和後端的API層之間,去加一個NodeJS層,用NodeJS去作一些分發,數據處理,因此說,若是你但願你的前端議價能力愈來愈高,那麼你必需要去學NodeJS的一些東西。而你在學NodeJS的過程中,又會去增強你的API定製的一些理解。當你學到後端的開發以後,你對網絡的一個概念,對HTTP請求的概念,也會變得愈來愈深。因此,你如今去學NodeJS,性價比是很是高的。
說了這麼多,我想告訴你們,你如今去學一門前端框架,當然很是重要,可是你不要把更多的時間去花在你使用這個框架去作業務開發上面,業務開發不會特別的複雜,或者說它須要你的知識能力並不會特別的高。
不少童鞋知道,若是公司要使用Vue.js框架,會使用vue-cli這個腳手架工具,給咱們去生成一個項目。生成項目以後,你只須要去寫一個項目就OK了,你的項目就會跑起來。
可是你要知道,使用vue-cli生成的項目,在不少公司裏面,是沒有辦法直接投入到生產環境當中的,由於他是一個普遍適用的模板,可是每一個公司在業務上是不一樣的,他們確定多多少少會在這個工程有一些定製的需求。
那這個時候若是你沒有辦法去理解vue-cli這個項目是怎麼跑起來的,那麼你就沒有辦法去定製它,去修改它。那麼這個時候,你就沒有辦法去撐起一個公司的前端部門的項目搭建這個工做,那麼你的前端議價能力會變得比較的低。而vue-cli生成的項目其實就是基於一個webpack的前端工程,那麼它裏面涉及到的東西你就要去理解去學習它。這樣才能把你的價值往上去提高。
因此,當你在公司中體現出你做爲前端的價值來以後,你的議價能力也會隨之水漲船高,獲得提高,這是一個相輔相成的過程。
謹以此文,與君共勉。
最後,想看閏土雜談系列文章,歡迎關注個人公衆號:閏土大叔。