2

我正在考虑用 Ruby 编写一个(大型)桌面应用程序(实际上是一个游戏,想想像 Angband 或 Nethack 之类的东西,使用 Gtk+ 作为 GUI)。我来自 C#/.NET 背景,所以我对如何构建事物有点迷茫。

在 C# 中,我会创建许多命名空间,例如 Application.Core、Application.Gui 等)。不需要 Gui 的应用程序部分不会使用 using 语句引用它。据我了解,在 Ruby 中,require 语句基本上是进行文本插入,以避免重复代码。我担心的是,通过使用 require 语句,每个文件/类都可以访问其他所有内容,因为 require 语句的顺序。

我已经阅读了一些使用模块作为命名空间的 ruby​​ 代码。这是如何工作的,它有什么帮助?

不知道我在这里得到了什么......有人对如何构建大型Ruby应用程序有任何好的指导吗?一些使用 Ruby 的非平凡(和非 Rails)应用程序怎么样?

4

2 回答 2

2

在构建代码方面,Ruby 与任何其他语言没有什么不同。做感觉对的事,它可能会奏效。我不完全确定您预计会出现什么问题。您是否担心名称冲突?

模块是获取伪命名空间的好方法,例如。

module Core
  class Blah
    self.def method
    end
  end
end

Core::Blah.method
于 2009-07-15T21:47:28.150 回答
-1

您的一些问题并不是 Ruby 特有的,它只是与循环依赖有关。Core 依赖 Gui 还是 Gui 依赖 Core?或两者?

解决这个问题的一个好方法是使用一个非常小的“运行器”组件,该组件依赖于核心、数据访问组件、gui 等,并将它们联系在一起。

于 2009-07-15T00:39:34.963 回答