如何循序漸進(jìn)向DotNet架構(gòu)師發(fā)展
微軟的DotNet開發(fā)絕對是屬于那種入門容易提高難的技術(shù)。而要能夠成為DotNet架構(gòu)師沒有三年或更長時(shí)間的編碼積累基本上是不可能的。特別是在大型軟件項(xiàng)目中,架構(gòu)師是項(xiàng)目核心成員,承上啟下,因此RUP方法論也認(rèn)同以架構(gòu)為核心,體現(xiàn)4+1視圖在整個(gè)軟件開發(fā)過程中的重要作用。架構(gòu)人員既要精通技術(shù),又要熟悉業(yè)務(wù),而且基本對軟件生命周期各階段的相關(guān)技術(shù)都需要有相關(guān)的積累和知識儲備,而這些不經(jīng)過多年的磨練是很難達(dá)到這個(gè)高度的。
要成為一個(gè)合格的架構(gòu)師首先必須是一個(gè)合格或優(yōu)秀的編碼人員,對于開發(fā)來講編碼始終都是最重要的一項(xiàng)技能,在編碼過程中只要自己善于去思考和分析問題,就可以多學(xué)到很多相關(guān)的知識和技術(shù)。所以我們在開發(fā)過程中一定要注意新知識和新技術(shù)的學(xué)習(xí),前人經(jīng)驗(yàn)和成果的學(xué)習(xí)。編碼過程中應(yīng)該去思考的一些問題有:
1.在編碼過程中自己是否做單元測試,是否使用相關(guān)工具做單元測試,如果沒有的話是什么原因無法把單元測試做起來?
2.自己編碼的泄露率情況,編碼泄露的BUG的原因分析
3.是否有意識的對代碼進(jìn)行重構(gòu),重構(gòu)過程中是否引入了相關(guān)設(shè)計(jì)模式的思想?
4.是否對C#語言的一些高級特性進(jìn)行學(xué)習(xí),如反射調(diào)用,異步處理等。
5.是否對Remoting和WebService兩種分布式技術(shù)做過研究和對比分析?
6.是否經(jīng)常研究開源項(xiàng)目和開源代碼,如Duwamish,PetShop,NUnit,Enterprise Library,Nant等
7.是否對對象持久化機(jī)制和O/R Mapping等相關(guān)技術(shù)做過相關(guān)的研究
8.平時(shí)在編碼過程中是否注重公用組件和公用類的復(fù)用和抽取
9.自己在平時(shí)工作和學(xué)習(xí)中是否經(jīng)常開發(fā)些小工具提高工作效率,鞏固學(xué)習(xí)知識
設(shè)計(jì)和編碼其實(shí)是密切而不可分的,對于嚴(yán)格將設(shè)計(jì)和編碼分開的瀑布模型一般也僅僅在大型項(xiàng)目中應(yīng)用。而及時(shí)編碼和設(shè)計(jì)分離,也不是將編碼人員不需要思考,編碼活動(dòng)始終是一項(xiàng)創(chuàng)造性的勞動(dòng),如果否定這個(gè)觀點(diǎn)那就代表編碼過程完全不需要人員介入而可以完全自動(dòng)化。因此在這里談設(shè)計(jì)主要還是指設(shè)計(jì)人員的系統(tǒng)化思維能力,設(shè)計(jì)人員應(yīng)該比開發(fā)人員站高一個(gè)層次來分析和思考問題。設(shè)計(jì)人員最重要的一個(gè)技能就是現(xiàn)實(shí)->抽象的轉(zhuǎn)換,而這個(gè)就需要談到方法論的問題了,技術(shù)人員需要積累面對對象分析和設(shè)計(jì)或結(jié)構(gòu)化分析知識的積累,需要有較強(qiáng)的數(shù)據(jù)庫分析和設(shè)計(jì)能力。一個(gè)設(shè)計(jì)能否成為很好的架構(gòu)師關(guān)鍵就在這種積累的深度和廣度上面了。
因此在設(shè)計(jì)過程中應(yīng)該考慮的問題有:
1.你現(xiàn)在分析和設(shè)計(jì)能力能否勝任大中型的應(yīng)用系統(tǒng)還是只是獨(dú)立功能分析和設(shè)計(jì)?
2.設(shè)計(jì)過程中是否有意識的考慮到組件的復(fù)用和相關(guān)接口設(shè)計(jì)準(zhǔn)則。是否能夠很自然的將分析模式,設(shè)計(jì)模式的相關(guān)內(nèi)容應(yīng)用到自己的設(shè)計(jì)過程中。
3.是否對XP,RUP,面向?qū)ο螅Y(jié)構(gòu)化等方法論都有過較系統(tǒng)化的學(xué)習(xí)和思考。
4.是否真正理解系統(tǒng)功能需求和非功能需求對系統(tǒng)設(shè)計(jì)的不同的指導(dǎo)作用。
5.對自己設(shè)計(jì)的功能是否會(huì)根據(jù)后期的變更來反思自己的設(shè)計(jì)為何不能很好的適應(yīng)變更?
6.是否在設(shè)計(jì)過程中經(jīng)常自己開發(fā)些原型來對自己的設(shè)計(jì)思路進(jìn)行驗(yàn)證?
7.是否專注技術(shù)的同時(shí)開始專業(yè)業(yè)務(wù)流程的分析,關(guān)注業(yè)務(wù)建模?
如果我們在設(shè)計(jì)和開發(fā)過程中經(jīng)常關(guān)注這些知識和技能的話,成為一個(gè)合格的架構(gòu)師是早晚的事情。平時(shí)能夠勝任工作開發(fā)用到的知識和技能是微不足道的,如果自己不是有意識的去學(xué)習(xí)這些知識的話,那技能是很難得到進(jìn)一步提高的。我參加過兩次微軟的架構(gòu)師培訓(xùn),在北京的微軟架構(gòu)峰會(huì)上也有機(jī)會(huì)專門參加了P&P Workshop的學(xué)習(xí),培訓(xùn)老師是微軟總部SmartClient Architecture and Design Guide一書的作者Edward A.Jezieski,讓我感受最深是老外深刻的技術(shù)底蘊(yùn),對程序開發(fā)的執(zhí)著。
對于DotNet架構(gòu)經(jīng)常用到的知識和技能儲備有
1.RUP方法論,4+1視圖。用例驅(qū)動(dòng)業(yè)務(wù)建模->分析模型->設(shè)計(jì)模型
2.用例模式->分析模式->設(shè)計(jì)模式
3.常用的分布式技術(shù)
4.對安全,異常,日志,性能等非功能性需求的關(guān)注
5.對應(yīng)用系統(tǒng)整體業(yè)務(wù)的關(guān)注
1.RUP方法論,4+1視圖。用例驅(qū)動(dòng)業(yè)務(wù)建模->分析模型->設(shè)計(jì)模型
2.用例模式->分析模式->設(shè)計(jì)模式
3.常用的分布式技術(shù)
4.對安全,異常,日志,性能等非功能性需求的關(guān)注
5.對應(yīng)用系統(tǒng)整體業(yè)務(wù)的關(guān)注
相關(guān)的一些參考書籍(微軟網(wǎng)站和電驢都可以下載到)
微軟網(wǎng)站提供的參考書籍
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
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
其它架構(gòu)方面的參考書籍
Software Architecture In Practice
Pattern-Oriented Software Architecture
The Art Of Software Architecture
Beyond Software Architecture
Software Architecture In Practice
Pattern-Oriented Software Architecture
The Art Of Software Architecture
Beyond Software Architecture
模式方面的書籍
Analysis Patterns
Design Patterns - Elements of Reusable bbbbbb-Oriented Software
Applying UML and Patterns
Design Patterns Explained
Analysis Patterns
Design Patterns - Elements of Reusable bbbbbb-Oriented Software
Applying UML and Patterns
Design Patterns Explained
本文標(biāo)簽:如何循序漸進(jìn)向DotNet架構(gòu)師發(fā)展
* 由于無法獲得聯(lián)系方式等原因,本網(wǎng)使用的文字及圖片的作品報(bào)酬未能及時(shí)支付,在此深表歉意,請《如何循序漸進(jìn)向DotNet架構(gòu)師發(fā)展》相關(guān)權(quán)利人與機(jī)電之家網(wǎng)取得聯(lián)系。










