天天看點

Tasking任務分解學習總結Tasking-任務分解程式設計的精進之法

Tasking-任務分解

  • 輸入
    • Where:從哪來?
    • When:觸發事件
    • Who:權限
  • 處理過程
    • Where:hard code的資料有哪些?
    • What:過程描述
    • How:怎麼實作
    • Why:設計
  • 輸出
    • Where:到哪去?

程式設計的精進之法

  • 任務清單法

    任務清單要達到完全窮盡,各自獨立

  • PDCA

    PDCA是Plan-Do-Check-Action四個詞的組合。這是這是著名的戴明環。講究從計劃開始,經過實踐,再反思,産生的改進行動再納入下一輪計劃的持續改進過程。

  • 程式設計的精進之法

    任務清單法+PDCA式工作法形成的組合方法,是一個通過逐漸提升個人能力以達到高效工作的方法。

    我們需要在盡可能早的時候,讓盡可能多的有用的動作變成自動的和習慣的…一段痛苦的艱難時期之後就是自由的時光。 ----美國心理學之父威廉詹姆士

像機器一樣思考

  • 像機器一樣思考(一)------宏觀的基礎
    • 能像機器一樣思考的人适合做程式員。
    • 所有的問題都從輸入和輸出的角度去思考,就是計算機這台機器的思考方式。
  • 像機器一樣思考(二)------資料的細節
    限制是你的朋友。 ----Rails之父DHH
    • 類型

      程式設計語言分為強類型(比如Java,C#,Scala)和弱類型(比如JavaScript,Ruby,Python)兩種。

    • 結構

      通過結構化的方式來自定義類型

      let zhangsan = {
        name: "張三",
        age: 38,
        children: [{
          name: "李四",
          age: 10
        },{
          name: "王五",
          age: 5
        }]
      }
                 
  • 像機器一樣思考(三)------窮盡就是力量
    • 各自獨立

      所謂各自獨立,說的就是在我們劃分任務的過程中,每一個任務都對應一個代碼塊或一個函數,這些代碼塊和函數,是互相不包含的

    • 完全窮盡

      所謂的完全窮盡,說的是我們需要窮盡這個代碼塊或函數裡所有的輸入和輸出。不能遺漏任何一個輸入,任何一個輸出。

    • 輸入總共有下面幾大類:
      1. 參數
      2. 讀取全局變量
      3. 調用全局函數後得到的傳回值
      4. 讀取局部作用域變量(比如this)
      5. 調用局部函數後得到的傳回值
      6. hard code的資料
    • 輸出總共有下面幾大類:
      1. 傳回值
      2. 修改全局變量
      3. 調用全局函數時傳的參數
      4. 修改局部作用域變量(比如this)
      5. 調用局部函數時傳的參數
  • 像機器一樣思考(四)------一圖抵千言
    • 畫圖的規則
      1. 本圖基本元素由方塊和帶箭頭的線組成
      2. 一個方塊隻代表一個函數或一個代碼塊,通常是函數,方塊中可以寫字,可以表達函數是屬于哪個類或哪個執行個體等資訊。
      3. 指向方塊的線代表該函數的輸入,背離方塊的線代表函數的輸出。
      4. 資料流動的時間軸遵守先從左到右,再從上到下的順序。
      5. 每一對輸入輸出(輸入在上,輸出在下)加一個方塊,表達了一次函數調用。
    • 當按照子產品的角度去拆分task不work的時候,我們就要按照測試的角度來切分task了,這個思維的切換是TDD的核心。我們需要按照測試的視角來切分任務,從一個函數的實作視角轉為一個函數的調用視角。