[A社筆記] KATA 跟本是個屁,練不出什麼鬼東西,不服來戰

前情提要

前幾天有個小朋友問我說
「想問問 Tennis KATA 練習的重點是重構嗎
有沒有什麼重構的目標 ?」

反思

這讓我想起一年前寫的文章,[N社筆記] 在公司小規模玩 Coding Dojo
順便記錄一下後續,那個實驗大概在三月隨著參與的人員忙碌而停止了,
然後在後續有再重啟一次,那次是使用 Production Code 進行,
有多一些新的成員,但是也是隨著「忙碌」與「沒時間」而停止,
雖然我心裡比較想直接譙那些不出席又不出聲的人渣一些髒話,
不過我想這就是現實吧。這也引發我後續對 TDD 產鉗的反思

回答

簡答版

Kata 可以幫助你學習到。

  • 需求分析
  • 寫測試案例
  • TDD 與 Unit Test
  • 找到壞味道與重構
  • Design Pattern

詳答版

Kata 就是一個簡單的需求,當需求來的時候
你必需先作需求分析,透過需求分析找到測試案例。
如果你想學習 TDD 你可以試著讓每個測試案例趨動你的代碼生成。
也就是說分析測試案例的時候,你要考慮案例的順序與帶來代碼的改變。

試著遵守 TDD 的 紅-綠-重構 準則,
重構包含「測試代碼」與「產品代碼」,
如果是 OO 語言試著去遵循「SOLID原則」,
試著自已隨著 Kata 的過程流動可以看到代碼的變化。

Design Patten 可以當作目標或指引去重構代碼。
不過以 Design Patten 為目標的話,
有兩種可能:

  1. 在「需求分析」階段覺察適合的 Patten 透過設計案例來趨動
  2. 在已完成的代碼中覺察適合的 Patten 在不破壞測試的情況下重構(也有可能需要加測試案例)

原始回答

原始回答

新的問題

要花多少時間才能培育一個懂「OO、TDD、Refactoring、DP」的工程師 ?
這個性價比符合商業利益嗎 ? 職涯規劃上值得嗎 ?
業界真的有需求嗎 ? 還是只要會剪下貼上就好 ?
真正的大公司是這樣開發的嗎 ? 業界很多公司不這樣作不也活得好好的 ?
目前的趨勢會更加的專業分工,這些準繩依舊適用嗎 ?

我還沒有答案,但我還在路上。

(fin)

Please enable JavaScript to view the Gitalk. :D
Please enable JavaScript to view the LikeCoin. :P
Please enable JavaScript to view the LikeCoin. :P