【发布时间】:2014-04-19 05:16:34
【问题描述】:
我目前正在尝试开发一个可重复使用的 Yesod 子站点来处理用户对用户的消息传递。理想情况下,用户应该能够从 Hackage 下载这个包,在他们的应用程序中提供一些挂钩,并在他们的 Yesod 主站点上拥有一个现代的、功能丰富的消息传递系统。
但是,我找不到任何引用主站点实体的子站点示例。在这种情况下,我想为可能从主站点引用用户的消息构建持久模型。
到目前为止,我发现的 Yesod 子站点教程都没有涉及在子站点中使用 Persistent。 yesod-comments 包是我发现的最接近我想要构建的东西,但我对它所采用的方法有点困惑。
首先,好像是用字符串来识别用户,而不是直接用用户的id,这样似乎效率低下。
此外,它似乎需要一个奇怪的回调结构(persistStorage 结构)来支持评论存储,但这对我来说似乎很奇怪。在我看来,在 Haskell 中,确定调用哪个函数所需的所有信息都应该在类和实例级别完成,但在这种情况下,我依赖于传递一堆回调以便我的代码才能正常工作。
所以这里向 Yesod 社区提出一个问题:在 Yesod 中开发这类通用子网站的最佳方式是什么?
我真的很想在我的项目中使用 Yesod,因为我喜欢 Haskell 以及类型安全和静态编译带来的所有东西(更不用说速度和可伸缩性的好处),但我不禁感到转向动态框架,如 Django 和 Rails,不仅有构建和分发可重用组件的生态系统,还有构建这些组件的所有库内基础设施。
【问题讨论】: