極客大學小馬哥的 Java 專案實戰營

lsttwo發表於2020-12-17

跨界
如果你只會寫前端頁面,那麼無論你的功力練到多麼爐火純青的地步,那麼也只能稱為你是一個HTML高手?。

真正的架構師是需要有跨界的能力的,隨著技術的持續完善,這種通過崗位變遷實現技術架構升級的情況會越來越少。而架構層面新的變化將來自於崗位自發的對自身工作內容、職責的重新定義,也就是這裡說的邊界。所以說並不是你作為一個前端開發崗位,你就不能幹前端之外的事了,要嘗試跳出邊界來思考和解決問題。

頁面的秒開是衡量一個前端優化的重要指標,我們以這個優化點來總結一下從哪些方面跨:

提升速度,從服務端渲染著手,可以利用Node.js往後端跨。

提升移動web的H5頁面的啟動耗時,從webview著手,利用iOS和Android技能往客戶端跨。

使用者互動操作體驗,也是衡量前端優化的重要指標,我們以這個優化點來總結一下從哪些方面跨:

提升使用者互動體驗,嘗試將web頁面客戶端化,基於React Native或者Weex,也可以往客戶端跨。

提升頁面動畫效果,編寫高效能的前端動畫,也可以往UI動效設計跨。

合理的跨界,可以讓架構師對於業務的整體有深層次的認識,針對各種問題可以提出非前端之外的解決方案。

嚐鮮
技術是不斷髮展的,作為一個架構師,不斷學習新的技術是非常重要的,這裡所說的嚐鮮,就是要對技術保持一定的熱情,不能只滿足於現狀,說白了講就是要不斷的學。

習慣了jQuery開發頁面,不妨試試Vue,React。

寫了很久的ES5程式碼,學學ES6也不錯。

沉醉在HTML,CSS,JavaScript開發頁面,不妨學學Flutter。

打造高效能的Web App,試試Service Worker。

從HTTP協議觸發,改造升級spdy和HTTP2,嘗試一下HTTP3。

上面列舉的嚐鮮技能,是完全可以從一個前端的角度觸發,來不斷深入的,保持對每一個新技術的求知慾,是一名架構師必不可少的。

工具和平臺化建設
只會寫程式碼的程式設計師只能叫碼農。
當技術達到一定的高度時,能夠為業務再次提升的能力就會逐漸變少,那麼我們不如跳出技術本身,來改善業務周邊的工具平臺,同樣來為業務服務。作為一名架構師,要有這種能力。

提到工具平臺,大家很快就能跟自己的團隊裡面的一些工具聯絡起來。這裡主要跟大家探討一下,我們的工具體系要用什麼的思路去規劃和review,也看一下我們還有那些可以進一步去完善的點。

流程和規範化
身為一名架構師,對流程的制定和規範,是非常重要的。不要小瞧規範的威力,可以極大的提升開發效率,真正優秀的規範不會讓使用者感到約束,而是能幫助他們快速定位問題,提升效率。

這裡的規範,總結起來可以分為成:

結構的規範:對專案的程式碼結構,不管前後端,合理的分層和元件化是非常必要的。

編碼的規範:這裡主要就是程式碼codereview了,定期的進行codeview的同時,最好可以使用一些自動化工具。

流程的規範:專案的評審,研發,測試,釋出這些階段都需要有流程來約束,這些需要結合自身團隊的實際情況來制定。

規範的落地:對於規範來說最關鍵的是執行落地,在制定完規範的同事,要不時的回顧是否切實的落地,這個應該是團隊裡每個成員堅持的基本準則。

方法論
所謂方法論,可能單單說起來是比較抽象的,這裡的方法論,主要是指在完成一項小的需求,或者是承接一個重大的專案,在具體的實施過程中,要有一定的方法和技巧,相信大家都看過《穹頂之下》這個視訊,就是很強的方法論體現。其實說白了將就是做事要有套路。

在效能優化時,我們如何證明優化是有效果的,可以採用“三明治法則”(自己起的名字?):

首先優化前,我們需要找到問題的現狀,並且要有資料能夠佐證優化前的狀態。所以就要學會去收集資料。

有了資料之後,我們在進行對資料分析的同時,就需要找到問題出現的原因,並且付諸實施解決。這個階段,就需要記錄具體的優化原理。

優化之後,就要想方設法去驗證,並且在驗證過程中,同樣需要收集資料。

到此,我們就有了 優化前資料,優化的原理,優化後的資料。通過資料對比,我們就可以很輕易的去佐證我們這次優化是有成效的,並且可以做出一份很漂亮的總結,作為一名架構師而言,這是一個很好的樹立威信的場景體現。

我們可以在發散開來,上面的三步驟可以再次迭代,也就是說,第一次優化,我們達到了效果,但是深究之後,還可以再次進行優化,每次優化都有資料佐證,這就是效能優化的方法論。

安全意識
這裡為什麼要把安全單獨拿出來說呢,因為對於一個業務而言,安全是第一要素,就好比一個國家,安全穩定才是發展一切的前提,一旦業務出現安全問題,就可能瞬間損失掉全部,代價是非常慘重的。所以作為一名架構師,必須要保證業務的穩定性,可以總結以下幾點:

對低階的的程式碼安全問題,要堅決說不,例如前端裡面的xss,csrf這些問題。

對大型運營類活動需求,要有容災意識和備份,例如在準備了一套方案的同時,要有可選的備用方案。

嘗試使用工具化來解決和預防安全問題,例如BAT這種大型企業,在運維和程式碼層面,都有一層保障機制,如騰訊的門神系統等。

團隊合作
沒有完美的個人,卻有完美的團隊。
即使是一名架構師,我相信他也不是一直在一個人戰鬥,一個優秀的產品業務,總是誕生於團隊,所以時刻保持和團隊人員的溝通是必不可少的,這些溝通不限於日常的文字,或者會議,甚至私下的團建活動,都是可以相互瞭解的。

所以團隊合作的目的就是讓團隊中的每個人都能明確自己的職責,併發揮出最大的價值,架構師有義務來維護這種合作關係。並且對你的認同,也是團隊成員賦予你的,維護良好的氛圍,才能讓團隊成員信服。

最後,總結一下,對前端架構師理解的一些誤區:

架構師並不等於全棧工程師。

架構師切記完全脫離程式碼,但是也不要一直悶著頭寫程式碼。

架構師應當跳出技術本身,從全域性的角度來看的業務,發現並解決問題。

任何專案的架構都不是一開始制定好就是一成不變的,他應該是不斷迭代和演進的,架構師有義務來保證架構的創新性。

連結:https://pan.baidu.com/s/1ugCNmod3634_dQmTVVS-uw
提取碼:lgg5

相關文章