前端工程師的技術進階點在哪裡?
前端工程師的技術進階點在哪裡?
單純講技術進階點意義不大,脫離場景都是耍流氓。我舉個實際例子,今天的阿里大文娛優土,阿里接管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也只是基本技能,最重要的一點,技術要驅動商業,否則沒有任何價值。你是一個工程師,征途是星辰大海,何苦給自己設限?
計算機教會我很多原理,我卻用它來更好的生活
就覺得最好笑的事情,一方面口口聲聲稱前端不應該
被語言侷限,跑過去用nodejs做後端,
一方面說前端的進階就應該是懂演算法懂底層懂框架
懂所有後端要懂的東西做了
幾乎所有後端要做的事用nodejs做伺服器端渲染還繼續聲稱自己是前端僅僅是因為用了js。
前端和語言關係不大,而是通過預編譯、轉譯來提高效率。
用node做後端,明顯是理解有問題,隨便舉個前端庫,node在裡面是什麼定位,想必大家都懂。node是輔助提效的,雖然理論上它應該做後端。
前端是open的,只要最終編譯結果是js就可以,至於用什麼語言編寫無所謂,所以typescript、kottlin、webassembly等等都可以,黑的點不對
所以明確一下,
前端是指在使用者端執行的程式碼,
後端是指在伺服器端執行的程式碼。你用nodejs做什麼中轉層,
你的nodejs只要不是在瀏覽器端執行的,
它就歸屬於後端。
這話挑不出毛病。如果非要挑,今天大環境下,前端和api之間關係越來越複雜。於是才有了我們經常說的bff(backend for frontend)和api proxy。這是歷史必然性。
端不一樣,ue不一樣,所以api不一樣,h5和pc共用一套api就很噁心。很容易理解
業務發展,今天強調速度,二週一個迭代,如果前端過度依賴後端,幾乎是很難快速的迭代的。這種情況就比較坑了。那麼,又要有kpi,又要快速實現,無疑組裝api和服務是最快的方式。不得不承認,這世界不是完美的。敏捷和微服務的結合點是完美小組,萬能,但卻可遇不可求。
前端是背鍋俠,後端api當機或者重啟或者api欄位變化等,故障都要前端先查,其實是非常浪費時間。前端是要有能力反制的,api代理層是有能力做到這點的。
最後說一下api mock,多端並行開發,明顯提高效率的,可以看看yapi做法
如果不理解node做中間層的意義,可能不瞭解一線痛點,對前端指指點點不太合適。
你可以說招募一個JavaScript工程師
用nodejs來做後端開發,兼做著前端開發,
不要再說我們招一個前端工程師,
但是要你去做nodejs了。
最不喜歡PHPer和前端er的就是
他們永遠都學不會什麼場景下用什麼語言
或工具解決什麼問題,
一個好的工程師不會是語言的奴隸,
後端架構師之所以是架構,
在某種程度上就是包含了異構的元素。你把自己始終束縛在JavaScript的層面上,
反反覆覆的去爭什麼JAVA做到的,
nodejs也能做到純屬扯淡和賭氣。
前端會寫js這是基本技能。至於對後端瞭解多少,能否直接編寫後端程式碼,這是另外一個話題。我的做法,先培養node小弟,把node底層服務、devops和開發框架搭建起來,前端在上面實現具體業務,真是毫無難度。
如果非要扯淡,公司所有人都不瞭解node,然後前端去用node寫後端程式碼。。。存在不確定性是必然的。
在我看來,PHPer和前端er都是勇於面對自己問題並積極尋找解決方案的職業。非常棒。學習能力超強,“永遠都學不會什麼場景下用什麼語言或工具解決什麼問題”,這話說的真的很傻,能用一種語言解決的問題,為啥一定要學那麼多呢?
一個好的工程師不會是語言的奴隸,能focus不focus的工程師也不是好工程師
“後端架構師之所以是架構,在某種程度上就是包含了異構的元素。“,說的好像前端不夠複雜,不需要架構師一樣。不同端,不同api,以及各種複雜的業務邏輯,穩定高效的輸出,不需要架構師,只能說不夠複雜。
node和php都是具有後端的基礎,比如io,理論上java能做的事兒,它們都能做。這話沒毛病。唯一的問題是積累問題,比如node處理excel就是比不過java,比如node做大資料,不是不行,是你真能投入那麼多精力然而roi不高,你也能接受麼?
前端的進階有兩個方向,橫向來說,
去做Android,iOS,vr,動畫,js這些。
這才是真正的大前端,
你的領域就應該是在使用者這一方,
需要我做什麼,就應該做什麼,
這三個部門就應該合併在一起,
統一安排,統一規劃。這種橫向發展可以幫助你更深入的理解語言的差異,
也可以幫助公司更好的控制成本和進度。縱向發展就是複用性和擴充套件性。
前端變化快,不確定強,
那麼到底有哪些內容是可以本專案複用,
跨專案複用的?能支援到什麼程度的需求變化?這是你的業務,你的架構思想,
你的程式設計能力和視野決定的深度,
你的功底越深,抽象能力越好,封裝的越強,寫出來的程式碼越賞心悅目。
這個大前端的定義是狹隘的。
去做Android,iOS,這話不能這樣說,不是讓你寫oc或java。而是基於react、vue這樣的元件化方案,讓前端能夠主導移動端開發。對於前端來說,掌握react、vue之外,如果能夠編寫Android,iOS外掛,瞭解sdk是加分項。
至於vr、動畫,js,這明顯前端基礎,列出來不合適
前端能做更多,可以幫助公司更好的控制成本和進度。這話是沒錯的。而且更能應變,快速迭代。
大前端只考慮端,不考慮api,是不全面的。1)端(各種端,pc、h5、移動端、小程式、iot等等) 2)api聚合能力(有開發能力更好) 3)輔助提效,對團隊發展,技術棧升級,開發效率等提供保障。
這段話,橫向和縱向分法是沒問題的,也很會拿話套路大家,唯一的問題的是理解的深度不夠。
工程師除了效能,穩定性,擴充套件性之外,
還要考慮的就是開發效率,
什麼方法能讓我一天之內
完成過去兩週才可以完成都事情?
演算法切頁面不也是一個很開心的方向麼。
如果你樂意完全可以做這個啊,
雖然更偏演算法工程師,
但你是用它來應用在前端。
也許未來有一天前端工程師的職責
就是跳個引數重跑演算法和簡單調整。
這又是套路話,前端開發效率,大家都是拿node做的。我們在討論前端解決的時候,必然會提到node,無論工程化還是基本技能都躲不開。前端熱衷於造輪子,其實都是在提效的。比如一個大組,沒有人做基礎設施,我不相信他們開發速度能多快。業務開發和基礎支援是2個開發方向。
演算法切頁面是個方向,但問題是,前端來做還是後端做。後端做,就沒前端什麼事兒,意圖乾死前端。前端做就是創新,輔助自身開發,減少重複勞動。如果前端做,不用node,你要再學一門語言麼?只能呵呵了。node做DeepLearning,也需要了解演算法,這點上,所有語言都是互同的。不是不能做,不過你的成熟度,各種文件,學習資料真的能拼過py?
最後那句更傻,不是前端工程師,而是所有工程師都可能面臨的問題。ai究竟能如何,我們要有這個危機意識,也要積極的想好應變辦法,這一定是難不倒大家的。
系統的效能,擴充套件,複用和研發效率的提升,
是前端目前來說最重要的四個方向。
後端來說多了一個穩定,
對複用的期望程度略低於前端。
所以這就是前端工程師的技術進階,
做出angular這種工程化思維強烈的框架,
大概就是長期期內的努力反向。
系統的效能,擴充套件,複用和研發效率的提升,是所有工程師都要關注的方向,拿這個繫結前端,呵呵。
後端就只有穩定性麼?呵呵,我想問,為什麼後端要現有架構?不是因為過於複雜嘛?如果不是為了複用,為啥會出現ssh、ssi、spring boot等等框架,如果不是為了複用,為啥會出現rpc,soa、以及微服務?如果不是為了複用,為啥要提倡敏捷?
其實,複雜到一定程度,架構出現是必然的,和前端後端有關係麼?
最後再說工程化思維,我不認為只有angular算。從grunt、gulp到webpack到ykit,我們到底在折騰啥?難道react、vue就沒有工程化思維麼?元件複用都不算麼?很明顯寫這句話的人是不太瞭解前端的。
少抱怨,多思考,未來更美好
全文完
歡迎關注Cnode官方公眾號【node全棧】
如果想參與評論,請點選閱讀原文連結,進入國內最專業的cnode論壇
你身邊如果有朋友對Node.js或全棧感興趣,可以轉發給他們看看哦,O(∩_∩)O先謝過
相關文章
- 前端工程師的技術進階點,月薪5萬難嗎?難!前端工程師
- 前端工程師的未來在哪裡?前端工程師
- Docker:技術和商業的結合點在哪裡?Docker
- 前端工程師的價值體現在哪裡?前端工程師
- 前端工程師的進階之路前端工程師
- 前端如何快速進階,突破技術瓶頸?前端
- Airbnb資料工程師的進階指南:技術基礎AI工程師
- 乾貨 | 一份我的前端技術進階指南前端
- 前端技術演進(七):前端跨棧技術前端
- 前端技術演進(一):Web前端技術基礎前端Web
- 使用雲桌面的技術優勢在哪裡
- LikeLib公鏈技術領先在哪裡?
- [解密] DNA儲存技術究竟牛在哪裡?解密
- “區塊鏈錢包”的技術顛覆在哪裡?區塊鏈
- 《地獄之刃2》預告技術分析:次世代的進化點在哪兒?
- 學點高階測試工程師才懂的技術:手把手教你進行越權測試工程師
- 前端技術演進(六):前端專案與技術實踐前端
- 技術管理進階——如何面試面試
- ES6常用總結 (前端開發js技術進階提升)前端JS
- 技術引路:機器學習仍大有可為,但方向在哪裡?機器學習
- 成為優秀前端開發工程師的進階之道前端工程師
- 前端進階之路:點選事件繫結前端事件
- 前端技術點滴整理-1前端
- 前端內功修煉:5大主流佈局系統進階,系統進階佈局技術前端
- 前端工程師做事的三重境界:我的進階之路前端工程師
- 前端技術演進(二):前端與協議前端協議
- 技術管理進階——技術總監的第一要務
- 你和高階工程師的差距在哪兒?工程師
- iOS資料庫技術進階iOS資料庫
- 【子衿技術】DBA進階之路
- 進階 Redis 技術與應用Redis
- 識別這5個錯誤,進階高階web前端工程師!Web前端工程師
- 前端進階技術:JavaScript 和 CSS 常用工具方法封裝教程!前端JavaScriptCSS封裝
- 技術人才的出路在哪裡,5種選擇和2種思路
- 前端技術演進:參考文章前端
- IT小白們進擊前端工程師的學習路線:編輯器,基礎進階學習要點,框架前端工程師框架
- Mac os系統的優點在哪裡?Mac
- 微前端架構初探以及我的前端技術盤點前端架構