less than 1 minute read

Tags: ,

Whay? Why? When? How?

  1. 提高可理解性
  2. 降低修改成本
  • 在既有的設計中改善它!
  • 每一次重構都是非常非常小範圍,重構不可以造成 code 無法運作的狀態!

Two Hats of Programming

Refactoring V.S. Adding Function You can only wear one hat at a time!!!


  1. 改善軟體設計
  2. 讓軟體更容易了解
  3. 幫忙找出 bug
  4. 提升 coding 速度


  • 預備性重構 Preparatory Refactoring

  • 理解性重構

  • 打掃性重構

For each desired change, make the chnges easy, then make the easy change.


  • 減緩新功能的完整速度
  • code ownership
    • rename function
  • 分支
  • 測試
  • 老舊的 code

YAGNI(You aten’t going to need it)

a programmer should not add functionality until deemed necessary