什么会让真正使用Lua的工作更容易?
2010-10-8 5:12:35
收藏:0
阅读:142
评论:3
我热爱 Lua,将其用作许多项目的主要语言(而非嵌入式)。我的当前项目将接近10,000行,很可能最终达到约15,000行。在这种规模下开发Lua时,你发现了什么有用的东西?你遇到了什么问题,又找到了什么解决方案?我正在考虑开发工具、语言特性和技巧、第三方模块。
我的前三名:
strict.lua -我使用修改版。如果不能提示未使用/意外变量的访问,我会疯掉。
协程 -不是因为它们的多线程能力,而是因为它们的可续性。在简化状态机实现时非常有用。
序列化函数 -对于转储表内容和将表持久化到磁盘非常必要(在其他情况下我很可能会使用数据库)。
我的愿望单:
适用于 OS X 的可视化调试器。现在我正在使用print()语句,但如果有一个让我可以单步跟踪源文件的调试器会很棒。
continue语句。使用repeat ... until true的解决方法很丑陋,太多嵌套的if语句变得复杂而丑陋。
当修改现有表成员时触发的元方法。
还有其他的关于大规模Lua开发的提示吗?
原文链接 https://stackoverflow.com/questions/3887872
点赞
stackoverflow用户1442917
根据您的“前三”和愿望清单,以下是我工作并可以推荐的产品(至少是基于我收到的反馈):
- MobDebug:一个远程调试器,基于RemDebug,但具有各种修复和新功能。
- ZeroBrane Studio:一款Lua IDE,提供一个带有所有预期功能的调试器(StepIn/Over/Out,Break,Watch,Stack,Breakpoints,remote shell,序列化支持,协程支持等)并运行在OSX和Windows上。它在IDE中与MobDebug提供了无缝的集成。我发布了几个屏幕截图展示它的运作:http://notebook.kulchenko.com/zerobrane/live-coding-in-lua-bret-victor-style,http://notebook.kulchenko.com/zerobrane/love2d-debugging。
- Serpent:一个紧凑而强大的序列化程序。ZeroBrane Studio正在使用Serpent在控制台和堆栈窗口中显示复杂的数据结构。
- ZeroBrane Studio包括一个静态分析器(基于metalua和lua-inspect),它允许您在开发期间(在运行代码之前)检测严格.lua检测到的相同问题(及更多)。
- 在观察变化方面,MobDebug提供了一种方法来观察任何类型的变量(不仅仅是table)。我在另一个SO post中描述了它。目前ZeroBrane Studio还不支持此功能。
2012-08-27 20:13:22
评论区的留言会收到邮件通知哦~
推荐文章
- 如何在roblox studio中1:1导入真实世界的地形?
- 求解,lua_resume的第二次调用继续执行协程问题。
- 【上海普陀区】内向猫网络招募【Skynet游戏框架Lua后端程序员】
- SF爱好求教:如何用lua实现游戏内调用数据库函数实现账号密码注册?
- Lua实现网站后台开发
- LUA错误显式返回,社区常见的规约是怎么样的
- lua5.3下载库失败
- 请问如何实现文本框内容和某个网页搜索框内容连接,并把网页输出来的结果反馈到另外一个文本框上
- lua lanes多线程使用
- 一个kv数据库
- openresty 有没有比较轻量的 docker 镜像
- 想问一下,有大佬用过luacurl吗
- 在Lua执行过程中使用Load函数出现问题
- 为什么 neovim 里没有显示一些特殊字符?
- Lua比较两个表的值(不考虑键的顺序)
- 有个lua简单的项目,外包,有意者加微信 liuheng600456详谈,最好在成都
- 如何在 Visual Studio 2022 中运行 Lua 代码?
- addEventListener 返回 nil Lua
- Lua中获取用户配置主目录的跨平台方法
- 如何编写 Lua 模式将字符串(嵌套数组)转换为真正的数组?
一个
continue
语句。使用repeat...until true
的解决方案有点丑陋,并且太多的嵌套 ifs 会变得复杂和难看。将循环体化为函数调用;那么
return
就变成了continue
。一个在修改现有表成员时调用的元方法。
您可以自己实现这个功能,通过使用一个代理表 B 来存储表 A 的所有实际数据 - A 上的新索引/索引元方法拦截写入/读取并修改/查找来自表 B。由于 A 没有任何被写入的东西,所有的写操作都会命中新索引。