前端架構師是打雜的麼?前端架構師的核心工作是什麼?

2020-12-03 酷扯兒

本文轉載自【微信公眾號:前端人,ID:FrontendPeople】經微信公眾號授權轉載,如需轉載與原文作者聯繫

前言

前陣子 winter 應邀來我司做分享, 有幸混了個圓桌嘉賓參與交流, 其中 winter 談到關於前端架構解決的問題域

從他在淘寶的經歷, 他理解當時他所做的前端架構主要解決的是大數量頁面生成的問題, 當時感觸不深.

在今天之前, 我對前端架構的理解一直是廣義的, 即架構本身要解決的就是複雜性, 將複雜的東西簡化, 以便更好的維護, 前端也脫離不開這個範疇, 但是今天因為要寫轉正

ppt

在構思腦圖的時候, 我突然意識到前端架構其實是有更明確地含義, 並且在這些年, 我們這些在不同領域從事前端架構工作的架構師都有自己的一些理解, 但此刻我突然發現了其中的共性, 這種發現讓我忍不住上來擼篇文章和大家做個分享

正文

多年以前, 我從不理解架構師, 到從事前端架構, 到自己產生了一些理解, 期間也寫了不少關於架構, 關於前端架構的文章, 但總感覺還是過於抽象

包括我和團隊的同學交流, 總覺得缺點什麼, 這種抽象和實際的架構工作之間還少了一層, 直到聽了 winter 的分享, 結合這些年的經驗, 我突然意識到, 前端架構是有具體的抽象問題域的, 而不是簡單的

用降低前端技術的複雜性來解釋, 在回答這個問題之前, 我想先說下客戶端軟體架構師 和 服務端架構師.

客戶端軟體架構師

考過軟考的應該知道軟考有個級別叫系統分析師, 或者有的也叫軟體架構師, 軟考對此的定義是能夠主持參與系統分析, 軟體架構等工作, winter 在分享的時候提到了客戶端軟體架構師, 在這裡是相同的含義

winter 指出客戶端軟體架構師的架構工作主要是為了控制解決客戶端軟體設計上的複雜性

一個客戶端系統, 尤其是類似 OA, ERP 開發周期從 6 到 12個月甚至更長, 這樣複雜的長期的軟體工程, 需要有專門的技術人員負責統籌把控代碼的質量, 而客戶端軟體架構師的工作就是圍繞這個展開的

因此客戶端軟體架構師解決的主要是軟體本身的複雜性.

服務端架構師

隨著 BS 的發展, 網際網路和大數據時代的來臨, 現在某些系統 1天產生的數據可能是過去傳統軟體 1年產生的數據, 這種極大量數據的操作帶來的問題變得日益嚴峻, 為此服務端架構師孕育而生, 服務端架構師始終圍繞如何降低因為數據操作量增長帶來的系統複雜性而努力

由此發展出來的高並發, 分布式, 微服務, 雲原生等等都是服務端架構師們為此努力的結果, 包括一些關於資料庫方面的學術性的成果, 例如最著名的 "CAP 定律"

重頭戲 → 前端架構師

架構師圍繞降低複雜性展開工作, 這一點我在之前的文章講得其實很多了, 而在這裡, winter 關於前端架構圍繞提升淘寶頁面的生產效率這件事的分享讓我有了一個更清晰更直接的認知

前端架構師們自始至終都在圍繞降低一件事的複雜性而努力.

那就是降低差異性需求增長帶來的複雜性這件事

為什麼這麼說?

我們不妨回想下, 在過去很長的時間內, 前端一直試圖通過可視化拖拽的方式來生成代碼, 現在我們稱其為

no-code

, 但是這種麼做的原因是什麼?

我們為什麼要試圖去做這樣一個系統, 從我的角度看, 可追溯的

系統最早可能就是那些建站工具類似於

XX CMS

這種, 由於服務端的數據操作天然和用戶是隔離的, 服務端工程師不需要為了解決用戶各種各樣的需求而去修改數據操作的基本代碼, 因此在沒有網際網路和大數據的年代, 軟體工程師中並沒有衍生出服務端架構師這樣的角色.

基於這樣的一種職業衍生路徑, 前端架構師的最早誕生可能就來自於對前端代碼的可視化開發需求, 就像 winter 說的, 當淘寶需要成千上百的運營頁面開發的時候, 大量的重複性工作根本無法依靠人力來完成, 為此小部分優秀的前端工程師開始演變成前端架構師, 他們從最初的研發工作轉變成為了降低這一問題的複雜性而努力思考的職業

但在這一時期, 前端架構師這個職業依然很模糊, 大家也不知道前端架構師是幹什麼的, 既沒有系統性的理論知識, 也沒有可複製的架構模式, 我們依然靠經驗來推動一些前端架構工作, 但隨著中後臺系統的發展, 需求帶來的複雜性, 從運營頁面擴展到了內部系統, 為此在阿里誕生了飛冰等一系列以物料為基礎構建中後臺的系統, 我理解這是前端架構的第二次發展

經過兩次發展的前端架構開始有了一些被沉澱下來的理論, 可複製的模式, 越來越多的可視化構建系統, 基於物料的前端搭建系統開始冒頭, 但在這一時期, 前端架構依然是模糊的, 同時前端架構師開始進入大家的視野, 越來越多的團隊開始招募前端架構師這樣的角色

但事實上大部分前端團隊招募前端架構師往往不是為了解決架構問題, 更多是為了解決團隊管理問題, 你仔細看那些招聘你會發現其實招聘的只是個更懂技術的前端 Leader 而已.

並且在這一時期, 因為部分 SPA 的複雜性加上混合開發模式的發展, 加上 Nodejs 帶來的全棧的概念, 進一步加重了前端架構領域的混亂, 我們越來越搞不清楚前端架構師到底要做什麼, 這種混亂也給這個職業發展本身帶來了極大的問題, 因為我們不知道要學習什麼, 因為我們不知道自己到底要解決什麼問題, 似乎前端所有的複雜性都需要架構師去解決.

也正是如此, 我才對前端架構師的理解傾向於廣義的架構師理解, 即一切技術的複雜性都是前端架構師要考慮的問題. 但現在看來這其實也是一個誤區.

讓我們剝開迷霧, 抓住核心.

前端架構師的核心工作是降低需求增長帶來的技術實現的複雜性

這句話可能有點繞口, 但展開來講並不複雜

因為運營頁面需求的增長, 我們打造運營頁面搭建系統來降低技術實現的複雜性

因為我們要在不同端實現相同的需求的增長, 我們開發各種通過 DSL 實現一次編寫多端生成的系統來降低實現需求的複雜性

因為內部系統重構的需求的增長, 我們基於 Next.js 這樣方案去打造中後臺搭建系統, 降低實現這一類需求的複雜性

像字節這種因為大量 App 生產的需求, 內部肯定搞了 App 工廠系統這樣的東西來降低這一類需求實現的複雜性

就像服務端實現微服務分布式有不同的技術選型, 前端也一樣, 打造相同的 no-code 系統你可以選不同的技術棧來實現

一個有經驗的服務端架構師可以快速搭建一套分布式系統來降低數據操作量增長的複雜性.

那麼一個有經驗的前端架構師就應該可以快速搞出上述這一套套東西來降低這類需求實現的複雜性.

因此, 一家公司如果沒有數據操作量上的增長, 比如流量, 大數據, 那他就不需要一個服務端架構師, 同理, 如果一家公司的前端需求增長依然是人力可控的範圍, 那他也不需要一個前端架構師. 最多需要一個前端 Leader.

後話

過去我只發現了成為架構師的思維轉變路徑, 和抽象的一些方法, 但現在我明確的知道如何去培養一名前端架構師.

大量的差異化的需求就是一個前端架構師成長的基石. 過去我們之所以沒有像服務端那樣誕生大量的前端架構師, 原因是在消費網際網路時代, 只有少數公司才會有大量的運營頁面的需求, 才有錢去搞內部系統翻新這種事情, 搞中後臺.

對前端架構師的需求遠遠少於對前端Leader 的需求, 為此很長一段時間, 前端專家這個角色在架構和管理之間遊走, 非常容易迷失自己.

但是顯然隨著產業網際網路的快速發展, 越來越多做企業服務的公司會需要前端架構師

因為企業的需求是高度定製化, 差異化, 幾乎不可能標準化的, 而前端架構師也不會需要一套拿來即用的類似飛冰這樣的系統, 而是應該會像服務端架構師一樣, 發展出更多框架和工具用來打造專屬於自己業務的類似飛冰這樣的系統

就像可視化搭建在很多公司都如火如荼的打造著, 可以說未來不會出現所謂大一統的前端可視化搭建系統, 而是會出現各種新的框架用來打造這種系統, 類似 SpringCloud, 我相信這也是前端開源社區的又一次巨大進步.

相關焦點

  • 如何成為前端架構師?
    前端架構師,聽起來像是個很高大上的名詞,在大多數程式設計師眼中,架構師一般都來自於後端開發, Java或 C++,這些人往往有十八般武藝,能夠解決企業中出現的各種問題。前端架構師的概念已經漸漸進入了前端工程師的視野,無論何時,只要前端工程師還在工作,面試官就會問到,你的未來計劃是什麼?
  • 百度首席架構師推薦,掌握前端架構四個核心設計,搞定95%面試
    本書展示了一名成熟的前端架構師對前端開發全面而深刻的理解第一部分引言第二部分代碼核心第三部分流程核心第四部分測試核心第五部分文檔核心
  • 網際網路大廠前端架構師總監聯袂力薦!前端工程化
    本書特色本書由周愛民老師傾情作序,美團技術總監趙強、搜狐高級技術經理邵充、Facebook軟體工程師鄧凌飛、ofo前端架構師代學輝聯袂力薦前端工程化包含一系列規範和流程,其可提升前端工程師的工作效率,加快Web開發迭代速度,是現在前端開發領域中非常重要的一環
  • 程式設計師如何向架構師發展?
    苦李,今天和我們公司前端大佬閒聊,說到從更高層次看待項目,例如,封裝前端組件庫,維護組件相關文檔等,他說到,重要的不是怎麼實現業務代碼,而是個人能為團隊帶來什麼。我想問下,後端代碼如果要優化,如何從更高的角度來進行,或是平時編寫代碼如何建立一種高層次架構思維,有哪些具體方面可以讓自己為團隊帶來價值。
  • 程式設計師多年編程資料大放送,Java、web前端、網際網路架構師
    【零基礎到入門】Web前端課程:使用HTML5+CSS製作網頁教學視頻2.【後端進階】網際網路架構師課程Spring Cloud微服務項目實戰視頻教程3.:使用HTML5+CSS製作網頁教學視頻資料內容從基礎理論到實戰教學,從HTML結構標籤、常用標籤及屬性、CSS語法、CSS常用屬性等各方面循序漸進的帶你入門前端。
  • 葡萄城首席架構師:前端開發與Web表格控制項技術解讀
    講師:Issam Elbaytam,葡萄城集團全球首席架構師(Chief Software Architectof GrapeCity Global)。 為何他如此痴迷於前端開發技術?在他的眼中,前端開發未來將走向何方?面對當今大熱的HTML5、JavaScript,以及區塊鏈等新興技術,他又有哪些不同的看法和觀點?他倡導的用前端開發技術,實現「在線Excel」系統的捷徑又是什麼?本期葡萄城公開課,我們就來一探究竟。
  • 架構師or普通的程式設計師,架構師優秀在哪幾方面?
    企業架構師的職責是確定整個公司的技術路線和技術發展方向。蓋茨給自己的頭銜是首席軟體架構師。網易丁磊也喜歡這樣稱呼自己。基礎架構架構師的工作是提煉和優化技術方面積累和沉澱形成的基礎性的、公共的、可復用的框架和組件,這些的框架和組件是基於技術的公司最有價值的資產之一。
  • 做一位年薪百萬的架構師,需要具備哪些技術呢
    本人從事java開發已有10年經驗,目前在華為任職架構師。自我總結了在華為工作10年的經驗,想分享給大家。希望能給你點評一下。文末我整理了一些我在華為用到的一下架構教程資源,比如三高系統的使用,spring,JVM調優,底層邏輯等一些核心內容。文末有獲取方式。
  • 【暢言】從程式設計師到架構師的方法與邏輯
    架構師是什麼?架構師這詞其實很有意思,很多人的Title是這個,但其實我們對架構師都幹什麼並沒有太統一的認識。往大了說,比爾蓋茨當年好像也稱自己為架構師,往小了說隨便一個小的軟體上做設計的也說自己是架構師。所以如果把這個詞泛化而不局限於特定的場景,估計單是說清楚什麼是架構師就要花費不少口水。
  • IT行業web前端好找工作麼?就業有什麼要求啊?
    web前端工程師對於大部分準備轉行IT行業的同學來說還是一個比較陌生的詞彙,很多人還在停留於Java開發程式設計師,或者其他的後臺語言,但是對於新興劃分出來的專業崗位web前端工程師存在著一定的疑慮,很多人看見web前端工程師好像還不錯,但是又擔心著web前端學完後出來工作好找嗎?
  • 「架構師專題」雲原生時代,架構師需具備的十大核心能力(上)
    10 年多的工作歷程,讓我有幸經歷了大範圍的技術演變,特別是雲計算和雲原生技術從朦朧到普及,對工程師和架構師的要求也發生了不少變化。趁著自己入職 11 周年的日子,結合我自己在百度的成長曆程,總結下我認為在雲計算特別是雲原生時代,對軟體架構師的核心能力要求,希望幫助大家在通往架構師的路上少走彎路。
  • 前端架構發展史
    最初,前端是沒有架構的,因為功能簡單的代碼毫無架構可言。通過一個簡單的jQuery庫操作DOM就能完成的工作,無需複雜的設計模式和代碼管理機制,也就不需要架構來支持起應用。在諸多Web應用中使用了異步通信技術如 Google地圖,開啟了Web前端的一個新時代一旦前端應用需要從後端獲取數據,就意味著前端應用在運行時是動態地渲染內容的,這便是Model(模型)UI層解耦。
  • 「企業架構」企業架構師vs解決方案架構師vs領域架構師
    它經常重用企業架構提供的其他元素(企業構建塊、企業功能、架構標準和指導方針)因此,企業架構師在企業架構團隊和組織的其他地方有許多不同的角色和職責。但是,人們可能會混淆這些角色和職責,例如,企業架構師有時會與解決方案架構師混淆,或者技術架構師與基礎設施架構師的角色混淆。這不僅是因為他們的職位聽起來相似,而且他們的職責也有部分重疊。
  • Github上都在瘋找的京東內部「架構師進階手冊」終於來了
    雖然系統的構建,面臨很多的困難和問題,但是對架構師而言,最重要的是要保證系統可用,無論任何環境、任何壓力、任何場景,系統都要可用,這是架構師的第一要務。下面要介紹的這份京東大牛總結文檔就最大程度的闡述了分布式系統如何保證高可用性,以及應對高並發這兩個大方面。涉及很多技術和細節。
  • 百度、餓了麼、美團專家齊聚SDCC2015,剖析前端開發核心技術
    九大技術專場論壇包括:智能算法、架構實踐、前端開發、新一代資料庫、程式語言、研發管理實踐、安全、微信開發、產品與設計。五場特色活動有:老友記、程序人生、創業者說、講師夜話、養生堂。  本演講將從前端開發的角度分享為何React可以在開發社區中扮演無可取代的地位,並且探討React 應用程式中的核心概念Predictability及Immutability。 演講主題2: 淺談前端布式編譯系統的設計
  • 「架構師專題」雲原生時代,架構師需具備的十大核心能力(下)
    10 年多的工作歷程,讓我有幸經歷了大範圍的技術演變,特別是雲計算和雲原生技術從朦朧到普及,對工程師和架構師的要求也發生了不少變化。趁著自己入職 11 周年的日子,結合我自己在百度的成長曆程,總結下我認為在雲計算特別是雲原生時代,對軟體架構師的核心能力要求,希望幫助大家在通往架構師的路上少走彎路。
  • 微前端架構初探以及我的前端技術盤點
    微前端架構概念的誕生及應用對於提供複雜應用服務的企業來說顯然是一種機遇, 同樣也是一種挑戰.本文主要就微前端架構的概念和實現方案做一個總結和復盤,並且通過一個實際案例來實踐微前端架構,希望能對同樣有此需求的朋友們提供一些幫助和思路.
  • 京東T9架構師手把手教你怎麼寫年薪50萬的java簡歷
    作者簡介:京東架構師,近20年工作經驗,精通大型網際網路平臺架構,研發過微服務、thunder、網關等多種技術中間件。具備豐富的分布式架構和大型系統架構優化經驗。教育背景:華中科技大學學士、武漢大學碩士。
  • 英特爾與Science聯袂推出「架構師成長計劃」
    你正準備成為架構師嗎?或者你想成為優秀的架構師嗎?祝賀你,你已在路上!為此英特爾聯合國際學術期刊《科學》(Science/AAAS) 首度聯袂推出「架構師成長計劃」在線系列課程,共同為架構師修築成就優秀之路,助力架構師構建未來,讓智者更強。
  • Android程式設計師現狀:沒有架構師的命,卻得了架構師的病
    所以,架構師在廣大碼農中的佔比平均不到 10%。而架構師也可以分為初級、中級、高級,江湖上真正高水平的軟體架構師就更少了。所以,可以說90%以上碼農肝了幾年、甚至十幾年,還是做不了架構師,這是什麼原因造成的呢?