這是作者利用業餘時間斷斷續續開發一個月完成的 C# 網路版鬥地主遊戲。作為第一個網路程式專案,作者坦誠分享了從面向物件架構逐漸演變為功能導向開發的真實過程,總計 2147 行代碼。
前期:嘗試嚴格遵循 OO 設計,建立 Poker、PokerGroup、Player 等領域模型。
後期:面對網路非同步、權限傳遞狀態機等複雜邏輯,為趕進度轉向「能跑就行」的過程式寫法,大量使用 Thread.Sleep 同步、硬編碼協定字串。
Thread.Sleep 導致延遲不可控,UI 凍結風險高。StartsWith) 效能差且易錯,缺乏序列化標準。

本文配套源碼下載連結 (原文連結已失效,建議參考後續文章中的程式碼片段重構)
「第一個網路專案一定會很爛,但完成它本身就是巨大的成就。建議後續重構時:
1. 引入async/await取代阻塞執行緒
2. 定義 Protobuf/MessagePack 協定取代字串解析
3. 使用有限狀態機 (FSM) 管理遊戲流程
4. 將規則引擎獨立為可測試的純函式庫」