跳過到頁腳內容
Iron Academy Logo
C# 應用程式
C# 應用程式

其他分類

以正確方式規劃應用:從 Tim Corey 的第 01 課中获得见解

Tim Corey
16m 21s

規劃應用程式不是選擇工具或撰寫程式碼,而是在建構任何東西之前,先清楚了解問題所在。 在"C# App Start to Finish"第一課中,Tim Corey專注於最初的規劃,解釋為何這個階段決定了應用程式的成功與否。

在這一課中,Tim沒有討論語法、架構或進階功能。 相反地,他介紹了如何聰明地規劃應用程式、識別需求、將工作劃分為合理的任務,並設定適當的問題。 本文深入了解Tim Corey的課程,緊密跟隨他的講解,並根據其視頻中的思路與推理進一步擴展。

設定課程的背景與目標

在影片的一開始,Tim Corey介紹了第一課,並說明這一課是關於最初的規劃。 他明確表示,目標是要在開始任何開發之前,界定情境並開始了解應用程式需要做什麼。

Tim解釋了這一課是基礎的。 它為專案後續所有工作奠定了基礎。 與其匆匆進入程式編碼,他希望觀眾能了解如何組織工作、管理複雜性,並通過正確的規劃保持專注。

在規劃之前了解情境

在0:53,Tim介紹了將驅動整個專案的情境。 朋友要求一個錦標賽追蹤器——一個可以管理比賽、確定對陣情況並在單敗淘汰賽中追蹤勝利者的應用程式。

Tim解釋這個情境類似於NCAA瘋狂三月比賽。 系統應自動告知玩家他們的對手是誰,追蹤比賽結果,最終識別出勝利者。

他強調這個描述單獨來看不足以建構應用程式,但足以開始規劃。 這就是許多開發人員犯錯之處——基於簡短描述就以為自己能把握一切。

為何需求在編碼之前

在1:33,Tim解釋規劃任何應用程式的第一個真實步驟是定義需求。 他警告常見的新手錯誤:因為應用概念看似顯而易見而開始編碼。

Tim解釋,儘管應用聽起來很簡單,但在沒有規劃的情況下進入編碼會導致程式錯誤、重做及混亂。 他故意在幾課中延遲編碼,因為堅實的基礎使開發更輕鬆、效率更高。

這種方法鏡像了良好的專案管理工作——在執行之前明確定義工作,讓任務可管理且有組織。

將應用劃分為初步任務和責任

在2:06,Tim開始列出已知的事項。 他解釋系統必須:

  • 追蹤進行的比賽

  • 追蹤每場比賽的勝者

  • 決定誰晉級下一輪

他使用四個玩家的例子來解釋如何讓勝者前進。 這有助於澄清應用如何內部管理其任務和邏輯。

Tim接著補充了更多已知需求:

  • 支援多位競爭者

  • 建立錦標賽計畫

  • 排定比賽

  • 在輸掉比賽後淘汰玩家

  • 識別最終勝利者

這些要點構成應用的基本任務管理。 Tim解釋即便列表很短,寫下來有助於澄清系統的責任。

為何發問是核心規劃技能

在3:32,Tim解釋每個專案都有隱藏需求。 利益相關者不是故意刁難——他們只是沒有用技術術語思考。

Tim解釋規劃的一部分是發問以發現:

  • 什麼最重要

  • 什麼並不重要

  • 必須避免哪些假設

這是規劃不再關於程式碼而是任務組織、清晰度及溝通的地方。

處理玩家數量和錦標賽規模

在4:15,Tim詢問錦標賽應該處理多少玩家。 他解釋這影響整個系統的結構。

他討論了固定與可變玩家數量,並解釋為何不是2的冪次方的數字會造成困擾。 這類似於人工規劃不足會破壞排程及工作流程。

在4:51,Tim討論如何應對玩家不夠的情況。 他介紹了輪空的想法,並解釋系統必須支持此功能或明確阻止它。

安排比賽及排程工作

在6:13,Tim討論對陣是否應隨機或有序。 他解釋這項決定影響應用如何在內部創建和安排任務。

接著他進入比賽安排,解釋了兩種可能的方法:

  • 玩家想何時比賽就何時

  • 比賽安排在特定時間

Tim解釋這項決定影響系統如何管理時間、進度及流程——類似於規劃應用必須如何處理每天的行程和時間分配。

控制進度與比賽流程

在7:26,Tim詢問是否允許後期比賽可以在早期回合結束前進行。 他解釋允許這樣做會帶來靈活性但也帶來複雜性。

這個討論突顯出規則如何影響系統行為。 Tim強調這些規則必須在事先決定,才能正確管理任務並防止無效行動。

儲存結果和任務細節

在8:22,Tim詢問系統是否應該只儲存勝者,或也要儲存分數。 他解釋儲存更多細節增加了價值,但也提高了複雜性。

這反映了更廣泛的規劃原則:儘早決定系統需要追蹤多少資訊,避免不必要地使其負擔過重。

避免對介面的假設

在8:54,Tim警告另一個新手錯誤:假設前端類型。

他解釋說,如果不問:

  • 是桌面應用嗎?

  • 是網站嗎?

  • 是行動應用嗎?

開發者將被迫猜測。 Tim強調猜測導致重做。 規劃可以避免這種情況。

資料儲存、金錢與報告

在9:37,Tim介紹了資料儲存。 他解釋說,詢問資料儲存位置能引發與利益相關者的重要對話。

之後,他討論了:

  • 參賽費用

  • 獎品

  • 支出

  • 報告結果

這些功能可能不會立即需要,但Tim解釋為它們進行規劃有助於塑造專案的長期方向。

存取層級、通知與團隊

在12:11,Tim討論誰能輸入結果以及是否有不同的存取層級。 這關乎控制誰能執行哪些任務。

在12:51,他詢問系統是否應通知使用者即將到來的比賽,並解釋這個問題常揭示未來的功能想法。

在13:42,Tim詢問競爭者是個人還是團隊。 他解釋這影響系統中參與者的表示方式。

Tim的最終規劃建議

在15:20,Tim以重要提醒結束:您不需要追求完美。 然而,您應在一開始收集盡可能多的資訊。

他解釋好的規劃能幫助開發者保持有序、管理複雜性,並有自信地向前推進。 目的是獲得明確性——而非完美。

Tim最後預告了第二課,其中這些問題的答案將引導應用程式的整體方向。

結語

第一課中,Tim Corey展示了規劃應用程式是關於理解任務、結構及流程在撰寫程式碼之前。 通過定義需求並問出慎重的問題,開發者為高效開發、減少錯誤及較好的結果做準備。 這一課程建立了一種適用於所有成功應用的思維方式:先規劃,再建構。

Hero Worlddot related to 以正確方式規劃應用:從 Tim Corey 的第 01 課中获得见解
Hero Affiliate related to 以正確方式規劃應用:從 Tim Corey 的第 01 課中获得见解

通過分享您所愛的東西賺得更多

您是否在為使用.NET、C#、Java、Python或Node.js的開發者創建內容?將您的專業知識轉化為額外收入!

鋼鐵支援團隊

我們每週 5 天,每天 24 小時在線上。
聊天
電子郵件
打電話給我