【发布时间】:2013-07-31 00:54:48
【问题描述】:
是否有关于如何构建大型球拍项目的一般指南(相当于How to Write Go Code)?
【问题讨论】:
标签: racket
是否有关于如何构建大型球拍项目的一般指南(相当于How to Write Go Code)?
【问题讨论】:
标签: racket
有一个名为How to Program Racket 的 Racket 样式指南将在未来版本的 Racket 的文档中提供。如果您构建了 Racket 的git version,您可以在我发布的链接或捆绑的文档中阅读它。
【讨论】:
您的问题是关于构建大型 Racket 项目,但是您的示例链接How to Write Go Code 似乎主要是关于如何创建一个包。这些不一定是同一件事(尽管您可能会将大型 Racket 程序划分为不同的源目录,这些目录可能是“集合”或“包”)。无论如何,要解决这两个部分:
如何构建大型 Racket 项目: Asumu 的回答提供了一个很好的链接:How to Program Racket。请特别参阅section 3, "Units of Code",其中讨论了模块。此外,您将在 Racket 本身的源代码中看到的一种技术是,一个模块可能只存在于来自其他人的require 函数和provide 他们——以“重新提供”。换句话说,您可以使用这样的模块来分块其他模块,并有选择地将它们作为结构中的“层”公开。此外,如果适合您的问题域,Racket 有一个 class 系统,如果您有某种“接口”或“协议”策略,则 generics。和更多。确实,Racket 中有很多很多技术可以用来构建一个大型项目。
如何制作球拍包:这是一个有趣的提问时间。从历史上看,Racket 使用了一个叫做 Planet 的东西作为包管理器。最近,它有一个新的包装系统。尽管尚未正式退出测试版,但许多人已经将其用于实际工作。当前的文档是Package Management in Racket Beta),尽管与 Go 文档的风格不同。
您要求提供一般指导方针,这有点开放。如果您在权衡如何构建大型项目时有任何具体的选择,也许您可以一一询问以获得更清晰的答案?
【讨论】: