IRONSOFTWAREHOME

C# 應用程式概覽規劃:學習大局觀與 Tim Corey

C# App Start To Finish Lesson 02 - Overview Planning

Tim Corey

31m 35s

當開發者建立應用程式時,最昂貴的錯誤往往發生在還未撰寫任何程式碼之前。 在"C# 從開始到結束:比賽追蹤器"的第02課中,Tim Corey專注於應用程式總覽規劃—理解應用要做什麼,誰會使用它,如何運作,以及必須在什麼界限內運作。 這一課尚未涉及撰寫程式碼。 相反的,Tim介紹了專業開發者在開發開始前如何退一步設計應用的結構、功能和策略。

在這篇文章中,我們將通過仔細跟隨Tim Corey的影片深入了解應用的總覽規劃。 Tim解釋了如何將來自實際人物(利益相關者)的答案轉化為應用規則、結構和關鍵開發決策。 這個總覽成為未來課程中一致構建同樣應用的基礎。

總覽規劃介紹

在影片開始時,Tim Corey介紹了第02課並解釋該課程聚焦在總覽規劃,也就是應用的大圖景。 Tim解釋這一步驟是在深入細節之前奠定應用的基礎。 他強調雖然這一課程可能比其他課程感覺更簡單,但它在建立可管理、可擴展和可維護的應用中扮演了關鍵角色。

Tim解釋總覽規劃不是關於功能或撰寫程式碼。 而是要了解應用將如何整體運作,使用者將如何與其互動,以及開發者應如何著手構建。

復習利益相關者問題

Tim解釋在繼續之前,他必須重溫上一課中提出的15個問題。 這些問題旨在從利益相關者—要求應用的人—收集更多資訊。Tim模擬真實世界情景,開發者向利益相關者回溯,提問以澄清問題,並收集更詳細的答案。

他指出這一過程反映了真實的商業環境。 開發者常常需要問多個問題並且細化需求,因為使用者不總是知道如何用技術術語描述他們的需求。

可變的玩家與比賽規模

Tim開始回顧答案並解釋應用必須支持可變數量的玩家。 比賽追蹤器不應限制於固定數量。 無論是兩名還是更多名玩家,應用都必須能夠處理。

這一要求直接影響應用的功能、資料結構和邏輯。 Tim解釋開發者不能硬編碼關於玩家數量的假設。 相反的,應用必須能根據參與者的數量動態管理使用者和遊戲。

處理不完美比賽中的輪空

Tim解釋比賽並不總是擁有理想的玩家數量。 當總數不能均分時,應用必須分配輪空。 在這一點,Tim強調一個重要規則:輪空必須隨機分配。

這引入了應用不斷需要處理的技術要求之一——隨機化。 應用必須公正地管理使用者,隨機選擇誰將晉級而不需比賽。 這一要求形成了關於工具、邏輯以及應用內事件後續決定。

玩家的隨機排序

Tim繼續解釋誰對誰比賽的順序也應隨機化。 應用不應依賴使用者被輸入的順序。 當所有玩家新增完成後,應用隨機化名單。

這確保公平並避免偏見。 Tim明確指出隨機化是一條規則,而非可選功能。 它成為應用的核心規則之一,必須在開發過程中被尊重。

靈活的比賽排程

Tim解釋比賽並不是由系統來排程。 玩家可以隨時進行比賽。 然而,應用仍必須執行規則。 在3:04,Tim澄清必須完成每一回合後才能顯示下一回合。

這一要求影響應用如何跟踪比賽、管理資料和觸發事件。 應用必須知道一輪何時結束並且防止使用者過早存取後面的輪次。

得分與資料靈活性

Tim解釋系統應儲存簡單的數值得分。 這使得應用足夠靈活以支持不同型別的比賽。 無論是跳棋、籃球還是其他比賽,都可以用同一應用來管理得分。

這一決策影響資料如何被收集、儲存和顯示。 通過保持得分的簡單性,開發者避免將應用鎖定在某一特定型別的比賽。

以未來為考量選擇使用者介面

Tim解釋應用最初將是一個使用Windows Forms的桌面應用。 然而,他強調利益相關者可能希望該應用未來演變為網路或移動平台。

因此,Tim解釋開發者必須將使用者介面與業務邏輯分開。 在4:41,他解釋核心功能應該放入類別庫中,以便未來能夠整合不同的使用者介面而不必重寫應用。

資料儲存與整合策略

Tim解釋資料理想情況下應儲存在Microsoft SQL Server中,但應用必須也支持文字文件後備。 這確保應用在某些工具或服務不可用時仍能運作。

這一決策影響開發者如何撰寫資料存取程式碼。 Tim解釋整合必須靈活,使得同一應用可以從不同資源儲存和檢索資料而不破壞功能。

進場費、獎品與現實曖昧性

Tim解釋利益相關者通常提供含糊的答案。 最初,對於應用是否處理進場費和獎品的答案僅僅是"是"。Tim解釋開發者必須深入探究理解這意味著什麼。

然後他概述了澄清的需求:比賽可以收取入場費、獎品可頒發給多個位置,以及確保支付不超過收入。 他還解釋了基於百分比的支付和募款場景。

該部分展示了應用概覽規劃如何幫助開發者提前預測真實商業規則,而不使應用過於複雜化。

報告與顯示結果

Tim解釋報告應該簡單。 應用需要顯示回合結果和最終結果,包含誰贏了及贏得多少。 報告可以在表單中顯示或通過電子郵件發送。

這避免了構建複雜報告系統,同時仍滿足使用者期望。 重點仍在功能而非不必要的功能上。

使用者存取與簡單性

Tim解釋應用的任何使用者都可以輸入比賽結果。 應用程式內部沒有不同的存取級別。 這通過避免賬戶、密碼和安全層來簡化開發。

他解釋實際上應用可能駐留在管理員的裝置上,而其他使用者僅通過電子郵件互動。

電子郵件通知與自動化

Tim強調電子郵件功能至關重要。 應用必須自動通知使用者即將到來的比賽和回合結果。 這需要開發者在設計過程中及早了解電子郵件整合和自動化。

Tim注意到這一要求多次出現,表明其重要性。

支持團隊和群組使用者

Tim解釋應用必須支持團隊,而不僅是個人。 所有團隊成員都被平等對待並接收相同的電子郵件。 團隊必須也有名稱。

這影響使用者如何分組,資料如何結構化以及事件如何觸發通知。

定義大圖設計

Tim以畫畫的比喻來介紹大圖設計的概念。 他解釋這一階段定義邊界而非細節。 在18:48,他概述結構:一個Windows Forms應用、一個類庫,SQL或文字文件資料儲存,一次一個活動使用者。

這些界限防止開發者後續進入不必要的決策。

識別開發者的關鍵概念

Tim解釋開發者應識別可能需要研究的關鍵概念。 他列出了電子郵件、SQL、自定義事件、錯誤處理、介面和隨機排序。

他解釋如何可定制的事件可以用來檢測回合完成並觸發功能,例如電子郵件。

無破壞需求的額外想法

Tim提出發短信作為未來可能的增強功能。 他解釋額外功能只在它們不改變核心需求或推遲交付的情況下接受。

這強調在總覽規劃中制定的規則的重要性。

總結與下一步

Tim通過總結過程來結束他的影片:利害關係者的問題導致需求,而需求導致總覽設計,總覽設計揭示關鍵概念。他解釋下一課將聚焦於資料設計,繪製出資訊的結構。

該課程顯示謹慎的總覽規劃如何幫助開發者建立結構化,靈活且可維護的應用程式—即便在撰寫一行程式碼之前。

Earn More by Sharing What You Love

Do you create content for developers working with .NET, C#, Java, Python, or Node.js? Turn your expertise into extra income!

Let's Stay in Touch!

Join our newsletter, you’ll get exclusive access on article updates. We value your privacy

Key in blue circle

立即免費取得 30 天試用金鑰

Your trial license will be sent to your email address

無任何限制。100% 解鎖。無需信用卡。

bullet_checked無需信用卡或建立帳號無任何限制。100% 解鎖。無需信用卡。
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
獲取您的無義務諮詢
填寫以下表格或發送電子郵件至sales@ironsoftware.com
您的詳細資訊將始終保密。
被全球數百萬工程師信任
Iron Software的客戶標誌
立即獲取您的30天試用金鑰
無需信用卡或帳戶建立