【轉】如何成為一個技術全面的架構師


架構師是一個充滿挑戰的職業,需要關注很多維度和技術。只專注於單一領域的架構師並不是優秀的架構師。Pat Kua(原ThoughtWorks咨詢師)是一位經驗豐富的技術人員,他在本文中指出一個好的架構師需要是技術全面的架構師,並探討了成為一個技術全面的架構師所必須具備的六個方面。


如何成為一個技術全面的架構師

一.作為技術領導者

一名好的軟件架構師需要明白,作為領導者並不一定要告訴開發人員做什么。相反,好的架構師就像一個導師,帶領開發團隊向同一個技術願景前進。好的架構師會借助於講故事、影響力、引導沖突、構建信任等領導技能,將他們的架構願景變成現實。一個好的領導者,同時也是一個好的架構師。他/她會仔細聽取每個參與者的意見,通過與團隊的反饋互動調整他們的願景。

二.作為開發人員

一個架構師同時又是一個好的開發人員。通常,做出一個良好的架構選擇需要權衡理想的架構狀態與軟件系統的當前狀態。例如,如果一個問題更適合采用關系型數據庫來解決,那么將文檔數據庫引入到系統中的做法是毫無道理的。一個架構師如果不考慮技術選型與問題域之間的匹配度,那么會很容易受到各種技術的誘惑——這也就是常見的“象牙塔式架構師”行為模式。

緩解這種情況的最佳方式是架構師多與開發人員待在一起,花一些時間在代碼上。了解系統的構建方式及系統的約束將幫助架構師在當下環境做出正確的選擇。

三.聚焦系統

經驗豐富的開發人員明白代碼只是軟件的一個方面。為了讓代碼可運行,他們還需要了解代碼在生產環境中運行良好所需的其他重要質量屬性。他們需要考慮部署過程、自動化測試、性能、安全和可支持性等方面。開發人員可能以臨時的方式來實現這些質量屬性,而架構師不僅需要專注於了解代碼,還要了解並滿足不同利益相關者(如支持、安全和運營人員)的需求。一個好的架構師需要專注於尋找那些能夠滿足不同利益相關者需求的解決方案,而不是選擇針對某一個參與者的偏好或風格進行優化的工具或方法。

四.企業家思維

所有的技術選型都有相關的成本和收益,一個好的架構師需要從這兩個角度考慮新的技術選型。成功的企業家願意承擔風險,不過也會尋求快速學習和快速失敗的方法。架構師也可以用類似的方式做出技術選型,收集真實世界中有關短期和長期成本的信息,以及他們可能意識到的好處。

這方面一個很好的例子是,架構師避免承諾立即使用一個在閱讀新文章時看到的工具或某一會議上聽過的工具。相反,他們試圖通過架構調研來了解工具在其環境中的相關性,以收集更多信息。他們對於工具的選擇不是基於銷售量,而是考慮他們需要什么以及這個工具所提供的價值。他們還會尋找這些工具背后的隱性成本,例如工具的支持情況(如文檔化程度、社區使用情況),工具可能帶來的約束或長期來看可能引入的額外風險。

五.權衡策略思維與戰術思維

許多團隊由一些獨立的開發人員一起構建軟件,而每個人都傾向於選擇自己最舒適或最有經驗的工具和技術。好的架構師持續關注可能有用的新技術、工具或方法,但不一定立即采用它們。技術采用往往需要長期的考量。架構師將在團隊和組織層面尋求敏捷度(允許團隊快速采取行動)和對齊(保持足夠的一致性)之間的良好平衡。建立自己的技術雷達這樣的練習是用戰略思維探索技術的一個有用工具。

六.良好的溝通

架構師需要知道,有效溝通是建立信任和影響團隊以外成員的關鍵技能。他們知道不同群體使用不同的詞匯,而使用技術術語和描述與業務人員溝通將會變得比較困難。與其談論模式、工具和編程概念,架構師需要使用聽眾熟悉的詞匯與之交流,諸如風險回報、成本和收益等。這比單純使用技術詞匯進行溝通來得更好。架構師還需要認識到團隊內部溝通與外部溝通同樣重要,可以使用圖表和小組討論的方式來建立和完善技術願景,並書面記錄之(如架構決策日志或Wiki等),從而為將來留下可追溯的歷史。

七.總結

最后Pat指出,做一個技術全面的架構師並不容易,因為有很多的方面需要我們關注,而每個方面都有很多作為開發人員經常不會專注去練習的技能。其實最重要的不一定是一個架構師的能力,而是他們在每個不同的領域都有足夠的專業知識。僅僅掌握上述某個領域的架構師不如在六個方面都有良好專業知識的架構師來得更有價值。

如果你也想在IT行業拿高薪,可以參加我們的訓練營課程,選擇最適合自己的課程學習,技術大牛親授,7個月后,進入名企拿高薪。我們的課程內容有:Java工程化、高性能及分布式、高性能、深入淺出。高架構。性能調優、Spring,MyBatis,Netty源碼分析和大數據等多個知識點。如果你想拿高薪的,想學習的,想就業前景好的,想跟別人競爭能取得優勢的,想進阿里面試但擔心面試不過的,你都可以來,群號為:488694198

注:加群要求

1、具有1-5工作經驗的,面對目前流行的技術不知從何下手,需要突破技術瓶頸的可以加。

2、在公司待久了,過得很安逸,但跳槽時面試碰壁。需要在短時間內進修、跳槽拿高薪的可以加。

3、如果沒有工作經驗,但基礎非常扎實,對java工作機制,常用設計思想,常用java開發框架掌握熟練的,可以加。

4、覺得自己很牛B,一般需求都能搞定。但是所學的知識點沒有系統化,很難在技術領域繼續突破的可以加。

5.阿里Java高級大牛直播講解知識點,分享知識,多年工作經驗的梳理和總結,帶着大家全面、科學地建立自己的技術體系和技術認知!

6.小號或者小白之類加群一律不給過,謝謝。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM