三條有效的實戰經驗助你成為移動互聯架構師!
希望你看完這一篇,能充分認知和了解架構師,認知對了,事就好辦了。
01
架構師的準確定義
架構師的職責應該是立足於技術和業務之間的中間角色或者平衡點, 在針對業務深刻理解的基礎上,針對業務中存在諸多變數,挑選適合的技術架構和技術方案。
結合現有的技術團隊的水平與特點,選擇合適的技術架構進行落地和實現。
02
首要任務,技術的選型
當你做架構設計時,必然會面臨技術選型的抉擇,不同的技術方案,架構也可能完全不同。
比如架構後端語言選型,採用java語言開發,還是php語言,c#開發,ruby開發,還是python開發,還是groovy開發等。

Java語言進階與Android相關技術核心
為什麼要選擇這門語言?這是重點,是業務需(能快速開發釋出php),還是人員需要(java開發資源多),還是未來可拓展架構需要(.net大型網站全面轉型java,你還會繼續使用.net麼),還是技術需要(python在網路爬蟲以及未來人工智慧的使用場景)…

App開發框架知識體系(APP亦物件)
再比如移動端選型,App是純原生開發,還是Web App,抑或Hybrid App?iOS開發,語言上是選擇Objective-C還是Swift?架構模式用MVC,還是MVP,或者MVVM?

Android前沿技術
很多技術架構的選擇沒有弄清楚,盲選選擇技術架構,不僅不有利於開發,更不有利於業務需要。
這裡普遍犯錯的地方就在於大部分都是半桶水,以為按照網上的經驗就可以直接copy,直接搬磚過來,實則根本沒有這塊的經驗。
再舉一個例子,早期訪問量巨大的.net轉java,京東、攜程…等等,為什麼要轉是一回事,怎麼轉是另外一回事,再比如最近某一國內最大的遊戲網站.net開發,現在要轉java,找了一批人,最後發現java領域精通的人,往往並不知道.net領域的問題,這就涉及到怎麼轉,哪部分可以轉java,哪部分不能轉,而不是全轉,為什麼?

NDK開發模組
所以,架構師在做每一個決定需要考慮諸多因素,再比如高效的技術選型需要很高的學習曲線,在工期與人員素質之間需要權衡。精妙的技術架構並不能解決業務的快速迭代和變化,技術架構都是後知後覺的,無法準確的預知業務層面的變更與方向,故只能是跟隨的角色,這樣就必然會面臨技術架構迭代和升級的需求,技術架構從來都不是建立了之後,就無需修改,可以承載各方的多重期望。
03
其次,業務理解和拆解能力。
這一項是架構師的勝負手,大部分做IT的朋友,對業務的理解和拆解能力是比較差的,總以為把技術選型,架構搭建,技術難點發展為最核心的架構師能力。

今天,再次重申,這樣的觀點是及其錯誤的。沒有商業,沒有訪問量,沒有增長,沒有業務需要,需要技術來幹什麼?關於這一點,很多同學不以為然,之所以技術這10年發展迅速,需要感謝網際網路的快速發展,否則我們都失業了。特別是這一波人工智慧的發展,未來基礎性的開發人員肯定會銳減,為啥?根本不需要這麼多開發人員,基礎性開發工作,可替代性太強了。
架構師需要深入理解業務,不管是業務的流程,還是整塊業務需求,甚至包括業務細節,你需要重點關注,這一點很多做需求評估的時候,架構師不參加也是極其錯誤的。
也有很多公司在架構升級的時候,架構師根本不懂業務,就開始獨立拆分,就開始上手,拜託,業務沒搞懂就上來拆解,這就跟醫生沒有臨床試驗就開始做手術一個道理。
總之,公司的架構師不懂業務,這就是扯淡。
那麼如何成長為一名有技術功底的移動互聯架構師呢?
在這裡我個人總結了一些學習經驗和學習資料,還收集了一些Android高階工程師的面試題集錦:

資料圖
需要資料的朋友可以加入Android架構交流QQ群聊:513088520
點選連結加入群聊【Android移動架構總群】: 加入群聊
獲取免費學習視訊,學習大綱另外還有像高階UI、效能優化、架構師課程、NDK、混合式開發(ReactNative+Weex)等Android高階開發資料免費分享。