如何成為一名合格的iOS開發(fā)架構(gòu)師?

前言:

最近好多人私信問我,該怎樣才能成為架構(gòu)師,還有一個(gè)就對(duì)當(dāng)前的狀態(tài)感到迷茫。我在此做一個(gè)簡單的說明,或者對(duì)迷茫中的你來說有些許幫助。

如果你是想成為iOS架構(gòu)師,那么你首先要是一個(gè)iOS高級(jí)攻城獅。也就是說,基礎(chǔ)底層知識(shí)必須牢固,對(duì)iOS的了解全面而且深入。

有很多人對(duì)現(xiàn)在的工作感到很沒意思,因?yàn)楫?dāng)前的工作,完全是實(shí)現(xiàn)業(yè)務(wù),技術(shù)上沒有任何提高。在這種狀態(tài)下就會(huì)感到迷茫,特別是一想到將來這種迷茫感就更強(qiáng)烈了。

與其說迷茫還不如說是擔(dān)憂,隨著時(shí)間的推移,自己的技術(shù)又沒有長進(jìn),所以感覺憂心忡忡。

這里分為這二種人:

第一種:混日子,過一天算一天,不想學(xué)習(xí)。

這一種的我就不過多討論了,沒有意義。我也碰到過很多這樣的同事,此類程序員已經(jīng)廢啦。

第二種:想提高自己的技術(shù),往架構(gòu)師方向努力。

給我發(fā)私信的人,大部分是這一種。首先,可以看出來,這些人都是有自己理想的人,也會(huì)付諸實(shí)踐的。想往架構(gòu)師方向走,但是卻苦于沒有人帶,自己也不知道如何成為框架師。再不改變,此類程序員可能會(huì)也廢。

作為一個(gè)開發(fā)者,有一個(gè)學(xué)習(xí)的氛圍跟一個(gè)交流圈子特別重要,這是一個(gè)我的iOS交流群:834688868,不管你是大牛還是小白都?xì)g迎入駐 ,分享BAT,阿里面試題、面試經(jīng)驗(yàn),討論技術(shù), 大家一起交流學(xué)習(xí)成長!

如果你正在面試,或者正準(zhǔn)備跳槽不妨動(dòng)動(dòng)小手,添加一下咱們的交流群:834688868 來獲取一份詳細(xì)的大廠面試資料 為你的跳槽加薪多一份保障

所以今天,我在這里,用書寫的方式,來教大家,要想成為一名高級(jí)架構(gòu)師,都需要干些什么,才能夠成為一名真正的高級(jí)架構(gòu)師,雖然我說的不完全對(duì)或者準(zhǔn)確,但我想我寫的這些也是能夠幫助大家的。

要成為一名高級(jí)架構(gòu)師,必須要認(rèn)知一下這幾點(diǎn):

第一點(diǎn):要認(rèn)知架構(gòu)師的定義

百度百科,架構(gòu)師是一個(gè)既需要掌控整體又需要洞悉局部瓶頸并依據(jù)具體的業(yè)務(wù)場景給出解決方案的團(tuán)隊(duì)領(lǐng)導(dǎo)型人物。一個(gè)架構(gòu)師得需

要足夠的想像力,能把各種目標(biāo)需求進(jìn)行不同維度的擴(kuò)展,為目標(biāo)客戶提供更為全面的需求清單。

如果你作為一名高級(jí)架構(gòu)師,你連架構(gòu)師的定義都不能理解,那我覺得,你的架構(gòu)師生涯基本是可以結(jié)束了。

第二點(diǎn):要認(rèn)知架構(gòu)師的工作職能

軟件架構(gòu)師在整個(gè)軟件開發(fā)過程中都起著重要的作用,并隨著開發(fā)進(jìn)程的推進(jìn)而其職責(zé)或關(guān)注點(diǎn)不斷地變化,在需求階段,軟件架構(gòu)師主要負(fù)責(zé)理解和管理非功能性系統(tǒng)需求,比如軟件的可維護(hù)性、性能、復(fù)用性、可靠性、有效性和可測試性等等,此外,架構(gòu)師還要經(jīng)常審查客戶及市場人員所提出的需求。

確認(rèn)開發(fā)團(tuán)隊(duì)所提出的設(shè)計(jì);在需求越來越明確后,架構(gòu)師的關(guān)注點(diǎn)開始轉(zhuǎn)移到組織開發(fā)團(tuán)隊(duì)成員和開發(fā)過程定義上;在軟件設(shè)計(jì)階段,架構(gòu)師負(fù)責(zé)對(duì)整個(gè)軟件體系結(jié)構(gòu)、關(guān)鍵構(gòu)件、接口和開發(fā)政策的設(shè)計(jì);在編碼階段,架構(gòu)師則成為詳細(xì)設(shè)計(jì)者和代碼編寫者的顧問,并且經(jīng)常性地要舉行一些技術(shù)研討會(huì)、技術(shù)培訓(xùn)班等;隨著軟件開始測試、集成和交付,集成和測試支持將成為軟件架構(gòu)師的工作重點(diǎn);在軟件維護(hù)開始時(shí),軟件架構(gòu)師就開始為下一版本的產(chǎn)品是否應(yīng)該增加新的功能模塊進(jìn)行決策。

第三點(diǎn):要認(rèn)知架構(gòu)師所具備的那幾個(gè)技能

知識(shí)廣度:需要知道主流技術(shù)為什么誕生,能解決什么問題?如果同一種業(yè)務(wù)用不用的技術(shù)來實(shí)現(xiàn),會(huì)有什么哪些優(yōu)缺點(diǎn)?比如:流行的框架OpenGL,要有清晰的認(rèn)識(shí)會(huì)能在技術(shù)造型時(shí)做出正確的決定。

抽象能力:對(duì)業(yè)務(wù)和技術(shù)進(jìn)行抽象。業(yè)務(wù)抽象就是對(duì)需求進(jìn)行分析后,能夠建立完美的實(shí)體類以及他們之間的聯(lián)系。技術(shù)抽象是對(duì)整體架構(gòu)進(jìn)行一個(gè)分層,各層之間的交互。這至關(guān)重要,如果技術(shù)抽象能力不足,這會(huì)導(dǎo)致整個(gè)系統(tǒng)的架構(gòu)不靈活,難以維護(hù)和擴(kuò)展。

知識(shí)的深度:至少是某個(gè)領(lǐng)域的專家,比如消息隊(duì)列,KVO,KVC熟悉其源碼,知道其實(shí)現(xiàn)。

優(yōu)秀的學(xué)習(xí)能力:對(duì)新的技術(shù)和前沿性的技術(shù)進(jìn)行學(xué)習(xí),使用它來解決工作中的業(yè)務(wù)問題。

以上這三大點(diǎn),是架構(gòu)師必須掌握的知識(shí),那么,問題來了,要把以上三大點(diǎn)給做好,那么你該如何去做呢?我覺得可以從以下幾個(gè)步驟開始:

1: 扎實(shí)的iOS 基礎(chǔ),底層技術(shù)

2:熟練使用主流框架,

3:研究過至少一種以web框架的源碼,

4:架構(gòu)過或者參與過高并發(fā)系統(tǒng)設(shè)計(jì),知道如何應(yīng)對(duì)突發(fā)情況。

5:對(duì)自己所處的業(yè)務(wù)能夠根據(jù)自己的知識(shí)維度,提出優(yōu)化建議或者預(yù)測其風(fēng)險(xiǎn)點(diǎn)。

其實(shí)能否成為架構(gòu)師跟機(jī)遇有很大關(guān)系,比如一個(gè)程序員,以上都做到了,但是公司并沒有給他這個(gè)機(jī)會(huì)去做,一個(gè)真正架構(gòu)的機(jī)會(huì)。因?yàn)橹暗募軜?gòu)師不離職他就沒有機(jī)會(huì),這就是現(xiàn)實(shí)!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容