作者oaz ()
看板Soft_Job
標題Re: [討論] 一段想重構的程式碼
時間Wed Jul 24 18:12:30 2013
※ 引述《tyc5116 (累人啊....)》之銘言:
: 如題,因為不知道適合PO在哪個板問,看來看去好像這裡比較適合的樣子
: 如果不妥我再轉板
: 我在接手別人的程式後,發現他架構有需要重構的地方
: 程式分了數個小模組(a和b都是一個模組)
: class a{
: void func();
: ...
: };
: class b{
: void func();
: ...
: ;
: ...
: 其中每個模組的func程式碼都是一樣的
: 所以我想說就再拉出一個介面,並實作這個func,a和b都繼承這個介面
: 這樣這段重覆的程式碼就可以省掉了
: 因為改成這樣的方式變動有點大,所以尊重一下主管,跟主管說一聲,看能不能這樣改
: 但是主管卻說,程式內有很多個thread,若以這樣的方式來寫,可能在同一時間
: 會有很多地方都會執行到func,造成debug的不易,不然就還要再類別內加個屬性,
抱歉,不是很懂
這個重構方法跟 thread 有什麼關係
thread 會不會有問題,應該是看實體,而不是看程式碼
也就是不同 thread 存取同一個實體,才會有問題
目前想不到會讓 thread 不安全的例子,我個人會傾向重構
: 用來辨別目前執行func的是哪一個模組,雖然說目前是將同樣的func
: 寫在各別的模組內,但是這樣在debug時會比較容易作區分,然後他不贊成我改@@
另外也不懂,為什麼debug時會比較容易作區分?
我個人的傾向,除非造成 debug 很大的影響,否則不該複製
如果對 debug 只有小影響,那應該是要另外去想其它較好的 debug 方式
: 我對這個理由其實不太認同的,我是覺得加個屬性作為區分即可
: 然後程式都會跑到相同的地方,debug應該會變的更容易才對阿!!
: 不知道大家的看法如何?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.30.46
→ TonyQ:這跟 thread safe 沒有關係,這講的是 breakpoint 會不會 07/24 18:26
→ TonyQ:被干擾。在multi-thread 的情況下如果對 func 設 breakpoint 07/24 18:27
→ TonyQ:會所有模組都被打中,不過這也是很好解決的,設 07/24 18:28
→ TonyQ:conditional breakpoint 就行了。 07/24 18:28
→ TonyQ:從我的角度來看,假設原 po 講的是完全一樣的話,我會選擇 07/24 18:29
→ TonyQ:下手,然後"測試"。 07/24 18:29
推 goliathplus:要看他 func 內部在做啥比較準 07/24 18:44