 現況 目的 重構時機與目標 重構循環 請你跟我這樣做 結論
綠燈填入        重構     紅燈
綠燈填入        重構     紅燈
綠燈填入        重構     紅燈
綠燈填入        重構     紅燈
綠燈填入        重構     紅燈
綠燈填入        重構     紅燈
綠燈填入        重構     紅燈
綠燈填入        重構     紅燈     紅燈
綠燈填入        重構                    綠燈     紅燈               填入        重構     紅燈                    紅燈
綠燈填入        重構     紅燈
   切換為說話模式    › 不同物流商,使用對應的計價方法    › 根據條件,使用對應的演算法
綠燈填入        重構     紅燈
 頁面只保留頁面職責 把初始化物流商,交給工廠決定
紅燈
 把不需要的註解清除 把需要的API Document補上
綠燈填入        重構     紅燈
 只要綠燈,隨時可以發佈 隨時可依據需求,繼續重構 一次只做一件事
綠燈             綠燈寫程             填入        重構          重構 式     紅燈             紅燈
ASP.NET-refactoring to patterns
ASP.NET-refactoring to patterns
ASP.NET-refactoring to patterns
ASP.NET-refactoring to patterns
ASP.NET-refactoring to patterns
ASP.NET-refactoring to patterns
ASP.NET-refactoring to patterns
ASP.NET-refactoring to patterns
ASP.NET-refactoring to patterns
ASP.NET-refactoring to patterns
ASP.NET-refactoring to patterns
ASP.NET-refactoring to patterns
ASP.NET-refactoring to patterns
ASP.NET-refactoring to patterns
ASP.NET-refactoring to patterns
ASP.NET-refactoring to patterns
ASP.NET-refactoring to patterns
ASP.NET-refactoring to patterns
ASP.NET-refactoring to patterns
Upcoming SlideShare
Loading in …5
×

ASP.NET-refactoring to patterns

428 views
369 views

Published on

介紹 refactoring 的步驟、循環、方式,以及相關工具的使用。

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
428
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • 重構前後:https://gist.github.com/2041769
  • 從一開始用web自動測試,然後註解、重構擷取方法、抽象、類別職責分離、單元測試、行為抽象介面、到patterns
  • 『每個女人都喜歡乾淨的男人,但是又喜歡把男人弄髒』同樣地,『每個dev都喜歡乾淨的code,但是又喜歡把code弄髒』,我們面對的現況就是不斷被弄髒的CODE
  • 我們的目的,就是希望可以讓雜亂無章的CODE,乾淨整齊的放在他所屬的地方
  • 不代表把重構跟程式碼修改,兩個動作混在一起,一次只做一件事。這邊指的是在需求修改程式時,可以在交付前順手重構。
  • 3D螺旋式的循環。上層為整合測試,逐漸Drill down單元測試。
  • 現況的程式碼,雖然垃圾,但他可以正確的執行。
  • 小說需要角色來說話,系統需要程式碼說話
  • 最終目標,是讓程式碼自己會說話
  • 程式碼的現況,跟一堆垃圾沒什麼兩樣。但是,有了人話的描述之後,我們就可以對垃圾進行分類
  • 只要有動到程式,就記得要跑測試,代表重構完的執行結果仍是正確的v0=>v1
  • 現在所屬的物件是什麼,要用該物件的角度去看世界
  • v1 => v2,這時候測試會出現紅燈,因為新類別的方法是空的
  • v2=>v3做好自己的事,把需要的資訊,叫別人負責提供Tell, Don’t Ask
  • 羊毛出在羊身上,單元測試的test case,往往可以從整合測試的test case找到蛛絲馬跡3AArrangeActAssert
  • V3=>v4, 頁面都沒改變將原本頁面的方法內容,搬到Library裡對應的類別方法中執行測試,由紅轉綠
  • V4=>v5照樣造句,只把相依改為介面。1.從client自動產生介面方法2.從類別 重構=>擷取介面
  • V5=>v6Strategy+factory method
  • V6=>v7把初始化物流商,交給工廠決定
  • 職責獨立、關注點分離
  • 韋恩咖啡:在這程式變美之前,我不能睡職責分清,關注點分離 程式碼自己會說話 隨時可以再重構只要綠燈,隨時可以發佈整合測試與單元測試建立完畢
  • 請問大家,有人知道三間物流商是怎麼計算運費的嗎?沒有?那就對了,重構,不一定要知道細節,重點在抽象地釐清程式碼。
  • ASP.NET-refactoring to patterns

    1. 1.  現況 目的 重構時機與目標 重構循環 請你跟我這樣做 結論
    2. 2. 綠燈填入 重構 紅燈
    3. 3. 綠燈填入 重構 紅燈
    4. 4. 綠燈填入 重構 紅燈
    5. 5. 綠燈填入 重構 紅燈
    6. 6. 綠燈填入 重構 紅燈
    7. 7. 綠燈填入 重構 紅燈
    8. 8. 綠燈填入 重構 紅燈
    9. 9. 綠燈填入 重構 紅燈 紅燈
    10. 10. 綠燈填入 重構 綠燈 紅燈 填入 重構 紅燈 紅燈
    11. 11. 綠燈填入 重構 紅燈
    12. 12.  切換為說話模式 › 不同物流商,使用對應的計價方法 › 根據條件,使用對應的演算法
    13. 13. 綠燈填入 重構 紅燈
    14. 14.  頁面只保留頁面職責 把初始化物流商,交給工廠決定
    15. 15. 紅燈
    16. 16.  把不需要的註解清除 把需要的API Document補上
    17. 17. 綠燈填入 重構 紅燈
    18. 18.  只要綠燈,隨時可以發佈 隨時可依據需求,繼續重構 一次只做一件事
    19. 19. 綠燈 綠燈寫程 填入 重構 重構 式 紅燈 紅燈

    ×