摘要:podcast和原型開發
【原文位址】 Podcasts and Prototyping
【原文發表日期】 Sunday, November 19, 2006 11:37 PM
Ron Jacobs 最近發佈了他的 ARCast.net 節目裡採訪我的播客(podcast),該節目是個面向架構師的免費podcast系列。在這一期的podcast裡,我們討論了幾個大家也許會發現比較有趣的主題:
- .NET,特別是ASP.NET後面的一些歷史
- 原型開發(prototyping)的重要性以及如何不把它搞砸了
- 培養成功的架構師所需的「軟技能(soft skills)」的重要性
原型開發的討論,我想,對外面的許多專案都有很多的相關性。這是個我真的建議所有的開發人員都應該花更多的時間去做的最佳實踐。因為做得好的話,確實允許你實驗和很快地嘗試很多主意和概念性的東西,可以幫助你在你的專案裡在創新方面有顯著的提高。
原型開發關鍵的東西在於,保證你絕對不把原型程式碼變形轉化成生產程式碼(production code)。別試著對原型程式碼整理(clean up)或提煉(refine)使之成為生產級別的程式碼。這類「整理(clean up)」往往走得不夠遠,其結果是,使得專案的起始基礎很差。把「快捷而品質不高(quick and dirty)」的程式碼導入到程式庫裡就像是把一個壞蘋果扔進一筐好蘋果裡一樣,你很容易會以code rot(程式碼腐爛)在程式庫裡蔓延而告終。
從空白的新專案開始總歸是最好的,然後把原型的概念,而不是原型的程式碼引入到專案裡來。在前面花額外的時間確保新的生產程式碼是從100%的生產品質起步的,別試著通過重用原型裡的程式碼來節省幾天的時間。你會發現,在一個原型開發練習之後,從頭開始編寫「真正的」生產程式碼會比你預期的要快很多,因為那些關鍵想法在你的腦子裡已經是有形有肉了(fleshed out),因此你對實現( implementation)應該如何組織會有一個極其深刻的理解。程式碼品質的標準也顯著地提高了。
我最近在實現一個想法時就遇上了這樣的事情,這個想法是在過去幾個週末的業餘時間裡,我一直在用原型開發來實驗的很多想法中的一個。我有些非常複雜的調度邏輯我一直在編寫,並且隨著我試驗各種功能和方法時,這個邏輯也一直在變。我知道,一旦對其中一些程式設計模型方面的想法試驗完畢之後,我應該能夠將它整理得很乾淨的,但它一直不乾淨,直到昨晚,我騰出了幾個小時來從頭編寫新的實現時,我才看到我能在那個迭代開發出來的原型之上得到多麼顯著的改進。我猜想,大多數人,如果訓練有素,並且確定在使用原型方法完成迭代開發/從中學到東西之後有意識地扔掉原型程式碼的話,都是能看到類似的編碼改進或品質的結果的。
想完整收聽這個podcast的話 ,請訪問Ron的這個podcast連接。
希望本文對你有所幫助,
Scott
附註:我剛看到Paul Glavich 在這裡貼出了另一個採訪我的podcast 。這第二個podcast 節目的內容包括,ASP.NET AJAX (即 Atlas), WPF/e,Windows Workflow/Cardspace,BLINQ 和Script#,以及 Visual Studio 2005 SP1。也一定要去看一下!