MSDN Magazine > 首頁 > 所有期刊 > 2008 > March >  { End Bracket }: 什麼是 ALT .NET?
{ End Bracket }
什麼是 ALT .NET?
Jeremy D. Miller


去年 David Laribee 杜撰了「ALT .NET」一詞,用於說明在 Microsoft® .NET Framework 社群中,一群思想近似之社群人員的聯合,他們對於 Microsoft 的工具、指引和 .NET 文化感到失望,認為重要的核心價值已被遺忘或拋棄。在 2007 年 10 月,數百位人員在美國德州奧斯丁集合,首次舉辦了 ALT .NET 的 Open Spaces 活動,使原來僅為部落格新詞的「ALT .NET」真正落實為實際的社群。
到底什麼是 ALT .NET?這又和我們已經知道且熱愛的 .NET 有何不同?我們多數認為缺乏的價值觀又有哪些?ALT .NET 社群所擁護的替代工具、技巧和做法又有哪些?首先,讓我們來看看 ALT .NET 開發人員的基本宗旨:
  1. 您是彈性運用可行技巧的開發人員,且會不斷追求更優異的創新方法。ALT .NET 活動的其中一項主軸,就是要縮小系統需求、軟體測試以及程式碼撰寫之間的距離。軟體開發流程中仍然有許多可以精簡化的地方。
  2. 您會往外尋求並採納各個社群的最佳做法,包括:Open Source、Agile、Java 和 Ruby。Microsoft 或 .NET 社群絕對無法完全控制優良軟體開發技術。舉例而言,Agile 流程和 Design Patterns 都是由 Smalltalk 啟蒙的。同樣地,Inversion of Control 的工具和技巧源自於 Java。此外,兩項 Ruby on Rails 基礎原則 -- Don't Repeat Yourself 以及 Convention over Configuration -- 就可以適用於 .NET。
  3. 您不滿足於現狀。一切都可以更華麗、不斷蛻變並持續提升品質。我們隨時都在實驗新的技巧,目標是要盡可能使程式碼的設計和測試與商務需求緊密結合。舉例而言,行為導向開發 (Behavior Driven Development,BDD) 就是精鍊與延伸測試導向開發 (Test Driven Development,TDD) 的方法,其中以比傳統 xUnit 測試更易讀的方式定義了程式碼的預期行為。以語言導向的程式設計則有提升抽象層至網域邏輯的潛力。
  4. 您知道縱使工具很好用,但還是有其限制。重點應該是原則和知識。最佳的工具,是會嵌入知識並推廣原則的工具 (例如 ReSharper)。此外,您認為解決方案最重要的特質,是可維護性和持續性。程式碼的可維護性來自於優良的設計。優良的設計則來自設計知識的巧妙運用。.NET 社群以往過於重視 API 和架構細節的學習,而忽略了設計和撰寫程式碼的基本功夫。
ALT .NET 運動之所以會崛起,部分原因是由 2007 年 3 月份所展示的新 Entity Framework Beta 版所導致。除了我以外,還有許多人員都對於 Entity Framework 的某些項目感到失望,特別是對於缺乏「堅持忽略性 (Persistence Ignorance)」以及與資料庫緊密結合的問題。當時,整個 Entity Framework 似乎不適用於 TDD、網域導向設計 (Domain Driven Design) 或持續性設計 (Continuous Design) -- 而這些都是可維護性開發方法的重要原則。
另一方面,適用於 ASP.NET 開發的新 Model View Controller (MVC) Framework 很令人振奮,因為其中明確支援並採用了我認為對於成功之軟體開發非常關鍵的特質。MVC Framework 在整個架構的設計上,明確地提供可維護性和可測試性,且強調問題與測試性的隔離。
我們可以成天抱怨開發技術的缺陷或對於整體環境冷淡。但是,與其哀嘆程式設計師的素質不良或優秀的開發人員難尋,或許我們應該先退一步並承認一個更關鍵的問題:我們沒有好好栽培優秀的開發人員。
許多開發人員都會很樂意運用 Object/Relational Mapping 以及 TDD,問題是他們需要有人指引。相對的,已經在運用這些技巧的人員也會希望有與其他使用者互動的機會,以互相交流意見和經驗。我對於 ALT .NET 運動的主要希望,是能夠創造一個社群來協助這兩組人員,讓他們都成為更優秀的開發人員。為了實現這樣的目標,我們已經成立了 Altnetpedia 網站 (altnetpedia.com),其中有一系列的資源清單,可以讓讀者了解如何在 .NET 中運用這些技巧。另外我們也成立了一個 altnetconf 留言版 (tech.groups.yahoo.com/group/altdotnet),這已經成為有經驗的 .NET 使用者研討開發技巧的熱門平台。歡迎蒞臨!


Jeremy D. Miller 任職於德州奧斯丁的 Bayern Software 公司,擔任開發經理。他的部落格網址為 codebetter.com/blogs/jeremy.miller

Page view tracker