推薦一本書給大家吧,算不上書評,只能是自己的一些感想。
《軟體城堡》—企業結構建模 高等教育出版社 作者: Roger Sessions 定價: 18.00 RMB
英文名: Software Fortresses: Modeling Enterprise Architectures
我自己給它的評級在3星半多少於4星,也就是准4星,我希望下面的評論能說明我的這個評價
Fortress 一個非常生僻的詞語,不過用的非常恰當,我查了金山詞霸比起Chateau,Castte,Castle這些詞Fortress更精準一些,我喜歡Software Fortresses這個概念,也許看完這本書你會相同的感覺,同樣我建議你在看完書之後去Roger的網站去看一些相關的文章。
另外我不想用介紹Roger Sessions來增加更多的篇幅,許多書評人願意用書的作者來影響讀者的選擇,很多時候,我看書,第一眼是看目錄和書的組織圖,然後在考慮它給我帶來的價值,作者往往是最後被注意的,我希望看這本書時你也能這樣。
過去一年我們在談論SOA,到底是什麼是SOA,一雙雙迷惑的眼光,很容易想起3年前我們在談論什麼是.NET的年代,舉辦上百場的交流和講座,不同的角度和方式,但往往聽眾在一個多小時的示範和口水噴洒下來,帶著懷疑的感情告訴自己,這就是.NET嗎?幾乎是一種皇帝的新裝夾雜愛麗絲仙境的情感,也許許多人3-5年之後,才對.NET有了自己的看法,有的甚至放棄了對這個詞意義的追尋,.NET—這是廣告詞吧,夠酷,但這也是有些人對.NET的基本看法。
而人們對於Web Services的感情是非常奇怪的,以致於今天他們重新又懷著有些愧疚的心情以近乎尊敬的心情來看待SOA,我相信他們曾經忽視過Web Services,抑或是同樣厭倦了去瞭解它是什麼。
還有所謂的設計模式、重構、XP、TDD名次滿天飛的今天,有這樣一本書和一種概念我會感到非常溫馨和滿足,因為也許你有一個機會可以對之前你所理解的軟體和軟體架構做一個形象的總結和沉澱,也許這對你迎接所謂的燦爛明天有非常大的好處,這是這本書能帶給你不同視角的地方。
軟體城堡、弔橋、守衛、城牆、特使、條約、同盟等等概念的提出,我認為非常的新穎和實際,實際我們都知道這些技術的概念,但是換成這些戲劇的角色和圖示的說明,更加易懂和引發建設性的觀點,如果今天讓你以一個CTO或架構師的角色給大企業的一群開發人員、設計人員甚至程式員展現你對軟體架構的理解時,你會更有信心,事後你可能會被他們描述成一個富有思考力的軟體架構專家—這是本書技術價值之外的另一個價值。
作者坦誠,他曾受到Pat Helland所謂自治計算的一個模型,軟體封地(software fidfdoms)思想的影響,而我發現作者也重新提了一些現在可能被大家可能忽視但非常重要的概念,比如事務的處理,同步和非同步方式的選擇,Web方式的授權、安全和完整性,這些隱晦不明的要素如何在設計和新的概念中重新考量和設計,依然是公司專屬應用程式架構中很難直觀把握的一部分建築。從公司專屬應用程式架構和技術的架構師角度如何來看,應遵循哪些基本的原則,作者給了不少的建議和現實的觀點。
這也是本書另外一個特色,重新突出了建立公司專屬應用程式系統的概念性模型這樣的主題,同時也能帶著你細緻的一個一個要素的討論,讓你唯一的感覺是,這本書還是太薄了,從廣州到深圳的火車上,你就可以看完它,但我相信如果不是看多幾遍,你幾乎不能完全明白作者的意圖。理解架構比理解設計模式和TDD更宏觀和從容一些,但我相信,如果不是你完全相信這個理論,並親自的體驗,書中的許多概念和準則你將無法把握,甚至不能給你帶來項目或應用架構的協助。
當然書中也有敗筆,比如作者在設計和建模方法受到J2EE平台的一些影響,有關事務和高可靠性方面帶有Microsoft平台的痕迹。書中也有不少篇幅提及.NET vs. J2EE的論斷和觀點,當然作為作者的身份,可能這是他經常被他的客戶問起的一個問題,最終他的意思是告訴客戶,軟體城堡並不是解決和證明.NET 和 J2EE優劣的解決方案。這感覺要看你自身的情況了,如果你什麼都不知道抑或只知道.NET或J2EE,那麼作者的觀點是有益的和他假設的一樣,但如果你已經有了自己的觀點,那麼這些描述你可能就覺得有些贅冗稠長了些。之後我想這些描述可能是必要的,因為至少作為一個架構師的角度來說,這是現實和凸現執行力的方式,技術平台的評估、選用、安全性、互互動、互通性是架構師必須指明方向和作出結論的。
整本書對於你理解SOA和Modeling的架構有非常大的協助,不然許多人將不能從現在的架構中很快切換到模糊不定的SOA架構或概念中,另外按照武學境界的定義,如果你不能打破自己腦袋中舊的觀念和體系架構,那麼也很難接納新的概念而開啟任督二脈,畢竟有時我們看待架構的觀念已固,投身太細節的設計模式和重構已久,自信的一發不可收拾,一時也就很難回頭是岸了。
我比較喜歡最後一章,除了總結、論證和展望,作者有足夠的勇氣回答一些難堪的問題,並真誠的發表自己的意見,比如15.6 節作者說,下面是我對軟體行業目前狀態的十點不滿:
- 軟體行業缺乏針對建立企業系統的概念性模型
- 軟體行業對貫穿企業事務流缺乏一致的看法
- 軟體行業在安全能力方面是一塌糊塗,也缺乏相應的應用程式模型
- 當我們需要互通性標準時,軟體行業正在浪費時間定於可移植性標準
- 軟體行業不區分實現技術(比如對象)、分布式技術(比如組件)和互操作技術(比如城堡)
- 軟體行業沒有區分發生在系統內部的通訊和發生在系統之間的通訊的概念
- 軟體行業沒有一個通用的互操作模型,因此不同的供應商所生產的產品很難結合在一起
- 軟體行業使用與技術香港的術語描述其所做的工作,這就導致黨使用共同的方法時互相難以溝通和理解。
- 軟體行業假定互操作問題將通過一個能夠集大成的單一技術來解決
- 軟體行業通常提供一些不僅沒用而且完全有害的概念或技術
先別說這些問題是對還是錯,仔細看來書上每個問題的描述,你會發現這些都是非常好的問題,問起任何一個敢自稱為著名軟體架構師的人都是對他的一個考驗和刁難。
翻完手中的書,想起以前打帝國時代的情景,什麼時候軟體架構能像一場帝國時代的戰略遊戲一樣形象就好了,抑或軟體架構一直都和戰略遊戲一樣,只是我們一直不能感覺到身臨其境而已。
文章原創首發部落格園,著作權。轉載需註明出處。