{eval=Array;=+count(Array);}
到底怎樣的程序員能稱為架構(gòu)師?首先要知道架構(gòu)師是做什么的,架構(gòu)師主要職責(zé)是確認(rèn)和評(píng)估系統(tǒng)需求,給出開(kāi)發(fā)規(guī)范,搭建系統(tǒng)實(shí)現(xiàn)的核心構(gòu)架,并澄清技術(shù)細(xì)節(jié)、掃清主要難點(diǎn)的技術(shù)人員。
那么怎樣從一個(gè)程序員成為架構(gòu)師呢,我總結(jié)了以下幾個(gè)方面:
首先程序員自身想往架構(gòu)師方向發(fā)展,然后換位思考與架構(gòu)師的差距,該如何努力才能符合一個(gè)優(yōu)秀的架構(gòu)師,所以關(guān)注范圍是不同的,程序員專注于具體細(xì)節(jié),而架構(gòu)師專注于“宏觀視角”,整體大局出發(fā),所以不能只專注寫代碼。
架構(gòu)師的主要任務(wù)不是從事具體的軟件程序的編寫,而是從事更高層次的開(kāi)發(fā)構(gòu)架工作,所以要想成為架構(gòu)師,自身的技術(shù)能力一定要提升,基礎(chǔ)一定要扎實(shí)。還有就是要去掌握一些知識(shí)來(lái)提升自己的抽象能力,提高自己的建模能力,因?yàn)榧軜?gòu)師所需要具備的就是能夠從很紛繁復(fù)雜的需求當(dāng)中抽象出一個(gè)共同的東西出來(lái)。
優(yōu)秀的架構(gòu)師要滿足業(yè)務(wù)需求和能夠靈活對(duì)各個(gè)人士的技能,同時(shí)也對(duì)了解多種框架熟悉應(yīng)用,清洗明確適應(yīng)場(chǎng)景,這些都需要程序員長(zhǎng)期的積累,從開(kāi)發(fā)工作中提升自己的技術(shù),從項(xiàng)目中積累中提升業(yè)務(wù)能力。
架構(gòu)師專注宏觀,但通晰微觀;開(kāi)發(fā)框架,又精通需求;熟練當(dāng)前技術(shù),還能前瞻未來(lái)發(fā)展。成為一個(gè)架構(gòu)師絕對(duì)不是一朝一夕就能突破的,是要從基礎(chǔ)開(kāi)始一點(diǎn)一滴積累而來(lái)。而作為程序員更是要打好自身的基礎(chǔ),開(kāi)拓自己的視野,用自律的心態(tài)和積極向上的意識(shí)敦促自己,跨越臺(tái)階,成為合格的架構(gòu)師。
作為一名從業(yè)多年的IT人,我來(lái)回答一下這個(gè)問(wèn)題。
首先,架構(gòu)師是程序員發(fā)展的一個(gè)重要方向,也是IT行業(yè)中的重要崗位。
一個(gè)軟件產(chǎn)品的開(kāi)發(fā)需要一系列角色的配合才能夠完成,從一個(gè)產(chǎn)品的設(shè)計(jì)到最終的部署需要產(chǎn)品經(jīng)理、策劃、交互工程師、視覺(jué)工程師、架構(gòu)師、產(chǎn)品經(jīng)理、程序員、測(cè)試、運(yùn)維工程師等一系列角色的配合。
從研發(fā)的角度來(lái)說(shuō),程序員可以簡(jiǎn)單劃分為兩類,一類是設(shè)計(jì),另一類是實(shí)現(xiàn)。負(fù)責(zé)設(shè)計(jì)的程序員通常也就是所謂的研發(fā)級(jí)程序員,主要解決系統(tǒng)級(jí)問(wèn)題,比如平臺(tái)的研發(fā)、接口(API)的設(shè)計(jì)等工作,通常針對(duì)的是行業(yè)級(jí)問(wèn)題。而負(fù)責(zé)實(shí)現(xiàn)的程序員通常是所謂的應(yīng)用級(jí)程序員,通過(guò)接口來(lái)完成平臺(tái)功能的調(diào)用從而實(shí)現(xiàn)具體的業(yè)務(wù)邏輯,工作的重點(diǎn)在于具體功能的實(shí)現(xiàn),往往針對(duì)于具體的應(yīng)用場(chǎng)景。
技術(shù)領(lǐng)域的架構(gòu)師也通常分為兩個(gè)大類,一類是平臺(tái)架構(gòu)師,另一類是應(yīng)用架構(gòu)師。平臺(tái)架構(gòu)師制定的是平臺(tái)的研發(fā)策略和技術(shù)指標(biāo),通常要結(jié)合功能定位和行業(yè)定位來(lái)進(jìn)行具體的設(shè)計(jì)。平臺(tái)架構(gòu)師通常是研發(fā)級(jí)程序員成長(zhǎng)起來(lái)的,同時(shí)具備一定的行業(yè)前瞻性。比如James Gosling(Java創(chuàng)始人)和Linus Benedict Torvalds(Linux創(chuàng)始人)就是典型的平臺(tái)架構(gòu)師。
通常所說(shuō)的軟件架構(gòu)師大部分指的是應(yīng)用架構(gòu)師,針對(duì)于具體的應(yīng)用場(chǎng)景給出軟件產(chǎn)品的設(shè)計(jì)方案、技術(shù)選型和接口設(shè)計(jì)等,通常應(yīng)用架構(gòu)師需要對(duì)各種平臺(tái)產(chǎn)品有較為清晰的了解,并能夠緊跟技術(shù)發(fā)展趨勢(shì)來(lái)不斷優(yōu)化設(shè)計(jì)方案。另外,應(yīng)用架構(gòu)師需要具備一定的行業(yè)背景,對(duì)于方案的技術(shù)瓶頸有豐富的解決方案。應(yīng)用架構(gòu)師通常是應(yīng)用級(jí)程序員成長(zhǎng)起來(lái)的,往往具有多年的行業(yè)開(kāi)發(fā)經(jīng)驗(yàn)。
我從事互聯(lián)網(wǎng)行業(yè)多年,目前也在帶計(jì)算機(jī)專業(yè)的研究生,主要的研究方向集中在大數(shù)據(jù)和人工智能領(lǐng)域,我會(huì)陸續(xù)寫一些關(guān)于互聯(lián)網(wǎng)技術(shù)方面的文章,感興趣的朋友可以關(guān)注我,相信一定會(huì)有所收獲。
如果有互聯(lián)網(wǎng)方面的問(wèn)題,或者考研方面的問(wèn)題,都可以咨詢我,謝謝!
架構(gòu)師不是說(shuō)針對(duì)去學(xué)習(xí),就能掌握到的。首先,你需要對(duì)各個(gè)技術(shù)面都要了解,需要知道實(shí)現(xiàn)一個(gè)產(chǎn)品,都需要哪些功能,以及各個(gè)功能需要的部件和這些部件之間的數(shù)據(jù)交互。
我一開(kāi)始是嵌入式工程師,后來(lái)從openstack轉(zhuǎn)做控制臺(tái)的后臺(tái)和前臺(tái)開(kāi)發(fā),在到后來(lái)前后端分離,開(kāi)始轉(zhuǎn)入react開(kāi)發(fā),以及公司需要手機(jī)app開(kāi)發(fā),學(xué)習(xí)了flutter的開(kāi)發(fā)。到現(xiàn)在我們公司的對(duì)外產(chǎn)品的大項(xiàng)目的整個(gè)架構(gòu)設(shè)計(jì)都是我來(lái)負(fù)責(zé)的,我覺(jué)得真的是需要從產(chǎn)品服務(wù)的部署運(yùn)維,底層服務(wù)實(shí)現(xiàn),前端用戶展示,都是需要涉及到的。從我們這個(gè)項(xiàng)目所涉及面來(lái)講,主要是kubernetes,prometheus,grafana,postgresql,mongodb,eggjs,react,django,alertmanager,redis,rabbitmq,這些都需要熟悉掌握。至于架構(gòu)圖,肯定不能在這里展示了。所以,我覺(jué)得,成為架構(gòu)師,是需要自己去多掌握各方面的技術(shù),有產(chǎn)品全局角度的分析。
你好,科技領(lǐng)域工作十多年的三邵又來(lái)夢(mèng)囈了:-),如有回答不妥,請(qǐng)指正。
架構(gòu)師需要具有一定的「 技術(shù)寬度 」和「 技術(shù)深度 」。
如果說(shuō)程序員具有以下這些典型特征,那么這個(gè)程序員可以認(rèn)為是架構(gòu)師級(jí)別的:
1、對(duì)一個(gè)領(lǐng)域所涉及的眾多技術(shù)面都有所掌握,能夠獨(dú)立完成開(kāi)發(fā),包括需求分析、方案設(shè)計(jì)、編碼實(shí)現(xiàn)。
2、具有一定的方案設(shè)計(jì)經(jīng)驗(yàn)并能獨(dú)立完成開(kāi)發(fā)。
3、可以獨(dú)立完成一個(gè)復(fù)雜系統(tǒng)的架構(gòu)設(shè)計(jì),可以是從0到 1 設(shè)計(jì)一個(gè)新系統(tǒng),也可以是將架構(gòu)從 1.0 重構(gòu)到 2.0。
4、能夠創(chuàng)造新的架構(gòu)模式。
如果你覺(jué)得我的回答對(duì)你有幫助,或解答了你的疑惑,歡迎點(diǎn)贊和關(guān)注!你的支持是我持續(xù)輸出的動(dòng)力!
一直做軟件架構(gòu)設(shè)計(jì),也有7~8年了,主要說(shuō)下個(gè)人理解吧,具體什么樣的程序員可以稱為架構(gòu)師,這個(gè)沒(méi)有標(biāo)準(zhǔn)答案。
1、視野要寬闊
2、業(yè)務(wù)經(jīng)驗(yàn)要豐富
3、有實(shí)戰(zhàn)型的一套技術(shù)體系,從前端到后端要都有了解,從開(kāi)發(fā)到交付都有落地經(jīng)驗(yàn)
4、善于總結(jié)、樂(lè)于分享給同事
5、及時(shí)更新自己的技術(shù)棧,逐步迭代項(xiàng)目中覺(jué)得不合適的架構(gòu)設(shè)計(jì)
目前就想到這么多,共勉。
精通某個(gè)行業(yè)的全面技術(shù),熟悉各種開(kāi)源框架(主要是Java領(lǐng)域),精通底層c和c++編程技術(shù),精通數(shù)據(jù)庫(kù)技術(shù)(數(shù)據(jù)設(shè)計(jì)、性能調(diào)優(yōu)、高級(jí)SQL語(yǔ)法),精通前后端開(kāi)發(fā)技術(shù),熟悉數(shù)據(jù)結(jié)構(gòu)和算法。根據(jù)項(xiàng)目需要能選定合適的技術(shù)方案,規(guī)避技術(shù)風(fēng)險(xiǎn)。在軟件出現(xiàn)疑難雜癥的時(shí)候能最快找到問(wèn)題方向和思路,同時(shí)給團(tuán)隊(duì)提供技術(shù)保障和技術(shù)培訓(xùn)!
關(guān)注范圍:程序員專注于具體細(xì)節(jié),而架構(gòu)師專注于“宏觀視角”。領(lǐng)導(dǎo)關(guān)系:程序員處于被領(lǐng)導(dǎo)地位,架構(gòu)師則扮演領(lǐng)導(dǎo)角色。資歷背景:架構(gòu)師的從業(yè)時(shí)間一般比程序員更長(zhǎng)。氣質(zhì)特性:架構(gòu)師是重要的夢(mèng)想家,而程序員則是面向繁瑣任務(wù)的實(shí)干者技術(shù)取向:架構(gòu)師做出選擇,而程序員提供選項(xiàng)。技能:架構(gòu)師的技能水平高于程序員。代碼:架構(gòu)師需要編寫之代碼平均少于開(kāi)發(fā)人員。組織互動(dòng):架構(gòu)師所參與之“業(yè)務(wù)”會(huì)議數(shù)量遠(yuǎn)多于程序員。薪酬:架構(gòu)師薪酬水平高于程序員。自身價(jià)值:架構(gòu)師的價(jià)值要高于程序員。
以前的宜興城市網(wǎng)就是號(hào)稱是我架構(gòu)的,所以那么值錢!其實(shí)我以前做的是游戲,我們?cè)陂_(kāi)發(fā)游戲,我們想玩游戲,然后我還是自慰器生產(chǎn)商和開(kāi)發(fā)商!謝乾不承認(rèn),不接受,認(rèn)為我是城市網(wǎng)架構(gòu)師!
0
回答0
回答0
回答0
回答0
回答7
回答10
回答0
回答1
回答0
回答