关于代码重构:是微修还是全部推倒重来

大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处.
如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! hopy ;)


虽然不是很切题但还是放在Cocos2D的学习系列博文中吧,因为这是我写cocos2D代码中体会到的.

RPG游戏码代码到现在已经写了不少行代码了.

最近在加入新功能的时候发现以前遗留的人物对话问题一直没有解决,游戏对话逻辑是RPG中重要的逻辑,而我的代码问题具体表现在:

  1. 对话代码逻辑及其复杂.因为以前从来没有写过类似的代码,要想支持游戏剧情的复杂性,必须将对话脚本做成一个小解释性语言,我等于要写一个小型的语言解释器.从零开始到现在不停地盲目微修,乱七八糟,一段时间里我都不敢看里面的逻辑.
  2. 需要反复调整不停地命令组合来适应正确的对话逻辑.往往都是这里多加一个回车符,那里减去一个,很糟糕
  3. 对话逻辑鲁棒性极差.同一段对话第一次总是有错误,但以后都是对的.重新进入该地图后第一次对话又是错的,这样周而复始.

综上所示,本猫表示不能再忍了.

也不再准备微修,因为那样又要陷入无穷无尽的打补丁,调试循环中去.我决定全部重写对话逻辑.

首先将原对话类改名,新建同名文件…

具体就不详述了.但是让我感到欣慰的是,原以为晦涩痛苦的重构过程比想象的要简单,本来以为要几天才能全部完成,没想到半天就全部搞定了 :)

测试后发现,之前问题全部解决,类中减少了不少变量,代码显著变少,逻辑变得更清楚了.俗话说得好,不出错的代码是还没有写的代码.经过这次重构感觉自己对代码重构上体会又多了一层,对到底是微修还是彻底重写的处理又领悟到更多的一点点.

如果你的代码异常复杂,已经千疮百孔,荆棘丛生,那么不要在费劲一点点重构了,果断推倒重来是最快最好的办法,无论是自己写的代码还是维护别人的代码.最后祝君好运 ;)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值