QT的编程小笔记:别做YandereDev,不要滥用if

PastArchive 发布于 2020-07-11 486 次阅读


我们都知道一个备受欢迎的游戏,名字叫做病娇模拟器,虽然还没开发完成,但是已经有一大堆Demo的版本展示了游戏各种功能。但是其背后的开发者YandereDev (其实他还有另一个名字,如EvaXephon,他的本名为Alex Mahan)其背景历史和他所做的事情有点奇怪。

首先就是病娇模拟器的代码,虽然是闭源代码,但是游戏是用C#写的,所以可以很容易被反编译,然后我也看了看代码,虽然我不用Unity,但是多少也能知道,代码里面的if statement太多了,多到我觉得YandereDev是不是不知道用Switch statement,而且游戏开发时间大部分也花在彩蛋上面(虽然我也把时间花在写这篇文章,然后去搞那个名字彩蛋)。

我呢... 好吧,其实在这个名字彩蛋的初稿其实也是像YandereDev一样,用了一堆if statement

if if if全是if,完全违反了DRY (Don't Repeat Yourself),但是,我也随着v26的开发,我也把名字彩蛋重新写过了一遍,发现其实我可以把这18个if代码区块,总共178行的代码,还需要自己一个单独文件的代码,缩短为2个if指令追加3个if指令确认特殊中的特殊名字,还有一个有点大的Dict变量,总共40行代码

只检查5个条件总比连续检查18个条件好。代码优化完成(天哪我真tm不敢相信我只为了一个彩蛋而这么优化...)。