Simon Brown 是全球知名軟體架構獨立諮詢師、講師,創辦了專門討論軟體架構問題的網站“編碼架構”(CodingTheArchitecture.com)。他自稱是寫程式碼的軟體架構師和明白架構的軟體開發者。自2008年以來的7年時間裡,Simon在全球28個國家做過有關軟體架構、技術領導力及其與敏捷的平衡等主題的百餘場演講,並於2012年8月在中國舉辦的ArchSummit全球架構師峰會上以“鬱悶的架構師”和“如何設計安全的架構”為主題發表演講,深受與會者好評。Simon已為全球20多個國家的軟體團隊提供諮詢和培訓,他的客戶既有小型技術初創企業,也不乏全球家喻戶曉的品牌公司。Simon著有《程式設計師必讀之軟體架構》一書,他在這本書中打破傳統的認知,模糊軟體開發和架構在流程中的界限,進而為軟體架構正名。
問:開發者和架構師之間最大的區別是什麼?
架構師和開發者一樣,也經常寫程式碼,簡單的說,開發者和架構師之間最大的區別就是技術領導力。軟體架構師的角色需要理解最重要的架構驅動力是什麼,他提供的設計需要考慮這些因素。架構師還要控制技術風險,在需要的時候積極演化架構,並且負責技術質量保證。從根本上講,架構師是一個技術領導者的角色,這就是最大的區別。
問:一位開發者如何才能成為一位架構師?他/她需要掌握哪些領域之外的能力?
兩個字:經驗。我認識的大部分優秀軟體架構師同時也是出色的軟體開發者,他們都是經過時間逐漸發展成為架構師的。你需要有退後一步看程式碼的能力,從而理解特定軟體系統背後的設計決策。退後一步才能看到“大局”,這是架構師必須掌握的核心技能。這就是為什麼《程式設計師必讀之軟體架構》一書中加入了有關C4模型的內容,這是一種從多個不同抽象層面理解軟體系統的方法。這個方法有助於你退後一步反觀大局。
問:你對軟體架構的理解是否因為你的經歷和實踐而改變過?
是的。我對軟體架構的理解是根據我在諮詢公司工作時在各個專案中負責軟體架構的經驗形成的。諮詢是一件好事,尤其從最近我開始從事獨立諮詢師這個工作之後,我可以看到很多不同的團隊,不同的架構,不同的技術,以及人們不同的工作方式。世界各地的文化多樣性又為工作的複雜度增加了一個維度。無論是尋找特定問題解決方案的過程,還是為各種想法去蕪存菁的過程,這些經驗和與我共事的人的反饋一起最終形成了我今天對軟體架構的認識,這些思維也反應在了我的書中。
問:你書中的每一章內容都很有趣而且很精煉,有沒有想過寫幾本詳細論述《程式設計師必讀之軟體架構》中重要話題的書?
我寫作這本書的目的是要創造一本讓讀者可以從頭讀到尾的書,但是你也可以通過粗略瀏覽來找到具體問題的答案。對於這個問題來說,沒錯,有一些相關主題沒有出現在這本書中,這些主題可以構成一本與《程式設計師必讀之軟體架構》相互補的書。比如,圖表和建模的材料就可以擴充成一本完整的書,另外我和一個朋友也討論過要寫一本關於架構模式的技術性更強的書。
問:你在書中也談到了敏捷方法,你是如何看待現在流行的"敏捷已死"的說法的?
更多內容點此檢視
問:開發者和架構師之間最大的區別是什麼?
架構師和開發者一樣,也經常寫程式碼,簡單的說,開發者和架構師之間最大的區別就是技術領導力。軟體架構師的角色需要理解最重要的架構驅動力是什麼,他提供的設計需要考慮這些因素。架構師還要控制技術風險,在需要的時候積極演化架構,並且負責技術質量保證。從根本上講,架構師是一個技術領導者的角色,這就是最大的區別。
問:一位開發者如何才能成為一位架構師?他/她需要掌握哪些領域之外的能力?
兩個字:經驗。我認識的大部分優秀軟體架構師同時也是出色的軟體開發者,他們都是經過時間逐漸發展成為架構師的。你需要有退後一步看程式碼的能力,從而理解特定軟體系統背後的設計決策。退後一步才能看到“大局”,這是架構師必須掌握的核心技能。這就是為什麼《程式設計師必讀之軟體架構》一書中加入了有關C4模型的內容,這是一種從多個不同抽象層面理解軟體系統的方法。這個方法有助於你退後一步反觀大局。
問:你對軟體架構的理解是否因為你的經歷和實踐而改變過?
是的。我對軟體架構的理解是根據我在諮詢公司工作時在各個專案中負責軟體架構的經驗形成的。諮詢是一件好事,尤其從最近我開始從事獨立諮詢師這個工作之後,我可以看到很多不同的團隊,不同的架構,不同的技術,以及人們不同的工作方式。世界各地的文化多樣性又為工作的複雜度增加了一個維度。無論是尋找特定問題解決方案的過程,還是為各種想法去蕪存菁的過程,這些經驗和與我共事的人的反饋一起最終形成了我今天對軟體架構的認識,這些思維也反應在了我的書中。
問:你書中的每一章內容都很有趣而且很精煉,有沒有想過寫幾本詳細論述《程式設計師必讀之軟體架構》中重要話題的書?
我寫作這本書的目的是要創造一本讓讀者可以從頭讀到尾的書,但是你也可以通過粗略瀏覽來找到具體問題的答案。對於這個問題來說,沒錯,有一些相關主題沒有出現在這本書中,這些主題可以構成一本與《程式設計師必讀之軟體架構》相互補的書。比如,圖表和建模的材料就可以擴充成一本完整的書,另外我和一個朋友也討論過要寫一本關於架構模式的技術性更強的書。
問:你在書中也談到了敏捷方法,你是如何看待現在流行的"敏捷已死"的說法的?
更多內容點此檢視