如何讀 MSDN Library?

最近好像很多人都在問這個問題,MSDN Library 資料量是數百本書的規模,而且MSDN Library有如微軟技術的經典,成經典者,均難讀通,要從MSDN Library數百萬字中找出自己想要的東西,其實是需要一點技巧的。

MSDN Library 素為微軟技術的核心參考文件,將微軟的作業系統,程式工具,開發平台與伺服器發展等,整合在這一份資料庫之中,早在 Windows 3.1 時代,就已經有數十本書籍的資料量,至今已有數百本的書籍資料,數百萬字以及數以十萬計的範例程式碼量,作為以微軟技術開發人員的堅強後盾。早期,MSDN Library 是以光碟提供,而且每年要約一萬元的訂閱費(光兩片光碟就要一萬元,而且還沒有其他軟體),後來到了 2005 開始,改為免費提供,可由 Microsoft Downloads 下載,共 1.7GB 的大小,裡面內含了非常豐富的資料量,然而,很多人空手入寶山,卻空手而回,或是在寶山中迷路迷很大,花了一堆時間卻仍落得空手而回。

其實,若可善用 MSDN Library 豐富的資源,可以幫開發人員解決很多的問題,不過向來 MSDN Library (尤其是中文) 的用詞遣字多是文言文(看起來和文言文沒兩樣~),或是翻譯品質拙劣,讓看的人總是看得霧煞煞,就連我這種重度使用者,有時也是看得不太懂,因此也練就一些小技巧,這些小技巧和觀念希有助於大家使用此寶山。滿載而歸。

1. 善用關鍵字搜尋

想要在 MSDN Library 中找到想要的資料,關鍵字搜尋是必備工夫之一,不過很多人都只下很少的關鍵字,殊不知越多的關鍵字,越能夠找到想要的資料,例如想要找 AD 驗證的資料,其實只要在 Google 中下:

Active Directory authentication site:msdn.microsoft.com (英文)
Active Directory 驗證 site:msdn.microsoft.com (中文)

就能夠在 MSDN Library 中找到很多文章可看,並且因為資料量豐富,而且也有很多連結到各部件(像類別的說明),所以需要時間來慢慢咀嚼。這時間會因你的技術與概念清晰度而縮短,初學者通常會需要很多時間來看,並且輔以書籍或其他文章,熟練者通常十分鐘左右即可看完(除非要細嚼慢嚥)。

若想要找到如何做,可再加一個 "How To" 關鍵字:

Active Directory authentication "HOW TO" site:msdn.microsoft.com (英文)
Active Directory 驗證 "HOW TO" site:msdn.microsoft.com (中文)

初學者通常會比較需要如何做,而且也無法舉一反三,因此一定要按如何做的步驟來做,並且交互參照其他文件,讓學習更有效率,不過也不能操之過急,需先熟練內功,以待日後舉一反三之效。

2. 實驗再實驗,方可得其真傳

只要是重度使用者都知道,在 MSDN 中羅列的範例程式碼幾乎都是片段碼, 只是展示類別或函式的功能而已,無法窺之全貌,這對初學者而言也是個很大的問題,就算是中度使用者也會容易困惑,若要由範例程式碼取出精華,只有一條路:實驗 (Lab Experiment),實驗也是累積經驗的良方之一,使用範例程式碼,或是模擬範例程式碼來撰寫程式,做個幾次即可收得成效,並且實際操練數次更容易讓觀念進入腦中,較不容易忘,且也更容易舉一反三。

請讀者謹記一件事:想學程式就得寫,程式是拿來寫的,而不是拿來看的。光看程式碼是不可能看得懂的(就算是寫了數以萬計的行數的程式碼的我,也無法只用看程式的方式即得程式碼真傳...),一定要動手寫才行,就像看書作筆記一樣,有寫過才會進到腦筋裡面,日後也才得以使用。

3. 汲取專家經驗

在 MSDN Library 中,有不少是來自於之前的 MSDN Magazine 以及更早之前的知名雜誌,像是 MSJ,VB Magazine,SQL Server Magazine 等等,以及微軟特別為開發平台規劃與發展的範例應用程式 (sample solutions),這些資源大多是取自專家之筆,文章中盡皆揭露許多的專業經驗,以及開發軟體時的經驗談與最佳實務 (best practices),有助於學習正確的軟體開發概念,以及軟體平台的發展方向,範例應用程式也有助於一覽專案應用的全貌,並且也納入部份的產業應用範例(例如 iBuySpy 線上商店,Futch and Stock 股票交易系統,AdventureWorks ERP 範例,Fabrikam 範例,StockTrader 股票交易系統,或是 Island Hopper 報紙刊登管理系統等),讓開發人員了解如何將軟體平台應用於產業中。

MSDN Library 有為數眾多的專家文章,不論你是初學者或是中度使用者,或是想要了解微軟技術如何應用的人,這些資料都相當重要,足以作為評估與學習的參考文獻,也讓開發人員能夠很容易的汲取國外(或國內)專家的經驗,以利日後的修練與應用。

4. 學習組織資訊的能力

要在 MSDN Library 龐大的資源中獲得統整性的資訊,其實是很容易的,不過這取決於讀者的組織能力,能夠順利組織其中資源並為所用的話,MSDN Library 才得以發揮最大的功效。

例如,若想要開發 Active Directory-enabled 的應用程式,一開頭會先找尋如何開發(見善用關鍵字一節),然後收集所涉及的每個物件與類別,包括其衍生的技術與資料(如 active directory schema 與 LDAP 下法),把每個涉及的物件文件都讀過,範例程式都看過,相關的技術都瀏覽一遍後,動手撰寫實驗程式(即 PoC),每一個功能都寫成一支實驗程式,並整理成文件,日後便可重覆使用,同時經過這些階段所學習的東西,將會永久留於記憶中,這些基礎也是未來可實現舉一反三的知識之一。

5. 舉一反三,更勝此力

這是使用 MSDN Library 的最終目的,也是能夠利用它發揮最大能力的時候,經由善用搜尋,汲取經驗,實驗,組織等步驟,對於該技術一定有相當程度的了解,接著只需要累積實戰應用的經驗,以及多以思考其演進與用法,可以舉一反三的機會就很多,自己的概念與知識愈多,舉一反三的能力就愈強,創意便是由此而生。