星期五, 11月 25, 2011

書:Working Effectively With Legacy Code

一直對TDD很猶豫... 讀完後,決定好好的寫TDD了...
不想要再為了改個地方,而怕東怕西... 決定用這個可以放輕鬆的開發方法..

  • What is legacy code
    legacy code與non-legacy code的差別 - "test"
    接手的人不敢亂改,但如果有test機制,就能夠一步步修改維護
  • Test Coverings
    將程式佈滿測試,就不會害怕去改變他
  • Legacy Management Streategy
    1. Identify change points 
    2. Find an inflection point 
    3. Cover the inflection point a.
      1. Break external dependencies
        作者舉在testing時,重視測試結果,而常綁死gui的實作,造成testing不易
        作者寫了CustomerView的interface,當測試時,就可在不改變結構下,丟空的實作做測試,有mock的感覺
      2. Break internal dependencies
        在測試時是不必要的地方(如產生暫存等),就繼承該class,直接orverriding掉,不要做任何事即可,有stub的感覺
      3. Write tests 
    4. Make changes 
    5. Refactor the covered code.

待續...

沒有留言: