我正在考虑用Ruby编写一个(大型)桌面应用程序(实际上是一个游戏,想像Angband或Nethack,使用Gtk +作为GUI)。我来自C#/ .NET背景,所以我对如何构建事物感到有点迷失。
在C#中,我创建了许多名称空间,如Application.Core,Application.Gui等)。不需要Gui的应用程序部分不会使用using语句引用它。据我所知,在Ruby中,require语句基本上做了一个文本插入,避免了重复的代码。我关心的是,通过使用require语句,每个文件/类都可以访问其他所有内容,因为require语句的顺序。
我已经阅读了一些使用模块作为命名空间的ruby代码。这是如何工作的以及它有何帮助?
不确定我在这里得到的内容......有没有人对如何构建大型Ruby应用程序有任何好的指示?一些使用Ruby的非平凡(和非Rails)应用程序怎么样?
答案 0 :(得分:3)
在构建代码时,Ruby与任何其他语言没有什么不同。做正确的事情,它可能会奏效。我不完全确定你期待的是什么问题。您是否担心姓名冲突?
模块是获取伪命名空间的好方法,例如。
module Core
class Blah
self.def method
end
end
end
Core::Blah.method
答案 1 :(得分:0)
你的一些问题并不是特定于Ruby,它只是关于循环依赖。 Core取决于Gui还是Gui依赖Core?或两者兼而有之?
解决这个问题的一个好办法是使用一个非常小的“跑步者”组件,它取决于核心,数据访问组件,gui等,并将这些组合在一起。