学习 Lua 的 5 个理由
由 Mux 主办的 DEV 全球展示挑战赛:展示你的项目!
如果你还没听说过Lua,它是一种非常小众的编程语言。或许你听说过它,但因为你常用的编程语言已经能满足你的所有需求,所以你一直没有理由去学习它。那么,以下几个理由或许能让你明白,无论如何,你都应该学习 Lua。
5.
你听说过/用过Nginx吗?在OpenResty 配置下,你可以在 Nginx 内部使用一些 Lua 脚本。这样你就可以做一些事情,比如通过 Let's Encrypt 为不同的域名动态分配 SSL 证书。
auto_ssl:set("allow_domain", function(domain)
return ngx.re.match(domain, "^(mysite.com|yoursite.com)$", "ijo")
end)
用 Apache 代替 nginx?Lua 依然可以满足你的需求。
4.
另一个在 Web 开发中常用的工具是Redis。如果你使用 Redis 来存储时间线事件 ID 列表或其他数据,你可能需要对这些数据进行一些复杂的排序操作。RPOPLPUSH在 Redis 中编写语句可能会比较繁琐,而且你选择的语言有时可能达不到你的预期速度。例如,如果你使用的是 Ruby,可以使用一个名为Wolverine 的gem 。你可以编写一个 Lua 脚本来完成所有需要的排序操作,然后将数据传递回你的 Rails 应用。这可以显著提升性能。
3.
如果你的 Web 应用需要极高的性能,但你又没有能力重写代码,那么你可以考虑在应用中加入大量的缓存。一种方法是在应用前端部署Varnish。Varnish会处理所有缓存,并且只有在缓存过期时才会将请求代理回你的应用。
Varnish 使用了这些 VCL 脚本,这可能会让人有点困惑。通过一些Lua 技巧,你可以编写一些不错的程序化缓存。例如,在多租户环境中,可以根据域名缓存不同长度的数据?
2.
你喜欢玩电子游戏吗?也许你听说过其中的一些游戏?
- 愤怒的小鸟
- 文明5
- 相距甚远
- Garry's Mod
- 魔法门之英雄无敌V
- 黑色洛城
- 黑手党2
- 罗布乐思
- 《黑道圣徒2》
- 模拟城市4
- 星球大战:前线
- 斯蒂芬狂热
- 战锤
- 魔兽世界
所有这些游戏都以某种方式使用了 Lua,而且还有很多其他游戏也使用了 Lua。大多数游戏或游戏引擎都是用 C++ 或 C# 编写的,但在前端使用 Lua 进行脚本编写可以加快游戏的开发速度。无需每次都重新编译。只需编译你的引擎,然后让它运行 Lua 脚本即可。你可以从Love2d或Defold开始。
1.
因为 Lua 写起来很有趣!如果你还不了解它,学习一门新语言也无妨。如果你已经掌握了编程基础,那么上手 Lua 应该会很快。花 15 分钟阅读这篇 Lua入门文章,你就能对它的语法有一个大致的了解。接下来,就只需要深入钻研了!
文章来源:https://dev.to/jwoertink/5-reasons-you-should-learn-lua-39ca