標籤:des style blog http io ar os 使用 sp
前面幾篇已經把廢話基本說完了,現在準備進入實戰階段。
第一步是把開發環境準備好,下面是本系列所使用的開發工具及其版本。為了避免你無法順利開啟本系列提供的下載樣本,建議你最好跟我使用的版本相同。
- Visual Studio 2013
- ReSharpe 最新版本,目前版本是8.2.2
ReSharpe是一個VS上面的外掛程式,它不是必須的,但它能夠大幅提升你的編碼速度和代碼品質,特別是採用了像DDD這樣的架構,整個系統包含大量的Interface,你需要在介面和多個實現之間來回跳轉,VS在這方面缺乏支援,可以使用ReSharpe來彌補這個空缺。
一個例外是你的電腦運行速度非常慢,這種情況下建議不要安裝,不然你會完全動不了。
NestIn也是VS上的一個外掛程式,主要用來把兩個檔案嵌套在一起,在某些情況下需要使用。
CodeSmith是一個模板產生器,用來進行自訂代碼產生。
- Sql Server 2012( 2008也行 )
- PowerDesigner 16.5
PowerDesigner是建模首選工具,不僅可以進行資料建模,還能進行流程圖、類圖、順序圖表等UML設計。
XMind是一個思維導圖工具,可以用它進行一些分析工作。
以上包含了所需要的開發工具,請你自行下載安裝,大部分工具都要收費,不過作為中國人,一個優勢是可以採用綠色版本,不用我說大家也知道怎麼做了。在安裝過程中遇到問題,可以提問,我盡量抽時間給你解決。
除了開發工具以外,開發應用程式架構需要一定的抽象和封裝能力,下面我把一些應該具備的基礎知識列舉如下,並推薦一些經典圖書,為避免書有同名,我將作者也一併列出。
畢竟大家在使用物件導向語言,不管你是否使用DDD這樣的物件導向架構,都需要掌握一些基本知識,比如封裝、繼承、多態、介面、抽象類別、抽象方法、虛方法等等。
推薦圖書:
- UML和模式應用(Craig Larman,這本書是我最喜歡的物件導向著作,從這本書我瞭解了對象的特徵和使用要點)
- 物件導向分析與設計 (Grady Booch,作者是UML開山祖師之一,這是他的代表作)
本系列採用DDD架構進行示範,大家需要對一些常用的架構模式有所瞭解。
推薦圖書:
- 公司專屬應用程式架構模式(Martin Fowler,這本是架構模式的奠基之作,現在出來的架構模式名詞,大半是從這本書出來的。Martin Fowler可能是敏捷導師裡面名氣最大的一位)
- 領域驅動設計(Eric Evans,這本書出來以後,就一直是物件導向開發的標杆,是領域模型的標準用法)
- 敏捷式軟體開發 (Agile Software Development)-原則、模式與實戰(Robert C.Martin,這本也是架構模式方面的頂尖之作,特別是描述了五大架構原則SOLID)
- C#公司專屬應用程式開發藝術-CSLA.NET架構開發實戰(Rockford Lhotka,這本是.Net應用程式架構方面能找到的幾乎唯一一本從理論到實戰系統講述的著作)
- 實現領域驅動設計(Vaughn Vernon,這本書新出來不久,內容非常豐富,是對原始DDD的一次升華)
- 領域驅動設計與模式實戰(Jimmy Nilsson,作者算是自己人,也是搞.Net開發的,這非常難得,.Net方面DDD的著作很少,在書中描述了他從以資料庫為中心的設計,向以對象為中心的設計轉變)
- Microsoft.Net企業級應用架構設計(Dino Esposito,這本也是.Netl架構設計的一本好書,特別是他們在附錄提供了一個Demo-NSK,可以參考)
- 領域驅動設計 C# 2008實現(Tim McCarthy,這本是完全以實戰為主,為如何建立DDD層超類型提供了一些代碼參考,另外還對一些設計和開發中棘手的問題提供了一些解決方案)
推薦部落格:
- http://www.cnblogs.com/daxnet/archive/2010/11/02/1867392.html,陳晴陽老兄的DDD系列是我見過寫得最好的,在此強烈推薦。
- http://www.cnblogs.com/happyframework/category/448744.html,這位老兄不知道叫什麼名字,他這個DDD系列也很有學習價值,特別是解決了我之前遇到的刪除彙總中子物件資料庫記錄的問題。另外他還開源了一個應用程式架構,叫幸福架構,很值得參考。
對代碼進行抽象,一般需要建立一些靈活性,瞭解一些常用設計模式是必須的。
推薦圖書:
- Head First設計模式(Eric Freeman,這本淺顯易懂,設計模式入門必看)
- 設計模式(Erich Gamma,這本就是設計模式奠基之作,不過樣本都是C++寫的,相當枯燥難懂,可以作為提高之用)
使用TDD進行開發不是必須的,但如果想獲得更高的代碼品質和健壯性,這個就非常必要,我會在後面的架構實戰中採用TDD方式進行示範。
推薦圖書:
- 測試驅動開發的藝術(Lasse Koskela,這本用來入門)
- 測試驅動開發(Kent Beck,Kent Beck是極限編程創始人,這是他在TDD方面的開山之作)
- .Net單元測試藝術(Roy Osherove,這本是單元測試方面最實用的一本)
- XUnit測試模式-測試碼重構(Gerard Meszaros,這本提供了大量在實際工作中進行單元測試碰到問題時的解決方案)
- 重構-改善既有代碼的設計(Martin Fowler,重構方面的權威著作,協助你清除代碼壞習慣)
- 實現模式(Kent Beck,在本書中,極限編程大師示範了大量可以改善代碼品質的小技巧)
- 代碼整潔之道-Clean Code(Robert C.Martin,這是Bob大叔在重構方面的著作)
- 重構與模式(Joshua Kerievsky,這本書介紹了使用設計模式更正確的方式-通過重構演化出模式,而不是預先進行大量擴充點設計,這樣可以獲得更簡單的系統)
上面列舉了一些經典的設計圖書,供希望在.Net開發中有所提升的朋友參考。當然,並不是說你需要把這些書全部看完才可以開始建立你的應用程式架構,而是給你指出一個努力的方向,很多設計問題在看了大師的著作之後會茅塞頓開。
另外,這些書不是小說,你不能指望看一遍就全部搞懂,很多書需要一遍遍的看。哪怕你感覺好像理解了,但卻用不起來,如果只在看書的時候懂,搞開發的時候連個影子也想不起來,那還有個屁用。經常看,把一些名詞先混個眼熟,然後慢慢在項目上實踐,一些常用的模式還是容易搞懂,有些比較生僻的沒有用上也沒關係,這可能是項目不夠複雜。
.Net應用程式架構交流QQ群: 386092459,歡迎有興趣的朋友加入討論。
謝謝大家的持續關注,我的部落格地址:http://www.cnblogs.com/xiadao521/
應用程式架構實戰十:開發環境準備與學習資料清單