如何通过哪些方式让Lua编程语言在团队合作中更加便捷高效?

2026-04-01 19:151阅读0评论SEO教程
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计535个文字,预计阅读时间需要3分钟。

如何通过哪些方式让Lua编程语言在团队合作中更加便捷高效?

我喜欢Lua,打算将其用作越来越多项目的首选(非嵌入式)语言。目前的项目接手了10,000行,可能以约15,000行结束。在Lua那个规范上开发时,我发现了一些有用的东西,比如模块化编程和简洁的语法。最让我头疼的是调试大型项目时的复杂性。你有什么建议吗?

我喜欢Lua,将它用作越来越多的项目作为主要(非嵌入式)语言.我目前的项目接近10,000行,可能会以约15,000行结束.你在Lua那个规模上开发时发现了什么有用的东西?你有什么打击你的头,你找到了什么解决方案?我正在考虑开发工具,语言功能和技术,第三方模块?

我的前三名:

> strict.lua – 我使用了这个的修改版本.没有被提醒访问未使用/非预期的变量我会发疯.
>协同程序 – 不是因为它们的多线程能力,而是因为它们的可持续性.对于简化状态机的实现非常有用.
>序列化功能 – 对于转储表内容以及将表持久化到磁盘是必不可少的(除非我可能已经到达数据库,否则我会多次使用它).

我的收藏:

> OS X的可视化调试器.我现在正在使用print(),但是让我单步执行源文件的调试器会很棒.
>继续声明.使用重复…直到真正的解决方法是丑陋的,并且太多的嵌套ifs变得复杂和丑陋.
>修改现有表成员时调用的元方法.

大规模Lua开发的其他任何提示?

A continue statement. Using the
repeat…until true workaround is
ugly, and too many nested ifs becomes
complex and ugly.

让你的循环体成为函数调用;然后返回继续.

A metamethod that’s invoked when an
existing table member is modified.

如何通过哪些方式让Lua编程语言在团队合作中更加便捷高效?

您可以使用代理表B自己实现这一点,代理表B存储表A的所有实际数据 – 在拦截写入/读取和修改/查找表B中的newindex / index元方法.由于A从未写入任何内容,因此所有写入都会触及newindex.

本文共计535个文字,预计阅读时间需要3分钟。

如何通过哪些方式让Lua编程语言在团队合作中更加便捷高效?

我喜欢Lua,打算将其用作越来越多项目的首选(非嵌入式)语言。目前的项目接手了10,000行,可能以约15,000行结束。在Lua那个规范上开发时,我发现了一些有用的东西,比如模块化编程和简洁的语法。最让我头疼的是调试大型项目时的复杂性。你有什么建议吗?

我喜欢Lua,将它用作越来越多的项目作为主要(非嵌入式)语言.我目前的项目接近10,000行,可能会以约15,000行结束.你在Lua那个规模上开发时发现了什么有用的东西?你有什么打击你的头,你找到了什么解决方案?我正在考虑开发工具,语言功能和技术,第三方模块?

我的前三名:

> strict.lua – 我使用了这个的修改版本.没有被提醒访问未使用/非预期的变量我会发疯.
>协同程序 – 不是因为它们的多线程能力,而是因为它们的可持续性.对于简化状态机的实现非常有用.
>序列化功能 – 对于转储表内容以及将表持久化到磁盘是必不可少的(除非我可能已经到达数据库,否则我会多次使用它).

我的收藏:

> OS X的可视化调试器.我现在正在使用print(),但是让我单步执行源文件的调试器会很棒.
>继续声明.使用重复…直到真正的解决方法是丑陋的,并且太多的嵌套ifs变得复杂和丑陋.
>修改现有表成员时调用的元方法.

大规模Lua开发的其他任何提示?

A continue statement. Using the
repeat…until true workaround is
ugly, and too many nested ifs becomes
complex and ugly.

让你的循环体成为函数调用;然后返回继续.

A metamethod that’s invoked when an
existing table member is modified.

如何通过哪些方式让Lua编程语言在团队合作中更加便捷高效?

您可以使用代理表B自己实现这一点,代理表B存储表A的所有实际数据 – 在拦截写入/读取和修改/查找表B中的newindex / index元方法.由于A从未写入任何内容,因此所有写入都会触及newindex.