微軟的DotNet開發絕對是屬於那種入門容易提高難的技術
而要能夠成為DotNet架構師沒有三年或更長時間的編碼積累基本上是不可能的
特別是在大型軟件項目中
架構師是項目核心成員
承上啟下
因此RUP方法論也認同以架構為核心
體現
+
視圖在整個軟件開發過程中的重要作用
架構人員既要精通技術
又要熟悉業務
而且基本對軟件生命周期各階段的相關技術都需要有相關的積累和知識儲備
而這些不經過多年的磨練是很難達到這個高度的
要成為一個合格的架構師首先必須是一個合格或優秀的編碼人員
對於開發來講編碼始終都是最重要的一項技能
在編碼過程中只要自己善於去思考和分析問題
就可以多學到很多相關的知識和技術
所以我們在開發過程中一定要注意新知識和新技術的學習
前人經驗和成果的學習
編碼過程中應該去思考的一些問題有
在編碼過程中自己是否做單元測試
是否使用相關工具做單元測試
如果沒有的話是什麼原因無法把單元測試做起來?
自己編碼的洩露率情況
編碼洩露的BUG的原因分析
是否有意識的對代碼進行重構
重構過程中是否引入了相關設計模式的思想?
是否對C#語言的一些高級特性進行學習
如反射調用
異步處理等
是否對Remoting和WebService兩種分布式技術做過研究和對比分析?
是否經常研究開源項目和開源代碼
如Duwamish
PetShop
NUnit
Enterprise Library
Nant等
是否對對象持久化機制和O/R Mapping等相關技術做過相關的研究
平時在編碼過程中是否注重公用組件和公用類的復用和抽取
自己在平時工作和學習中是否經常開發些小工具提高工作效率
鞏固學習知識
設計和編碼其實是密切而不可分的
對於嚴格將設計和編碼分開的瀑布模型一般也僅僅在大型項目中應用
而及時編碼和設計分離
也不是將編碼人員不需要思考
編碼活動始終是一項創造性的勞動
如果否定這個觀點那就代表編碼過程完全不需要人員介入而可以完全自動化
因此在這裡談設計主要還是指設計人員的系統化思維能力
設計人員應該比開發人員站高一個層次來分析和思考問題
設計人員最重要的一個技能就是現實
>抽象的轉換
而這個就需要談到方法論的問題了
技術人員需要積累面對對象分析和設計或結構化分析知識的積累
需要有較強的數據庫分析和設計能力
一個設計能否成為很好的架構師關鍵就在這種積累的深度和廣度上面了
因此在設計過程中應該考慮的問題有
你現在分析和設計能力能否勝任大中型的應用系統還是只是獨立功能分析和設計?
設計過程中是否有意識的考慮到組件的復用和相關接口設計准則
是否能夠很自然的將分析模式
設計模式的相關內容應用到自己的設計過程中
是否對XP
RUP
面向對象
結構化等方法論都有過較系統化的學習和思考
是否真正理解系統功能需求和非功能需求對系統設計的不同的指導作用
對自己設計的功能是否會根據後期的變更來反思自己的設計為何不能很好的適應變更?
是否在設計過程中經常自己開發些原型來對自己的設計思路進行驗證?
是否專注技術的同時開始專業業務流程的分析
關注業務建模?
如果我們在設計和開發過程中經常關注這些知識和技能的話
成為一個合格的架構師是早晚的事情
平時能夠勝任工作開發用到的知識和技能是微不足道的
如果自己不是有意識的去學習這些知識的話
那技能是很難得到進一步提高的
我參加過兩次微軟的架構師培訓
在北京的微軟架構峰會上也有機會專門參加了P&P Workshop的學習
培訓老師是微軟總部SmartClient Architecture and Design Guide一書的作者Edward A
Jezieski
讓我感受最深是老外深刻的技術底蘊
對程序開發的執著
對於DotNet架構經常用到的知識和技能儲備有
RUP方法論
+
視圖
用例驅動業務建模
>分析模型
>設計模型
用例模式
>分析模式
>設計模式
常用的分布式技術
對安全
異常
日志
性能等非功能性需求的關注
對應用系統整體業務的關注
相關的一些參考書籍(微軟網站和電驢都可以下載到)
微軟網站提供的參考書籍
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
From:http://tw.wingwit.com/Article/program/net/201311/13597.html