我目前正在嘗試開發一個可重用的Yesod子網站來處理用戶到用戶的消息傳遞。理想情況下,用戶應該能夠從Hackage下載這個軟件包,在他們的應用程序中提供一些鉤子,並且在他們的Yesod主站點上有一個現代的,功能強大的消息系統。在Yesod子網站中正確使用持久性?
但是,我無法找到引用主站點的實體子網站的任何實例。在這種情況下,我想爲可能從主站點引用用戶的消息構建持久模型。在耶索德子網站的教程
無我發現迄今處理的子網站使用持久。 yesod-comments包是我發現的最接近我想要構建的東西,但我對它採取的方法感到困惑。
首先,它似乎使用字符串來識別用戶,而不是用戶的ID直接,這似乎是低效的。
此外,它似乎需要一個奇怪的回調結構(persistStorage結構)以支持評論存儲,但這對我來說似乎很奇怪。在我看來,在Haskell中,找出調用哪個函數所需的所有信息都應該在類和實例級別完成,但在這種情況下,我依靠傳遞一堆回調來爲我的代碼正常工作。
所以這裏的耶索德社區一個問題:什麼是開發這些在耶索德各種通用的子網站的最佳方式?
我真的很喜歡在我的項目中使用Yesod,因爲我喜歡Haskell以及類型安全和靜態編譯帶來的所有東西(更不用說速度和可伸縮性的好處),但我忍不住感覺像Django和Rails這樣的動態框架,不僅有一個生態系統來構建和分發可重用組件,而且還包括構建這些組件的所有庫內基礎設施。