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