如何按部就班向.NET架構師發展

    微軟的DotNet開發絕對是屬於那種入門容易提升難的技術。而要可以成爲DotNet架構師沒有三年或更長時間的編碼積累基本上是不可能的。特別是在大型軟件項目中,架構師是項目核心成員,承上啓下,所以RUP方法論也認同以架構爲核心,體現4+1視圖在整個軟件開發過程當中的重要做用。架構人員既要精通技術,又要熟悉業務,並且基本對軟件生命週期各階段的相關技術都須要有相關的積累和知識儲備,而這些不通過多年的磨練是很難達到這個高度的。  要成爲一個合格的架構師首先必須是一個合格或優秀的編碼人員,對於開發來說編碼始終都是最重要的一項技能,在編碼過程當中只要本身善於去思考和分析問題,就能夠多學到不少相關的知識和技術。因此咱們在開發過程當中必定要注意新知識和新技術的學習,前人經驗和成果的學習。編碼過程當中應該去思考的一些問題有: 
    1.在編碼過程當中本身是否作單元測試,是否使用相關工具作單元測試,若是沒有的話是什麼緣由沒法把單元測試作起來? 數據庫

    2.本身編碼的泄露率狀況,編碼泄露的BUG的緣由分析 設計模式

    3.是否有意識的對代碼進行重構,重構過程當中是否引入了相關設計模式的思想? 安全

    4.是否對C#語言的一些高級特性進行學習,如反射調用,異步處理等。 架構

    5.是否對Remoting和WebService兩種分佈式技術作過研究和對比分析? app

    6.是否常常研究開源項目和開源代碼,如Duwamish,PetShop,NUnit,Enterprise Library,Nant等 異步

    7.是否對對象持久化機制和O/R Mapping等相關技術作過相關的研究 分佈式

    8.平時在編碼過程當中是否注重公用組件和公用類的複用和抽取 ide

    9.本身在平時工做和學習中是否常常開發些小工具提升工做效率,鞏固學習知識  設計和編碼實際上是密切而不可分的,對於嚴格將設計和編碼分開的瀑布模型通常也僅僅在大型項目中應用。而及時編碼和設計分離,也不是將編碼人員不須要思考,編碼活動始終是一項創造性的勞動,若是否認這個觀點那就表明編碼過程徹底不須要人員介入而能夠徹底自動化。所以在這裏談設計主要仍是指設計人員的系統化思惟能力,設計人員應該比開發人員站高一個層次來分析和思考問題。設計人員最重要的一個技能就是現實->抽象的轉換,而這個就須要談到方法論的問題了,技術人員須要積累面對對象分析和設計或結構化分析知識的積累,須要有較強的數據庫分析和設計能力。一個設計可否成爲很好的架構師關鍵就在這種積累的深度和廣度上面了。 
    所以在設計過程當中應該考慮的問題有: 
    1.你如今分析和設計能力可否勝任大中型的應用系統仍是隻是獨立功能分析和設計? 工具

    2.設計過程當中是否有意識的考慮到組件的複用和相關接口設計準則。是否可以很天然的將分析模式,設計模式的相關內容應用到本身的設計過程當中。 性能

    3.是否對XP,RUP,面向對象,結構化等方法論都有過較系統化的學習和思考。 

    4.是否真正理解系統功能需求和非功能需求對系統設計的不一樣的指導做用。 

    5.對本身設計的功能是否會根據後期的變動來反思本身的設計爲什麼不能很好的適應變動? 

    6.是否在設計過程當中常常本身開發些原型來對本身的設計思路進行驗證? 

    7.是否專一技術的同時開始專業業務流程的分析,關注業務建模?  

    若是咱們在設計和開發過程當中常常關注這些知識和技能的話,成爲一個合格的架構師是遲早的事情。平時可以勝任工做開發用到的知識和技能是微不足道的,若是本身不是有意識的去學習這些知識的話,那技能是很可貴到進一步提升的。我參加過兩次微軟的架構師培訓,在北京的微軟架構峯會上也有機會專門參加了P&P Workshop的學習,培訓老師是微軟總部SmartClient Architecture and Design Guide一書的做者Edward A.Jezieski,讓我感覺最深是老外深入的技術底蘊,對程序開發的執著。 
對於DotNet架構常常用到的知識和技能儲備有 
1.RUP方法論,4+1視圖。用例驅動業務建模->分析模型->設計模型 

2.用例模式->分析模式->設計模式 

3.經常使用的分佈式技術 

4.對安全,異常,日誌,性能等非功能性需求的關注 

5.對應用系統總體業務的關注 


相關的一些參考書籍(微軟網站和電驢均可如下載到) 微軟網站提供的參考書籍 
Enterprise Solution Patterns Using Microsoft .NET 

.NET Data AccessArchitecture Guide 

Application Architecture for .NET:Designing Applications and Services 

Caching Architecture Guide for .NET Framework Applications 

Designing Application-Managed Authorization 

Smart Client Architecture and Design Guide 

其它架構方面的參考書籍 
Software Architecture In Practice 

Pattern-Oriented Software Architecture 

The Art Of Software Architecture Beyond Software Architecture 

模式方面的書籍 
Analysis Patterns 

Design Patterns - Elements of Reusable Object-Oriented Software 

Applying UML and Patterns 

Design Patterns Explained 

相關文章
相關標籤/搜索