看板 OOAD 關於我們 聯絡資訊
※ 引述《tyc5116 (累人啊....)》之銘言: : 如題,這是我看書想到的一個問題 : 我拿書上的題目來說,有四個class,分別是採購(Purchase),庫存(Stock),銷售(Sale) : 以及一個中介者(Mediator)(不把虛擬的算進去的話) : 彼此是有關聯性的,哪一天突然發現有bug,或想重構,或要修改功能,該怎麼下手呢? : 我的問題點在於,以debug來說,假設我覺得Sale部份可能有問題 : 有辦法在過程中,先將Sale和其它class的關聯性切開,再除錯嗎? : 又或者哪天我覺得Mediator很亂了,要進行重構,可是有關聯性的class很多 : 有辦法將Stock和Purchase切開,對Mediator與Sale相關的程式碼重構 : 再依此類推,連接Sale,切開Stock,Purchase,重構 : 連接Purchase,切開Sale,Stock,重構..... : 若這個觀念是不對的,麻煩請指正,若這觀念可行,麻煩請說明一下實作的方向 : 謝謝 詳細完整的回答請看上一篇qrtt1的文章,我這篇只是應著推文簡單回覆一下 如有誤還請各位先進指教。 以您原文的需求來看,問題點似乎是如何針對已經做好Mediator Pattern的類別Debug 以我目前的作法是: 1. 先寫 Unit Test Case,測試 Mediator、Purchase、Stock、Sale 四個實體類別 2. 當 Test Unit 報告有 Assertion Fail 的時候 2.1 使用好的 Debugger 一步一步追蹤除錯 2.2 使用好的 Logger 傾印所有變數在執行期的變化 3. 發現發生錯誤的程式碼之後,修正他,回到 2 直到全測試通過為止。 所以您說,『有辦法在過程中,先將Sale和其它class的關聯性切開,再除錯嗎?』 除非您找得到 Sale 和 Mediator 兩者沒有關聯的部分做獨立測試與除錯,否則切開是 沒有意義的,因為 Sale 的運作是否正確,和 Mediator 有很強的關聯性,所以說,整 個除錯的過程必須包含 Sale 與 Mediator 兩者有相關的部分,無法完全切開。 後面你說能不能將 Stock 和 Purchase 切開也是一樣的道理:只能針對無關聯的部分做 測試除錯,其他有關聯部分仍然不可切開。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 122.117.174.134
kimkao :藉這篇問一個離題的問題一下,好的Debugger & logger 02/21 19:16
kimkao :可以舉個例子嗎? 是指tool本身還是實作的方式? 02/21 19:16
tyc5116 :對對對,我所指的切開就是指以Test Case取代 02/21 19:28
tyc5116 :但是對這部份的實作沒什麼概念,有推薦的書嗎? 02/21 19:29
H45 :回一樓:我用的Debugger是Eclipse,很好用,但我不敢 02/21 21:33
H45 :說是最好的,而logger則是指 library,總之不是指實 02/21 21:35
H45 :作的方式 02/21 21:35
H45 :回四樓,推薦的書就參考下專業五樓的吧 :) 02/21 21:37
tyc5116 :有沒有中文的啊XD,英文的雖然寫比較好,但是貴啊.... 02/21 22:12
kimkao :多謝H45回答:D 02/22 09:23