應用程式邏輯規劃 - 深入了解Tim Corey的方法
[[academy-video-youtube({"vid": "6KY6uv7avas", "start_time": "0", "title": "C# App Start To Finish Lesson 05 - Logic Planning", "creator": "Tim Corey", "length": "17m 14s"})]]
在他的 C# App 從開始到完成的系列中,Tim Corey 解釋了建構應用程式不僅僅是撰寫程式碼。 真正的挑戰在於規劃應用程式的邏輯 — 應用程式的不同部分將如何互動、溝通,並在螢幕和元件之間移動資料。 在邏輯規劃的第五課中,Tim 著重於邏輯規劃,強調這是決定應用程式作為整體如何運作的階段。
他提醒我們,到目前為止,課程已經涵蓋了定義範圍需求、建構整體結構、設計資料後端和繪製前端。 現在,Tim 說,下一步是通過邏輯連接一切。
Tim 澄清說這一課不會深入程式碼。 相反,他希望涵蓋全球想法,宏觀視圖,以及應用程式背後的整體邏輯。 他鼓勵在紙上寫筆記並畫箭頭,以描繪出每個表單和按鈕應該如何行為,這類似於在專業開發環境中映射商業流程。 這種規劃有助於在進入編碼之前使應用程式的邏輯清晰。
為何邏輯規劃很重要
Tim 開始表示,連接表單是應用程式邏輯的主要部分。 一旦表單正確連接,剩下的任務通常較小。 他解釋道,邏輯規劃過程幫助您理解應用程式必須支持的功能,流程和控制。
Tim 說,如果他在紙上做這個,他會寫下每個元件應該做什麼,並在它們之間畫箭頭。 儘管這堂課在螢幕上工作,他計劃走訪每個表單並解釋每個部分背後的邏輯。
建立比賽表格邏輯
Tim 從建立比賽表格開始,這是較簡單的表格之一。 他解釋了每個按鈕背後的邏輯以及它們應該如何協作工作。
建立新隊伍按鈕
Tim 解釋說,建立新隊伍按鈕會打開建立隊伍表格。 在建立隊伍後,新表單將關閉,建立的隊伍資料將返回到建立比賽表格。 隊伍應顯示在隊伍/玩家列表框中,這是通過從建立隊伍表單中調用的方法來完成的。
Tim 也介紹了使用介面的概念,解釋說介面允許表單在不直接瞭解彼此的情況下進行互動。 這是一個經典的例子,說明了業務邏輯和軟體架構如何協同工作以維持元件之間的質量、完整性和乾淨的互動。
新增隊伍按鈕
Tim 解釋,新增隊伍按鈕是簡單的。 它檢查下拉列表中選擇的項目,將該隊伍新增到比賽列表中, 從下拉列表中刪除,然後刷新兩個列表。 此邏輯確保使用者的選擇在 UI 和基礎資料中正確反映。
建立獎品按鈕
Tim 解釋,建立獎品按鈕的行為類似於建立新隊伍按鈕。 它會打開建立獎品表單,等待獎品被建立,然後將該獎品新增到獎品列表框中。 邏輯是相同的,但類和資料型別不同。
刪除選定按鈕
Tim 解釋,刪除按鈕會從列表框中刪除選定的項目。 在隊伍的情況下,邏輯還將刪除的隊伍返回到下拉列表中,確保使用者可以稍後再次新增。 這類實時更新改善了使用者體驗,並有助於跨 UI 維持正確的資料。
建立比賽按鈕
Tim 解釋說這是個大按鈕,因為它觸發最多的邏輯。 當點擊時,它必須驗證所有資訊:
比賽名稱不得為空
入場費不得為負
- 必須至少有兩支隊伍
經過驗證後,Tim 解釋下一個重要步驟:建立賽程。 比賽日程邏輯決定了應有多少隊伍參加比賽以及需要多少輪空。 Tim 提及了一份伴隨文件,在其中他寫下了這個計算公式。 例如,如果比賽有10支隊伍,比賽必須以16支隊伍開始,意味著在第一輪需要6個輪空。
Tim 還提到邏輯需要隨機化第一輪的順序。 一旦所有這些完成,表單即完成,應用程式可以向前。
建立隊伍表格邏輯
Tim 繼續進行到建立隊伍表格,並解釋其按鈕背後的邏輯。
新增成員按鈕
Tim 說這個按鈕會把現有成員從下拉列表新增到隊伍列表框中。 然後將該成員從下拉列表中移除並刷新兩個列表。 Tim 強調這與新增隊伍按鈕的邏輯相似。
建立成員按鈕
Tim 解釋,建立成員按鈕會採用四個輸入欄位,建立一名新隊員,將其新增到列表框,並清除欄位。 這是應用程式邏輯中常見任務的典型範例,其中使用者輸入必須被處理並反映在 UI 中。
建立隊伍按鈕
Tim 說建立隊伍按鈕必須驗證隊伍,然後將建立的隊伍返回給呼叫者。 他指出該表單缺少刪除玩家按鈕,應該增加以匹配其他表單並提供一致的使用者體驗。 Tim 解釋,一致的UI行為對於使用者熟悉和舒適很重要。
建立獎品表格邏輯
Tim 描述了獎品表單為更簡單的。 它有四個文字框和一個按鈕。
當點擊建立獎品按鈕時,它:
驗證獎品資訊
將資料返回呼叫表單
- 關閉表單
Tim 解釋,該表單基本上和建立隊伍一樣,只是組件較少。
比賽控制板邏輯
Tim 解釋比賽控制面板表單雖然簡單但至關重要。
它列出現有的比賽。 載入比賽按鈕會為選擇的比賽打開比賽查看器,建立比賽按鈕會打開建立比賽表格。
Tim 提到當建立比賽時,它應被新增到下拉列表中,以便使用者可以立即載入它。 這一邏輯是應用中資料存取和實時更新的基本範例。
比賽查看器邏輯
Tim 描述了比賽查看器為最複雜的表單,因為它包含最多的邏輯。
比賽名稱
Tim 解釋比賽名稱在表單載入時更新。 表單接收比賽物件並顯示名稱。
回合下拉表
Tim 解釋此下拉表是計算得來的,而非從資料庫載入的。 它查看回合列表並確定有多少存在。如果比賽有四個回合,則下拉必須從回合1顯示到回合4。
僅未比賽的勾選框
Tim 說如果勾選框被勾選(預設),對陣列表框會被篩選,僅展示未比賽的遊戲。 如果不勾選,則所有對陣顯示。
對陣成績部分
Tim 解釋選擇一場對陣時,會更新右側部分包含隊名和成績。 成績按鈕允許使用者更新成績並最終確定對陣結果。
觸發下一回合
Tim 解釋當一回合中最後的未比賽對陣得分確定時,應開始下一回合。 如果是決賽比賽,比賽結束並分配獎品。 Tim 還指出,系統會在參加者被安排比賽以及結果可用時發送電子郵件通知。
成績編輯規則
Tim 問在設置成績之後是否可以更新成績。 他總結說可以,但僅限當前回合仍然活動時。如果在下一回合開始後更改成績,會導致重大問題,因為隊伍可能會與錯誤的對手比賽。
因此,Tim 說成績按鈕需要邏輯,以確保成績只能在當前回合更改。
接下來做什麼?
Tim 確認仍有一些邏輯需要規劃,例如:
資料存取和儲存
處理不同的資料來源
電郵邏輯
- 觸發對陣
他說這些更適合在程式碼內計劃,因此團隊將在開始編碼後解決它們。 這是軟體開發中業務完整性的範例 —— 不是過度規劃,而是在實施時構建和適應。
結論:在編碼之前的規劃
Tim 通過以下陳述結束了他的影片:
資料設計已完成
UI 佈局已繪製
- 每個表單背後的邏輯已計劃
下一步是將其轉換為程式碼。 在下一課中,Tim 將建立類程式庫並開始將資料設計實現到實際應用中。

