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