前端工程師的技術進階點在哪裡?

Node全棧發表於2018-05-10

前端工程師的技術進階點在哪裡?

640?wx_fmt=jpeg

單純講技術進階點意義不大,脫離場景都是耍流氓。我舉個實際例子,今天的阿里大文娛優土,阿里接管2年,底層替換差不多了,由內容為王慢慢轉變為產品技術驅動。這種情況下,前端如何進階呢?業務很多,歷史問題很多,老闆迫切希望創新,趕超對手。

  • 端上,我有pc、h5、小程式,播放器

  • api代理層,我有node,可以快速實現api保證,1、內部有直接用,2)內部沒有,自己寫,3)不夠用,我自己包裝,不會讓api層限制我的發展

  • 歷史問題,我可以快速的想辦法吃掉,尤其是老的php,這部分要做的是1)穩定改造2)提高團隊技術棧

  • 我有端,我有api,即所有應用層面的事兒我都可以做。那麼,新業務如何應對呢?根本還是在產品技術2個方面,對於團隊技術,慢慢培養就好了,對於產品摸清他們的水平。

有哪些方向可以突破

  • 全域性方向: 做業務整體架構,進可攻退可守,技術不行做技術,產品不行做產品,不要給自己設限

  • 深度方向: 做效能調優(前端、node)、高併發(node)、分散式(node)等專業要求很高的領域,node完全可以做任何java可以做的事兒,別抬槓

  • 延伸方向: 以js 和node為中心很多大神轉移到大前端,移動端、ai、區塊鏈、大資料等方面,算是傳統Web的延伸方向

前端不該只寫頁面,node也只是基本技能,最重要的一點,技術要驅動商業,否則沒有任何價值。你是一個工程師,征途是星辰大海,何苦給自己設限?

計算機教會我很多原理,我卻用它來更好的生活


  1. 就覺得最好笑的事情,一方面口口聲聲稱前端不應該

  2. 被語言侷限,跑過去用nodejs做後端,

  3. 一方面說前端的進階就應該是懂演算法懂底層懂框架

  4. 懂所有後端要懂的東西做了
    幾乎所有後端要做的事用
    nodejs做伺服器端渲染

  5. 還繼續聲稱自己是前端僅僅是因為用了js

  • 前端和語言關係不大,而是通過預編譯、轉譯來提高效率。

  • 用node做後端,明顯是理解有問題,隨便舉個前端庫,node在裡面是什麼定位,想必大家都懂。node是輔助提效的,雖然理論上它應該做後端。

  • 前端是open的,只要最終編譯結果是js就可以,至於用什麼語言編寫無所謂,所以typescript、kottlin、webassembly等等都可以,黑的點不對

  1. 所以明確一下,

  2. 前端是指在使用者端執行的程式碼,
    後端是指在伺服器端執行的程式碼。

  3. 你用nodejs做什麼中轉層,

  4. 你的nodejs只要不是在瀏覽器端執行的,

  5. 它就歸屬於後端。

這話挑不出毛病。如果非要挑,今天大環境下,前端和api之間關係越來越複雜。於是才有了我們經常說的bff(backend for frontend)和api proxy。這是歷史必然性。

  • 端不一樣,ue不一樣,所以api不一樣,h5和pc共用一套api就很噁心。很容易理解

  • 業務發展,今天強調速度,二週一個迭代,如果前端過度依賴後端,幾乎是很難快速的迭代的。這種情況就比較坑了。那麼,又要有kpi,又要快速實現,無疑組裝api和服務是最快的方式。不得不承認,這世界不是完美的。敏捷和微服務的結合點是完美小組,萬能,但卻可遇不可求。

  • 前端是背鍋俠,後端api當機或者重啟或者api欄位變化等,故障都要前端先查,其實是非常浪費時間。前端是要有能力反制的,api代理層是有能力做到這點的。

  • 最後說一下api mock,多端並行開發,明顯提高效率的,可以看看yapi做法

如果不理解node做中間層的意義,可能不瞭解一線痛點,對前端指指點點不太合適。

  1. 你可以說招募一個JavaScript工程師

  2. nodejs來做後端開發,兼做著前端開發,

  3. 不要再說我們招一個前端工程師,

  4. 但是要你去做nodejs了。

  5. 最不喜歡PHPer和前端er的就是

  6. 他們永遠都學不會什麼場景下用什麼語言

  7. 或工具解決什麼問題,
    一個好的工程師不會是語言的奴隸,
    後端架構師之所以是架構,
    在某種程度上就是包含了異構的元素。

  8. 你把自己始終束縛在JavaScript的層面上,

  9. 反反覆覆的去爭什麼JAVA做到的,


  10. nodejs也能做到純屬扯淡和賭氣。

前端會寫js這是基本技能。至於對後端瞭解多少,能否直接編寫後端程式碼,這是另外一個話題。我的做法,先培養node小弟,把node底層服務、devops和開發框架搭建起來,前端在上面實現具體業務,真是毫無難度。

如果非要扯淡,公司所有人都不瞭解node,然後前端去用node寫後端程式碼。。。存在不確定性是必然的。

在我看來,PHPer和前端er都是勇於面對自己問題並積極尋找解決方案的職業。非常棒。學習能力超強,“永遠都學不會什麼場景下用什麼語言或工具解決什麼問題”,這話說的真的很傻,能用一種語言解決的問題,為啥一定要學那麼多呢?

一個好的工程師不會是語言的奴隸,能focus不focus的工程師也不是好工程師

640?wx_fmt=jpeg

“後端架構師之所以是架構,在某種程度上就是包含了異構的元素。“,說的好像前端不夠複雜,不需要架構師一樣。不同端,不同api,以及各種複雜的業務邏輯,穩定高效的輸出,不需要架構師,只能說不夠複雜。

node和php都是具有後端的基礎,比如io,理論上java能做的事兒,它們都能做。這話沒毛病。唯一的問題是積累問題,比如node處理excel就是比不過java,比如node做大資料,不是不行,是你真能投入那麼多精力然而roi不高,你也能接受麼?

  1. 前端的進階有兩個方向,橫向來說,

  2. 去做AndroidiOSvr,動畫,js這些。

  3. 這才是真正的大前端,
    你的領域就應該是在使用者這一方,
    需要我做什麼,就應該做什麼,
    這三個部門就應該合併在一起,
    統一安排,統一規劃。

  4. 這種橫向發展可以幫助你更深入的理解語言的差異,
    也可以幫助公司更好的控制成本和進度。

  5. 縱向發展就是複用性和擴充套件性。

  6. 前端變化快,不確定強,
    那麼到底有哪些內容是可以本專案複用,
    跨專案複用的?能支援到什麼程度的需求變化?

  7. 這是你的業務,你的架構思想,
    你的程式設計能力和視野決定的深度,
    你的功底越深,抽象能力越好,

  8. 封裝的越強,寫出來的程式碼越賞心悅目。

這個大前端的定義是狹隘的。

  • 去做Android,iOS,這話不能這樣說,不是讓你寫oc或java。而是基於react、vue這樣的元件化方案,讓前端能夠主導移動端開發。對於前端來說,掌握react、vue之外,如果能夠編寫Android,iOS外掛,瞭解sdk是加分項。

  • 至於vr、動畫,js,這明顯前端基礎,列出來不合適

  • 前端能做更多,可以幫助公司更好的控制成本和進度。這話是沒錯的。而且更能應變,快速迭代。

大前端只考慮端,不考慮api,是不全面的。1)端(各種端,pc、h5、移動端、小程式、iot等等) 2)api聚合能力(有開發能力更好) 3)輔助提效,對團隊發展,技術棧升級,開發效率等提供保障。

這段話,橫向和縱向分法是沒問題的,也很會拿話套路大家,唯一的問題的是理解的深度不夠。

  1. 工程師除了效能,穩定性,擴充套件性之外,

  2. 還要考慮的就是開發效率,

  3. 什麼方法能讓我一天之內

  4. 完成過去兩週才可以完成都事情?

  5. 演算法切頁面不也是一個很開心的方向麼。

  6. 如果你樂意完全可以做這個啊,

  7. 雖然更偏演算法工程師,

  8. 但你是用它來應用在前端。

  9. 也許未來有一天前端工程師的職責

  10. 就是跳個引數重跑演算法和簡單調整。

這又是套路話,前端開發效率,大家都是拿node做的。我們在討論前端解決的時候,必然會提到node,無論工程化還是基本技能都躲不開。前端熱衷於造輪子,其實都是在提效的。比如一個大組,沒有人做基礎設施,我不相信他們開發速度能多快。業務開發和基礎支援是2個開發方向。

演算法切頁面是個方向,但問題是,前端來做還是後端做。後端做,就沒前端什麼事兒,意圖乾死前端。前端做就是創新,輔助自身開發,減少重複勞動。如果前端做,不用node,你要再學一門語言麼?只能呵呵了。node做DeepLearning,也需要了解演算法,這點上,所有語言都是互同的。不是不能做,不過你的成熟度,各種文件,學習資料真的能拼過py?

最後那句更傻,不是前端工程師,而是所有工程師都可能面臨的問題。ai究竟能如何,我們要有這個危機意識,也要積極的想好應變辦法,這一定是難不倒大家的。

  1. 系統的效能,擴充套件,複用和研發效率的提升,

  2. 是前端目前來說最重要的四個方向。

  3. 後端來說多了一個穩定,

  4. 對複用的期望程度略低於前端。

  5. 所以這就是前端工程師的技術進階,

  6. 做出angular這種工程化思維強烈的框架,

  7. 大概就是長期期內的努力反向。

系統的效能,擴充套件,複用和研發效率的提升,是所有工程師都要關注的方向,拿這個繫結前端,呵呵。

後端就只有穩定性麼?呵呵,我想問,為什麼後端要現有架構?不是因為過於複雜嘛?如果不是為了複用,為啥會出現ssh、ssi、spring boot等等框架,如果不是為了複用,為啥會出現rpc,soa、以及微服務?如果不是為了複用,為啥要提倡敏捷?

其實,複雜到一定程度,架構出現是必然的,和前端後端有關係麼?

最後再說工程化思維,我不認為只有angular算。從grunt、gulp到webpack到ykit,我們到底在折騰啥?難道react、vue就沒有工程化思維麼?元件複用都不算麼?很明顯寫這句話的人是不太瞭解前端的。

640?wx_fmt=png


少抱怨,多思考,未來更美好


全文完

歡迎關注Cnode官方公眾號【node全棧】

640?wx_fmt=bmp

如果想參與評論,請點選閱讀原文連結,進入國內最專業的cnode論壇

你身邊如果有朋友對Node.js或全棧感興趣,可以轉發給他們看看哦,O(∩_∩)O先謝過


相關文章