初學編程階段,面對新任務往往不知道如何下手,對著任務說明硬嗑,寄希望于靈光一閃是我們很容易犯的錯誤。這時我們可以嘗試運用任務分解,幫助我們把大任務分解成一個個小任務,逐個解決。
計算機程序可以抽象為 輸入>處理>輸出 系統,處理過程即我們的代碼(代碼塊或封裝好的方法)。
計算機處理問題的方式
我們在思考問題時可以使用這種思維方式,想好輸入輸出。從下圖可知,輸入輸出都有name和數據結構。對于函數而言,輸入即參數,輸出即返回值;對代碼塊而言,輸入即傳遞過來的變量,輸出即得到的變量。
任務的輸入輸出
采用上述方式分解問題,需要窮盡輸入輸出。此時我們可以采用5W1H的提問框架分析問題。
5W1H提問框架
5W1H的提問方式用在任務分析中,也即分析:
- 輸入從哪來,輸出到哪去
- 函數的觸發事件、權限
- 代碼里寫死的數據hard code有哪些
- 處理過程:描述 - 函數名;怎樣實現;為什么這樣實現
5W1H分析問題
我們在做Tasking的時候最重要的兩點即:
- 輸入從哪來
- 輸出到哪去
任務分解
在面對更復雜的問題時,可以借助圖形表達,給每一對輸入輸出編號,然后進行分析即可。
復雜問題的分析
做完任務分解,在執行時我們可以給自己估算時間,時間差距過大時分析問題所在,進行調整。
執行時間估算