lua脚本引擎用法总结(1)
 
     前段时间自己弄了个小的开发平台,其实就是一堆类库封装了一下呵,毕竟自己用,方便就好。后来觉得不够灵活,就把lua引进来了。选的平台是luaplus,最新版本的那个。感觉比较方便,随手发出来大家一起研究哈:)
     现在总结了一下它的用法:
     1、当配置文件用,拿来保存会根据环境变化的初值、常量。
     这种用法应该是最没难度,也是最方便的了,因为与常拿来当配置文件的,像ini和xml文件,都不能实现这样的功能
     m_sigDebug = true
     if (m_sigDebug == true) then
        value = "调试中的值"
     else
        vlaue = "发行版的值"
     end
     我把它用的一个接口系统中,在调试时返回的目录是本地的,而运行时把debug一关,嘿,俺是懒人嘛。其实也可以有其他的高级应用,luaplus中有向 LuaStateOwner注册变量的方法,所以这个配置文件还是可以很灵活滴,甚至可以将IP地址和CPU号甚至硬件序号发进来,然后实现注册控制呵。 如果没注册,不提供常量,跑不下去了吧,哈? 


Re: lua脚本引擎用法总结(2)
 
2、拿来维护一些易变的算法。
我有一个工具,用VC作了界面,所有的事件、调用全发到LuaStateOwner中了,分别调用不同的.lua文件。于是实现了修改算法,不必改代码,不用重编译。
当然,这样伴随着一个问题,.lua不要直接发出去,编译一下再发。还有,就是我在程序中对.lua的md5验证了一下,这样可以保证别人不要修改俺的代码,因为是和数据库相关的嘛,如果别人可以改代码,那不是把数据库给卖了嘛:)



Re: lua脚本引擎用法总结(3)
 
3、为LuaStateOwner实现开放的功能库
实现了配置、实现了逻辑算法,但还是觉得不方便,因为在第2种应用方法中,所有的数据要由VC向LuaStateOwner注册,也就是说数据结构发生变化时代码就没用了。这样就不能实现个性化或叫二次开发。
要实现到这一步,有两种方案:
a.增强lua的数据库处理能力,开放数据库给lua直接访问,我自己抓数据过来处理,这样就没问题了呵。
b.为LuaStateOwner扩展功能库,lua中增加一个函数,向VC要数据,我要哪个数据源、哪个表的哪个SQL结果,你给我发过来,创建成table×××。
我选择了b。因为像a计划呵,lua在程序中的地位太超然了,也就是给他的权限太强了。这样容易失控。举例哈,建立数据库连接时要暴露太多信息。有人说我 用VC把usr/pwd注册到LuaStateOwner中去给它用,保密了。那我再举例哈,每个表都要用lua创建,我试过一个20万记录的表,那速 度,汗。不过用VC创建这些表感觉快好多呵,不知是不是错觉呵。
好的想法就要实施哈,我现在想把这种应用封装一下,弄个SERVO(伺服)系统。大体想法是将数据源、常量、网络信息、功能类库通通作为受控的SERVO 向LUA提供。LUA专门负责逻辑、算法(当然,有些算法要求比较BT的像MD5可以用SERVO封一下再给LUA)的实现和业务重组,而SERVO专心 负责数据源的权限控制、常量的演变以及类库接口在访问中的控制这些应用权限上的实现。
好了,写到这儿,我的QQ:25723030,MSN是myao@hotmail.com,欢迎一起讨论。