为什么lua能有自己的生命?
最近又心血来潮,想学lua,公司对新技术很渴望,但自己作为一名程序员,内心却非常保守,因为自己貌似只对图形,html,flash还有一些非主流的游戏技术十分感兴趣。lua是作为游戏中大量使用的脚本。但是现在很多人都用脚本来完成轻量级开发,自己就将就看了下。接下啦还需要有耐心把他做完。
来到鲁班公司后,发现一些问题:
- 代码陈旧,be这种还要维护好几年前的c++代码。
- 代码复杂一层嵌一层
- 莫名其妙的需求,改这里改那里的。 最有感触的是去年下半年搞砸的那个mc,关于行匹配和列匹配那个算法写起来很麻烦,当然对于借口封装的原则,只需要把算法接口提供出来即可,但是当时的代码很乱,很容易需要重构。后来又提出匹配算法的模糊匹配和行匹配。还有就是测试一直找麻烦的界面问题。
- 还有就是一堆bug,改完之后,发现总差那么一点点。然后测试人员需要复测,要从服务器拿版本。当然版本初期不明显,到快要发版的时候问题来了,服务器会按时间编译版本,但是你解决好这个问题版本刚准备开始做,无缘无故,又拖了好长时间,只能等到下一次做版本的时候才能出来。
- 还有就是界面问题,需要该来改去的。
- webservice这一块,用手封装代码很麻烦,林工搞了一个webservice工具(代码模板实现的),虽然很好用,但中间环节莫名其妙的出了一些问题,旁人有时很难解决,还有就是接口改动也不太容易。
- c++编程水平的提升是一个漫长的路。
针对以上的这些问题,我觉得用脚本可以轻易的解决。
- 对于界面问题:(分为布局和界面控件的刷新问题)使用lua,如果有产品或者ui等不满意,可以实时调整。
- 关于针对改bug,以及需求改动,服务器做版本的速度加快,而且这个东西类似于配置文件,自己直接发给测试去测试,如果bug解决,直接提交服务器,服务器是不用编译这个东西的。
- webservice,这个公司有想把借口变为http的rest的倾向,但是lua和python类似,提供了webservice和http的方式。而且这个也恰巧是c++的短板
- lua可以轻易的与c++交互。换句话说,c++和lua是关系最好的一对朋友
- 一些配置文件用lua读取,更方便,如json,xml等。(没办法,不耗费资源的东西,工作量不大,但是简洁的开发,这方面脚本语言很有优势)
当然lua也不是万能的,一些问题要注意,lua运算效率很高,但是要比c++差,lua写界面也不容易。lua适合干一些轻量级的事情。
还有一些东西比如:qq邮箱协议,http协议,文件上传,下载等,可以用lua来搞一套,也轻松方便许多,使用lua就是这么方便。
还有在鲁班这一年也不是什么进步都没有,自己喜欢的东西还是要坚持,工作也要坚持,两者能统一也是最好的选择,后面自己会在luban 的pdsframework的基础上搭建一个LuaFrameWork For Pds来证明自己的猜想。当然啦,看了manager和cmd模式以及后来co的框架实现(反射机制来实现manager的注册),使我有自信,只需要轻量级的改动即可支持lua的嵌入。
初步设想
目前的想法,针对webservice,rest(http),做一个封装,针对manager/cmd做一个封装,然后顺便对于全局使用的,即随时调用和c++的通信的特殊lua类即可。这么做的前提是保证lua的引入是增加其灵活性的,而不打扰原有的开发,也就是说在实际功能做业务的时候,我们可以多一种选择,假如我这一块用c++做很麻烦,我就用脚本,当然用c++也得保证原有基础开发的不改变。
还有一句话送给自己:坚持,毅力是人生事业开拓的真谛
~洋