嗨,大家好,
我是一名后端开发人员,有4到5年的社交应用后端开发经验(最新的项目链接 keakr.com),我在开发现实社交系统方面积累了很多经验。 我现在正在开发一个新项目 - 另一个社交应用程序 - 我们基于Solid开发。 我现在已经掌握了Solid的基本工作流程,但我很难将它们联系到实际的应用层面。
我想最好的方法是列举一些典型的用户流程,并弄清楚如何用 Solid 实现它们。 请随意评论,拍砖,或者点赞。 我会用 [?] 来表示开放式问题。 也许他们篇幅很长,但希望可以让使用 Solid 的开发人员受益!
注册
可以通过使用电子邮件/密码创建帐户或使用其他社交平台的三方的登录。 在 Solid 的情况下:
我们会使用 WebID,如果用户已经拥有一个,我们让他直接登录,如果没有就在我们的服务器上帮他创建一个
用户也需要一个 POD,所以同样的逻辑:要么让我们访问他现有的 POD,要么与我们帮他创建一个。
用户发帖
这也是一个常见的用户操作。但我们不将帖子及其相关内容存储在我们的数据库中,而是将它们存储在用户的 POD 中。
[?]我们要不要首先创建一个目录来存储来自我们应用程序的所有数据?
列出用户的帖子
这是让我感到十分费解的地方。如果用户想列出所有他发的帖子,我们需要从他的 POD 中读取,但是我们在列出之前想先对数据进行处理(比如我们要从帖子的内容中根据关键字进行搜索,或者根据创建日期对帖子排序)。那么我要怎样才能做到这一点?我知道需要使用 SPARQL(SPARQL Protocol and RDF Query Language)查询语言。但如果用户的 POD 不支持某些我们需要的 SPARQL 查询结构怎么办?
分享帖子
在我们的数据模型中,帖子不会被自动分享给其他人,而是要被楼主自己分享出去。我认为这些分享出去的内容将采用目标 POD 中的三元组形式,并指向作者 POD 中的内容。
列出分享的帖子(或显示“摘要”)
如果我们想显示所有分享给某些用户的帖子,我们首先会列出之前提到的“共享”三元组,但是然后[?]我们需要查看所有被分享的用户的 POD 来构建返回结果吗?(同时考虑过滤和排序的情况)
由于目前我们的数据都是存储在一个中央数据库,也有一些优化查询和索引的方法,但对于上述情况,我目前还没找到一种优雅的解决方法。如果某些用户的 POD 关闭或者响应速度很慢,则会严重影响应用的整体性能。
我还有很多其他问题。没准我的问题出发点就是错的。感谢任何回复,并期待讨论。
Thomas