一、廣度:
廣度指的是架構(gòu)師應(yīng)該對(duì)所在領(lǐng)域的主流技術(shù)體系有一個(gè)清晰的認(rèn)識(shí),每一種技術(shù)不需要很深入的了解,但必須知道每種技術(shù)的“3W”:
1,Why:每種技術(shù)的由來(lái),為什么會(huì)出現(xiàn)這種技術(shù),這個(gè)技術(shù)是用來(lái)解決什么問(wèn)題的?
2,What:每種技術(shù)是什么?技術(shù)的基本組成部分是什么?
3,Which:解決同一問(wèn)題的相同技術(shù)各自的優(yōu)缺點(diǎn)是什么,更適合哪種場(chǎng)景?比如,ORM框架(Hibernate與IBatis),MVC框架(Struts與SpringMVC),大數(shù)據(jù)技術(shù)(Hadoop與Spark)它們各自的優(yōu)缺點(diǎn)是什么,只有清晰認(rèn)識(shí)同一類型技術(shù)的優(yōu)缺點(diǎn),才能在技術(shù)選型時(shí)能夠使用更加合理的技術(shù)。
廣度的學(xué)習(xí)方法:對(duì)各主流技術(shù)一一通過(guò)搜索引擎了解其3W的內(nèi)容。
二、高度:
高度指的是架構(gòu)師應(yīng)具備對(duì)客觀事物的“拔高”能力,能夠從紛繁雜亂的信息中建立秩序,也就是我們一般所說(shuō)的抽象能力。
抽象能力包括:
1,業(yè)務(wù)抽象:能夠軟件和產(chǎn)品的復(fù)雜的需求中抽象核心業(yè)務(wù)實(shí)體,并給各業(yè)務(wù)實(shí)體建立合理的關(guān)系;
2,技術(shù)抽象:能夠?qū)?fù)雜的技術(shù)架構(gòu)進(jìn)行分層抽象、服務(wù)抽象(微服務(wù)抽象)、組件抽象,并為各層和各服務(wù)之間的調(diào)用建立合理的“關(guān)系”;
高度的學(xué)習(xí)方法:深入理解和學(xué)習(xí)面向?qū)ο?、設(shè)計(jì)模式,琢磨開(kāi)源框架的設(shè)計(jì)原理和設(shè)計(jì)思想。
三、深度:
深度指的是架構(gòu)師能對(duì)主流技術(shù)有較為深入的理解,主要包括:
1,可以不了解源代碼,但對(duì)主流技術(shù)的原理,運(yùn)作機(jī)理有一個(gè)基本的理解;
2,至少對(duì)一種技術(shù)有深入的認(rèn)識(shí),是這種技術(shù)的專家,熟悉其源代碼以上2點(diǎn),1為必須,2為非必須深度的學(xué)習(xí)方法:上文已說(shuō)。
四、寬度:
寬度指的是架構(gòu)師能夠熟知當(dāng)前的技術(shù)前沿和熱點(diǎn),能夠使用新的技術(shù)解決問(wèn)題。比如,微服務(wù)、大數(shù)據(jù)、云計(jì)算、人工智能等。
寬度的學(xué)習(xí)方法:可以使用手機(jī)訂閱相關(guān)的技術(shù)資訊了解,定期了解即可,對(duì)于跟所負(fù)責(zé)工作相關(guān)的技術(shù)進(jìn)行進(jìn)一步的了解。
小結(jié):廣度決定了系統(tǒng)架構(gòu)技術(shù)選型的合理性;高度決定了系統(tǒng)架構(gòu)設(shè)計(jì)的合理性;深度決定了系統(tǒng)架構(gòu)的優(yōu)化能力;寬度決定了系統(tǒng)架構(gòu)的性,不至于三五年被淘汰四度缺一不可!