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

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


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

一.做爲技術領導者數據庫

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

二.做爲開發人員安全

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

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

三.聚焦系統分佈式

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

四.企業家思惟源碼分析

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

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

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

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

六.良好的溝通

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

七.總結

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

若是你也想在IT行業拿高薪,能夠參加咱們的訓練營課程,選擇最適合本身的課程學習,技術大牛親授,7個月後,進入名企拿高薪。咱們的課程內容有:Java工程化、高性能及分佈式、高性能、深刻淺出。高架構。性能調優、Spring,MyBatis,Netty源碼分析和大數據等多個知識點。若是你想拿高薪的,想學習的,想就業前景好的,想跟別人競爭能取得優點的,想進阿里面試但擔憂面試不過的,你均可以來,羣號爲:488694198

注:加羣要求

一、具備1-5工做經驗的,面對目前流行的技術不知從何下手,須要突破技術瓶頸的能夠加。

二、在公司待久了,過得很安逸,但跳槽時面試碰壁。須要在短期內進修、跳槽拿高薪的能夠加。

三、若是沒有工做經驗,但基礎很是紮實,對java工做機制,經常使用設計思想,經常使用java開發框架掌握熟練的,能夠加。

四、以爲本身很牛B,通常需求都能搞定。可是所學的知識點沒有系統化,很難在技術領域繼續突破的能夠加。

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

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

相關文章
相關標籤/搜索