天天看點

關于代碼重構:是微修還是全部推倒重來

大熊貓豬·侯佩原創或翻譯作品.歡迎轉載,轉載請注明出處. 如果覺得寫的不好請多提意見,如果覺得不錯請多多支援點贊.謝謝! hopy ;)

雖然不是很切題但還是放在cocos2d的學習系列博文中吧,因為這是我寫cocos2d代碼中體會到的.

rpg遊戲碼代碼到現在已經寫了不少行代碼了.

最近在加入新功能的時候發現以前遺留的人物對話問題一直沒有解決,遊戲對話邏輯是rpg中重要的邏輯,而我的代碼問題具體表現在:

對話代碼邏輯及其複雜.因為以前從來沒有寫過類似的代碼,要想支援遊戲劇情的複雜性,必須将對話腳本做成一個小解釋性語言,我等于要寫一個小型的語言解釋器.從零開始到現在不停地盲目微修,亂七八糟,一段時間裡我都不敢看裡面的邏輯.

需要反複調整不停地指令組合來适應正确的對話邏輯.往往都是這裡多加一個回車符,那裡減去一個,很糟糕

對話邏輯魯棒性極差.同一段對話第一次總是有錯誤,但以後都是對的.重新進入該地圖後第一次對話又是錯的,這樣周而複始.

綜上所示,本貓表示不能再忍了.

也不再準備微修,因為那樣又要陷入無窮無盡的打更新檔,調試循環中去.我決定全部重寫對話邏輯.

首先将原對話類改名,建立同名檔案…

具體就不詳述了.但是讓我感到欣慰的是,原以為晦澀痛苦的重構過程比想象的要簡單,本來以為要幾天才能全部完成,沒想到半天就全部搞定了 :)

測試後發現,之前問題全部解決,類中減少了不少變量,代碼顯著變少,邏輯變得更清楚了.俗話說得好,不出錯的代碼是還沒有寫的代碼.經過這次重構感覺自己對代碼重構上體會又多了一層,對到底是微修還是徹底重寫的處理又領悟到更多的一點點.

如果你的代碼異常複雜,已經千瘡百孔,荊棘叢生,那麼不要在費勁一點點重構了,果斷推倒重來是最快最好的辦法,無論是自己寫的代碼還是維護别人的代碼.最後祝君好運 ;)

繼續閱讀