Re: [討論] 一段想重構的程式碼
※ 引述《tyc5116 (累人啊....)》之銘言:
: 其中每個模組的func程式碼都是一樣的
: 所以我想說就再拉出一個介面,並實作這個func,a和b都繼承這個介面
: 這樣這段重覆的程式碼就可以省掉了
: 因為改成這樣的方式變動有點大,所以尊重一下主管,跟主管說一聲,看能不能這樣改
: 但是主管卻說,程式內有很多個thread,若以這樣的方式來寫,可能在同一時間
: 會有很多地方都會執行到func,造成debug的不易,不然就還要再類別內加個屬性,
: 用來辨別目前執行func的是哪一個模組,雖然說目前是將同樣的func
: 寫在各別的模組內,但是這樣在debug時會比較容易作區分,然後他不贊成我改@@
: 我對這個理由其實不太認同的,我是覺得加個屬性作為區分即可
: 然後程式都會跑到相同的地方,debug應該會變的更容易才對阿!!
: 不知道大家的看法如何?
不對,你說的都走到一個func是使程式的修改非常容易,因為本來要把二段相同的程式
做相同的修改,用你的方法不怕做錯.
但是,講到debug,所謂debug就是發生問題時,要找到出錯的原因,而不只是找到出錯的
位置. 如果用你的辦法,則你的func責任比較大,要同時符合object a的狀態,也要
符合object b的狀態,程式可能會因為二種objects的差異,而寫得奇怪,相對,要找原因
也要同時想二種objects的可能. 這樣是比較難debug的.
物件導向是以物件自己做為思考觀點及思考範圍. 但是當你把一個func讓二種objects
都牽涉進來,則在維護object a的時候,卻要分心以object b的觀點來看a的func.
重構有一種做法是說盡可能別用旗標代表程式流程,所以做一些去除旗標的動作.
但如果你把二個func合成一個,旗標會變多,而且二種objects狀態也跟旗標的影響雷同.
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 36.226.95.198
推
07/25 23:56, , 1F
07/25 23:56, 1F
→
07/26 00:00, , 2F
07/26 00:00, 2F
→
07/26 00:00, , 3F
07/26 00:00, 3F
→
07/26 00:01, , 4F
07/26 00:01, 4F
→
07/26 00:01, , 5F
07/26 00:01, 5F
→
07/26 00:02, , 6F
07/26 00:02, 6F
→
07/26 00:02, , 7F
07/26 00:02, 7F
→
07/26 00:03, , 8F
07/26 00:03, 8F
→
07/26 00:04, , 9F
07/26 00:04, 9F
→
07/26 00:04, , 10F
07/26 00:04, 10F
→
07/26 00:05, , 11F
07/26 00:05, 11F
→
07/26 00:05, , 12F
07/26 00:05, 12F
→
07/26 00:06, , 13F
07/26 00:06, 13F
→
07/26 00:06, , 14F
07/26 00:06, 14F
→
07/26 00:07, , 15F
07/26 00:07, 15F
→
07/26 00:07, , 16F
07/26 00:07, 16F
→
07/26 00:11, , 17F
07/26 00:11, 17F
→
07/26 00:11, , 18F
07/26 00:11, 18F
→
07/26 00:16, , 19F
07/26 00:16, 19F
→
07/26 00:16, , 20F
07/26 00:16, 20F
討論串 (同標題文章)
Soft_Job 近期熱門文章
35
114
PTT職涯區 即時熱門文章
194
337