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