1. 程式人生 > >《架構漫談閱讀心得》

《架構漫談閱讀心得》

學會 能力 相互 核心 滿足 最大 作者 發現 問題

  相信各位都知道程序員是IT行業中人數最多的一個職位,所有軟件都是經由他們的雙手創作出來,然而這個職業是IT行業中最低端但卻也是最基礎的部分。為什麽?因為他們只懂得根據那些文檔要求完成一些功能進而來滿足用戶的需求,而這些文檔是經由軟件設計師、軟件分析師以及軟件架構師等來完成,乍一看,大家都會覺得程序員的工作要比那些所謂的設計師和架構師要累的多得多,認為他們不就是簡單寫了一些文檔而已,沒什麽了不起的。然而這種觀點往往是錯誤的,這些看似簡單的文檔可不是那麽容易寫出來的,打個比方,這就好比一個企業公司的高管和普通職員一樣,公司高管每天就只是坐在一起開會,然後給普通職員分配任務,但是最終那些高管的工資卻是最多的。為什麽?那是因為高管有著豐富的經驗,有豐富的專業知識和表達能力,他們知道客戶的需求,能夠發現問題、分析問題,進而將問題分解成許多小任務來交給普通職員去解決。閱讀完架構師王概凱老師的九篇《架構漫談》,結合生活實際讓我首先對軟件架構師有了初步的認識。

  什麽是架構,為什麽會產生架構,作者由人類社會的演化,人類社會中分工的出現來引入問題的答案。把一個整體切分成不同的部分,由不同角色來完成這些分工,並通過建立不同部分相互溝通的機制,使得這些部分能夠有機的結合為一個整體,並完成這個整體所需要的所有活動,這就是架構。為什麽會產生構架,對於人類社會而言,由於人群的生產力提高,人類學會了越來越多的技術,但是不可能一個人都會這些新的技術,所有就產生了分工,一旦產生了分工,就把所有的事情切分成不同人去完成,從而以更高的效率來認識世界以及改造世界。這實際上形成了社會的架構,它是人類發展過程中,由懵懵懂懂的,被動的去認識這個世界,變成主動的去認識,並以更高的效率去改造這個世界的方法。而在現如今生活中而言,架構實際上就是指人們根據自己對世界的認識,為解決某個問題,主動地、有目的地去識別問題,並進行分解、合並,解決這個問題的實踐活動。

  什麽是軟件?什麽是軟件架構?軟件就是現實世界的一個模擬,使用來解決人們日常生活中的問題的。軟件架構是將軟件的工作進行拆分、分解,以更好更快的解決人們問題的。軟件的架構分為部署的架構和代碼的架構。部署的架構就是可以將軟件拆分部署到不同的機器上,仍可以正常運行。代碼的架構就是軟件工作人員的分工,使之可以獨立的完成代碼的某個部分。成為軟件架構師需要我們有足夠的自信,克服時間恐懼和壓力,把完成別人工作當成自己的最大利益。 

  軟件架構師是如何工作的?要清楚地認識一點,架構師要解決的問題都是人的問題,都是別人的問題,不是架構師自己的問題,如果別人能夠把問題提出來,那麽他們自己就能夠解決,這就好比房屋的改裝,設計師的工作往往比其他工人的工作看起來要輕松,但是設計師所考慮到的問題是工人們所想不到的,設計師首先要了解到用戶的需求和現實的情況,然後根據這些基本條件來對房屋進行改造,考慮到美觀、安全、采光、空間利用等問題,將整個問題先拆分成許多小的問題逐一解決,然後再將解決好的問題有機統一起來形成一個整體,他們有的毫無關聯,有的卻是互補、不可缺失

另外設計師師需要解決的是用戶沒有提出來的問題,是用戶意識到但沒有表達出來的問題,這種問題才是整個問題核心的關鍵。設計師只有解決了這樣的問題,做出來的產品才能夠滿足客戶的需要。首先需要找出問題的主體,才能找出主體存在的問題。以上所述的設計師的工作和軟件架構師大體一致。

  到這裏,相信大家就能夠區分程序員和架構師的根本區別,也能看出架構師並不是所有人都能夠勝任,這需要工作和學習中的大量經驗作為基礎,需要能發現用戶提出問題之外的問題,更需要與人溝通的絕對能力。這些技能都是需要我們一點一點積累,不要抱怨程序員的勞累,要在此基礎上累積經驗,為以後的職位做鋪墊。

《架構漫談閱讀心得》