今天出于好奇,读了下一款 webgame 的源代码。从整体上看,代码很简单,但也很复杂。简单是因为程序的设计思路很容易懂,除了很多全局变量以外,全是一个接一个的函数;复杂是因为每当从一个函数当中读到一个的变量名时,或是看到一个函数调用的话,总要到其它地方去找,然后再回来,加上一个函数通常都很长,冗余很多,理解起来就变得复杂了。假如让我接手这些代码的话,维护起来一定相当费劲,耦合的太紧,不容易理清楚。要是程序继续像这样下去,一不小心,就会变得跟 “意大利面条“ 一样。
这款游戏还处在开发阶段,但是想要向更大规模发展的话,以现在的程序结构来看不太容易,因为控制不了复杂性。除此之外,某些地方的性能方面也有待改进,毕竟游戏不像其它的应用程序,它的要求比较高。下面是我对一些代码的优化尝试。
太多的 if else 看上去不够简洁优美,总是提醒你还可以写得更好。 在constant.js当中有这么两个函数: