Lua应用领域

Lua 语言 的应用场景主要包括做为嵌入脚本、做为独立脚本、用于应用程序的动态配置、游戏开发以及 Web 应用脚本等。

  1. 嵌入脚本

    在很多时候,我们可以将 Lua 直接嵌入到我们的应用程序中,如游戏、监控服务器等。这样的应用方式对于程序的最终用户而言是完全透明的,但是对于程序本身,其扩展性将会得到极大的增强。

  2. 独立脚本

    将 Lua 视为一种独立的脚本语言,通过它来帮助我们完成一些软件产品的辅助性工具的开发。比如在我们之前的数据分析产品中,我们通过编写 Lua 脚本,将每个用户不同格式的数据重新格式化为我们的软件平台能够读取的格式,之后再将格式化的后的数据加载到数据库中,或者是写入我们的分析引擎可以识别的数据分析文件中。

    这其中 Lua 仅仅用于文件格式的规格化过程,至于此后的操作,都是通过 Lua 调用我们的C语言导出函数来完成的。

  3. 动态配置

    将 Lua 应用于应用程序的动态配置部分。比如移动智能设备或嵌入式设备,它们的显示分辨率在很多情况下都是非标准的,如果我们为每一款设备都维护一套相关的配置信息,这无疑会加大我们程序的维护开销,如果我们将这段动态配置逻辑交由 Lua 脚本完成,那么这对于程序配置的灵活性而言,将会得到很大的提高。

    甚至可以是这样,运行在移动终端设备上的应用程序,在启动主窗体之前先和服务器建立连接,在服务器确认设备的各种参数后,再将和该设备显示相关的 Lua 脚本发送给设备客户端,这样客户端在得到 Lua 脚本之后,就可以立刻执行它以得到最新的动态配置信息。

  4. 游戏开发(Cocos2d-x + Lua + C++)

    Lua 大量被用于游戏开发,主要是搭配 Cocos2d-x,作为脚本来处理从逻辑到 UI 的各种工作,如:《愤怒的小鸟》、《魔兽世界》。单纯使用 C++ 开发的成本比较高,而使用 C++ 提供各种基本的功能函数库,Lua 调用这些库来实现各种逻辑功能,可以实现基本代码库和逻辑代码分离,减低编程成本。

  5. Web 应用脚本(Nginx + Lua)

    Lua 的另一个常见应用场景是编写 Nginx 服务器的脚本。一开始开发者都使用 C/C++ 做 Nginx 开发,但是使用 C/C++ 开发 Nginx 的程序对开发者的要求较高,开发者需要了解 Nginx 的工作原理和内部处理流程,熟悉各种数据结构,掌握进程、事件等运行机制,开发成本高,周期长。

    直到 Openresty(一个基于 Nginx 与 Lua 的高性能 Web 平台)的诞生,该平台集成大量的 Nginx 功能模块和 Lua 模块,开发者可以用 Lua 作为 “胶水语言“ 粘合 Nginx 的各个模块和底层接口,以脚本的方式实现业务逻辑。