對(duì)于大部分小伙伴來(lái)說(shuō),對(duì)系統(tǒng)架構(gòu)師很非常陌生,甚至都沒(méi)有聽(tīng)說(shuō)過(guò),那么什么是系統(tǒng)架構(gòu)師呢?系統(tǒng)架構(gòu)師應(yīng)該需要學(xué)習(xí)什么呢?現(xiàn)在小編給大家介紹一下。
什么是系統(tǒng)架構(gòu)師呢?
系統(tǒng)架構(gòu)師是一個(gè)最終確認(rèn)和評(píng)估系統(tǒng)需求,給出開(kāi)發(fā)規(guī)范,搭建系統(tǒng)實(shí)現(xiàn)的核心構(gòu)架,并澄清技術(shù)細(xì)節(jié)、掃清主要難點(diǎn)的技術(shù)人員。主要著眼于系統(tǒng)的“技術(shù)實(shí)現(xiàn)”。因此他/她應(yīng)該是特定的開(kāi)發(fā)平臺(tái)、語(yǔ)言、工具的大師,對(duì)常見(jiàn)應(yīng)用場(chǎng)景能給出最恰當(dāng)?shù)慕鉀Q方案,同時(shí)要對(duì)所屬的開(kāi)發(fā)團(tuán)隊(duì)有足夠的了解,能夠評(píng)估自己的團(tuán)隊(duì)實(shí)現(xiàn)特定的功能需求需要的代價(jià)。 系統(tǒng)架構(gòu)師負(fù)責(zé)設(shè)計(jì)系統(tǒng)整體架構(gòu),從需求到設(shè)計(jì)的每個(gè)細(xì)節(jié)都要考慮到,把握整個(gè)項(xiàng)目,使設(shè)計(jì)的項(xiàng)目盡量效率高,開(kāi)發(fā)容易,維護(hù)方便,升級(jí)簡(jiǎn)單等。
系統(tǒng)架構(gòu)師需要學(xué)什么專(zhuān)業(yè)?要具備哪些能力?
系統(tǒng)架構(gòu)師學(xué)的專(zhuān)業(yè)肯定是計(jì)算機(jī)相關(guān)專(zhuān)業(yè),例如計(jì)算機(jī)科學(xué)與技術(shù)、軟件工程師等。需要掌握專(zhuān)業(yè)知識(shí)有計(jì)算機(jī)原理基礎(chǔ)知識(shí)、編程語(yǔ)言知識(shí)、程序設(shè)計(jì)知識(shí)、研發(fā)綜合能力、網(wǎng)絡(luò)安全知識(shí)、Linux知識(shí)、運(yùn)維知識(shí)、數(shù)據(jù)庫(kù)、常用開(kāi)發(fā)相關(guān)應(yīng)用軟件、性能優(yōu)化、大數(shù)據(jù)知識(shí)、工程化、架構(gòu)基礎(chǔ)知識(shí)、架構(gòu)設(shè)計(jì)、互聯(lián)網(wǎng)公司經(jīng)典技術(shù)架構(gòu)、 GitHub上整理的一些工具和資源、平臺(tái)工具等。架構(gòu)師對(duì)技術(shù)深度和廣度非常高,同時(shí)需要一定管理能力、協(xié)調(diào)能力、溝通能力等。大部分架構(gòu)師都是從程序開(kāi)發(fā)晉升的。
架構(gòu)師都有哪些種類(lèi)?
1、應(yīng)用架構(gòu)師
應(yīng)用架構(gòu)師是行業(yè)中數(shù)量最多的架構(gòu)師,主要負(fù)責(zé)公司產(chǎn)品的技術(shù)架構(gòu)。產(chǎn)品架構(gòu)師需要對(duì)業(yè)務(wù)有足夠的理解,根據(jù)產(chǎn)品需求設(shè)計(jì)架構(gòu),在運(yùn)營(yíng)團(tuán)隊(duì)的協(xié)助下評(píng)估量級(jí),并管理項(xiàng)目的整個(gè)生命周期。
2、中間件架構(gòu)師
中間件架構(gòu)師主要負(fù)責(zé)基礎(chǔ)框架、公共組件,通用服務(wù)的搭建。比如分布式服務(wù)框架諸如 Dubbo,HSF;比如消息隊(duì)列諸如 RocketMQ,Kafka。在大型互聯(lián)網(wǎng)公司中,往往不是把開(kāi)源框架簡(jiǎn)單「拿來(lái)」,而是研發(fā)出符合自身業(yè)務(wù)的企業(yè)中間件。
3、基礎(chǔ)設(shè)施架構(gòu)師
基礎(chǔ)設(shè)施架構(gòu)師負(fù)責(zé)服務(wù)器資源、網(wǎng)絡(luò)資源、數(shù)據(jù)庫(kù)等基礎(chǔ)設(shè)施的建設(shè);以及持續(xù)集成工具、持續(xù)部署工具的搭建。
以上所說(shuō)的三種,只是架構(gòu)師最基本的分類(lèi)。一些特殊領(lǐng)域也有著專(zhuān)門(mén)的架構(gòu)師,比如網(wǎng)絡(luò)安全架構(gòu)師、大數(shù)據(jù)架構(gòu)師等等。
架構(gòu)師需要具備哪些能力呢?
一般來(lái)講,系統(tǒng)架構(gòu)師應(yīng)該擁有以下幾方面的能力:
1、具備 8 年以上軟件行業(yè)工作經(jīng)驗(yàn);
2、具備 4 年以上 C/S 或 B/S 體系結(jié)構(gòu)軟件產(chǎn)品開(kāi)發(fā)及架構(gòu)和設(shè)計(jì)經(jīng)驗(yàn);
3、具備 3 年以上的代碼編寫(xiě)工作經(jīng)驗(yàn);
4、具備豐富的大中型開(kāi)發(fā)項(xiàng)目的總體規(guī)劃、方案設(shè)計(jì)及技術(shù)隊(duì)伍管理經(jīng)驗(yàn);
5:對(duì)相關(guān)的技術(shù)標(biāo)準(zhǔn)有深刻的認(rèn)識(shí),對(duì)軟件工程標(biāo)準(zhǔn)規(guī)范有良好的把握;
6、對(duì) .Net/JAVA 技術(shù)及整個(gè)解決方案有深刻的理解及熟練的應(yīng) 用 ,并且精通WebService/J2EE 架構(gòu)和設(shè)計(jì)模式,并在此基礎(chǔ)上設(shè)計(jì)產(chǎn)品框架;
7、具有面向?qū)ο蠓治觥⒃O(shè)計(jì)、開(kāi)發(fā)能力(OOA、OOD、OOP),精通 UML 和 ROSE,熟練使用 Rational Rose、PowerDesigner 等工具進(jìn)行設(shè)計(jì)開(kāi)發(fā);
8、精通大型數(shù)據(jù)庫(kù)如 Oracle、Sql Server 等的開(kāi)發(fā);
9、對(duì)計(jì)算機(jī)系統(tǒng)、網(wǎng)絡(luò)和安全、應(yīng)用系統(tǒng)架構(gòu)等有全面的認(rèn)識(shí),熟悉項(xiàng)目管理理論,并有實(shí)踐基礎(chǔ);
10、在應(yīng)用系統(tǒng)開(kāi)發(fā)平臺(tái)和項(xiàng)目管理上有深厚的基礎(chǔ),有大中型應(yīng)用系統(tǒng)開(kāi)發(fā)和實(shí)施的成功案例;
11、良好的團(tuán)隊(duì)意識(shí)和協(xié)作精神,有較強(qiáng)的內(nèi)外溝通能力。