1、開(kāi)發(fā)者和架構(gòu)師之間最大的區(qū)別是什么?
架構(gòu)師和開(kāi)發(fā)者一樣,也經(jīng)常寫(xiě)代碼,簡(jiǎn)單的說(shuō),開(kāi)發(fā)者和架構(gòu)師之間最大的區(qū)別就是技術(shù)領(lǐng)導(dǎo)力。
軟件架構(gòu)師的角色需要理解最重要的架構(gòu)驅(qū)動(dòng)力是什么,他提供的設(shè)計(jì)需要考慮這些因素。架構(gòu)師還要控制技術(shù)風(fēng)險(xiǎn),在需要的時(shí)候積極演化架構(gòu),并且負(fù)責(zé)技術(shù)質(zhì)量保證。從根本上講,架構(gòu)師是一個(gè)技術(shù)領(lǐng)導(dǎo)者的角色,這就是最大的區(qū)別。
2、一位開(kāi)發(fā)者如何才能成為一位架構(gòu)師?他/她需要掌握哪些領(lǐng)域之外的能力?
兩個(gè)字:經(jīng)驗(yàn)。
我認(rèn)識(shí)的大部分優(yōu)秀軟件架構(gòu)師同時(shí)也是出色的軟件開(kāi)發(fā)者,他們都是經(jīng)過(guò)時(shí)間逐漸發(fā)展成為架構(gòu)師的。你需要有退后一步看代碼的能力,從而理解特定軟件系統(tǒng)背后的設(shè)計(jì)決策。退后一步才能看到“大局”,這是架構(gòu)師必須掌握的核心技能。
3、你對(duì)軟件架構(gòu)的理解是否因?yàn)槟愕慕?jīng)歷和實(shí)踐而改變過(guò)?
是的。我對(duì)軟件架構(gòu)的理解是根據(jù)我在咨詢(xún)公司工作時(shí)在各個(gè)項(xiàng)目中負(fù)責(zé)軟件架構(gòu)的經(jīng)驗(yàn)形成的。咨詢(xún)是一件好事,尤其從最近我開(kāi)始從事獨(dú)立咨詢(xún)師這個(gè)工作之后,我可以看到很多不同的團(tuán)隊(duì),不同的架構(gòu),不同的技術(shù),以及人們不同的工作方式。世界各地的文化多樣性又為工作的復(fù)雜度增加了一個(gè)維度。無(wú)論是尋找特定問(wèn)題解決方案的過(guò)程,還是為各種想法去蕪存菁的過(guò)程,這些經(jīng)驗(yàn)和與我共事的人的反饋一起最終形成了我今天對(duì)軟件架構(gòu)的認(rèn)識(shí),這些思維也反應(yīng)在了我的書(shū)中。
4、有沒(méi)有什么事是架構(gòu)師永遠(yuǎn)都不應(yīng)該做的?
有,軟件架構(gòu)師永遠(yuǎn)都不應(yīng)該停止編程和停止學(xué)習(xí)!
程序員從初級(jí)走向資深的過(guò)程中,會(huì)面臨兩個(gè)支路,一個(gè)叫技術(shù)主管,另一個(gè)則是架構(gòu)師。
總結(jié)程序員到架構(gòu)師之路的忠告:
1、程序就是一切。文檔是緊接其后的事情。因此,把你們的代碼寫(xiě)成本身就是文檔,而且要好用。
2、測(cè)試 測(cè)試 測(cè)試。
3、單元測(cè)試要嚴(yán)格。任何一個(gè)單元測(cè)試中發(fā)現(xiàn)的bug都負(fù)擔(dān)了開(kāi)發(fā)人員成本外的雙重代價(jià)。你們要知道,我寧愿給你們更多的薪水也不愿找別的QA公司來(lái)測(cè)試、讓你們修改bug。但如果你的程序?qū)懙暮懿?,那我只好把這些錢(qián)由這些人平攤,你們只能得到其中很小的一塊蛋糕。
4、寫(xiě)出好代碼要能給人類(lèi)閱讀,給CPU使用。絕對(duì)不能向爛代碼低頭。
5、閱讀更多的知識(shí),不要局限于目前的工作所需。如果你只掌握今天需要的知識(shí)而不知明天需要的,你不會(huì)有發(fā)展進(jìn)步。
6、回家不時(shí)的做做飯。是的,真的飯。這會(huì)讓你知按照菜譜做飯和自己創(chuàng)造一頓飯之間的區(qū)別。前者是在做飯前已經(jīng)知道了需要什么,而后者是根據(jù)你目前有的來(lái)做 … 就這一點(diǎn)點(diǎn)不同。
7、抽象的能力,抽象思考的能力怎么強(qiáng)調(diào)都不為過(guò)?,F(xiàn)實(shí)的需求紛繁復(fù)雜,如果架構(gòu)師不能夠把這些亂無(wú)頭緒的需求抽象成一些“概念”,在概念的層次進(jìn)行思考,系統(tǒng)根本就無(wú)法設(shè)計(jì)。
8、技術(shù)領(lǐng)導(dǎo)力,要用技術(shù)的影響力來(lái)領(lǐng)導(dǎo)人,而不是威權(quán)和職位。換句大白話(huà)來(lái)說(shuō),就是要能讓技術(shù)人員服你。有了技術(shù)影響力,你在團(tuán)隊(duì)發(fā)出的聲音才會(huì)被傾聽(tīng),被尊重。
另外還有一點(diǎn)可以通過(guò)自身的學(xué)習(xí)來(lái)獲取一大進(jìn)步。
聯(lián)系客服