问题标签 [social-networking]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
5 回答
235 浏览

content-management-system - 我应该使用哪个 CMS、脚本等?

有人要求我创办一个非营利组织来建立他们的网站。

他们基本上希望用户能够注册、创建个人资料、发送消息等,然后让慈善机构能够做同样的事情,但功能不同(写博客、发布视频等)。

用户将查看每个慈善机构的个人资料,然后确定他们想捐赠给哪一个。付款将全部直接转到网站所有者,然后从那里分发。

我只是一个前端程序员,但我知道他们负担不起从头开始编写这个站点的功能。是否有任何脚本可以修改以使其工作?

我什至愿意花钱请一个程序员来开发这个网站。只要让我知道您认为这样的事情会花费多少,以及您将如何实施它。

非常感谢您的帮助。我很感激!

0 投票
2 回答
2673 浏览

design-patterns - 社交网络的对象模型

我在哪里可以找到描述社交网络对象模型设计策略和模式的资源?例如,如何实现用户之间的关系,如何实现用户操作的通知流,如何为每个用户过滤该流等等......?

0 投票
6 回答
61525 浏览

design-patterns - 如何在社交网络中实现活动流

我正在开发自己的社交网络,我还没有在网络上找到实现用户操作流的示例......例如,如何过滤每个用户的操作?如何存储动作事件?我可以为动作流和动作本身使用哪种数据模型和对象模型?

0 投票
3 回答
1075 浏览

delphi - 复杂的软件架构

我有几个关于我正在开发的软件架构的问题!

所以基本上,这个软件允许用户访问一些流行的网站:

  • 社交网络(Facebook、MySpace、...)、
  • 公共服务(RSS、邮件、Twitter...)、
  • 社交书签(Digg、Delicious...)、
  • 聊天(MSN、AOL...)、
  • ...

目前的架构看起来是这样的: 使用 MVC 和 Observer/Observable 设计模式在模型(TApp_Core)和用户界面之间进行交互。

因此,软件创建了一个 TApp_Core 实例,然后根据用户的选择,它创建了一些其他服务的实例(例如:App_Core.BookmarkingServices_Core.AddServices(Digg, User, Password);)。

一些问题 !

  • 你认为目前的软件设计是对的吗?
  • 目前所有软件只有一个线程...为每个服务请求创建一个新线程会更好吗?(例如,TDigg 从一个按钮接收消息,它创建一个线程,该线程将创建一个 TidHTTP,向服务器生成请求,等待响应,解析响应,向每个观察者发送消息(回调)然后释放线程。
  • 将所有视图/控制器与模型的每个部分链接起来似乎非常困难,这是否正常需要这么多工作?例如:要发送一条消息,例如使用 Twitter,它需要:
    • 将控制器(按钮)附加到 TApp_Core.TMicrobloggingServices_Core.TTwiter 对象(模型)
    • 等待用户点击按钮
    • 给TTwiter(模型)发消息
    • 创建一个线程将请求发送到服务器
    • 解析来自服务器的响应
    • 执行回调以通知请求已被执行并给出结果
    • 释放线程
  • 如果我使用以前的想法,它会不会创建过多的线程并使计算机变得缓慢和不负责任?除非我实现了一个线程池(但使用它非常复杂)。
  • SQLite 3 是否足以将所有数据存储在客户端上?(数据可以是邮件、RSS 提要等......所以随着时间的推移它可能是相当多的数据)。

感谢和抱歉我的英语不好!

0 投票
6 回答
3468 浏览

python - Drupal 或 Wordpress CMS 作为社交网络?

我正在为网络漫画艺术家创建一个社区,他们将能够将他们现有的网站同步到这个网站。

但是,我正在争论我应该使用什么 CMS:Drupal 或 Wordpress。

我听说过 Drupal 的好消息,它真正针对的是社交网络。我实际上在 Drupal 的后端玩了一点,这对我来说似乎很复杂,但我不会放弃完全理解 Drupal 的工作原理。

至于Wordpress,我对Framework非常熟悉。我有能力扩展它来做我想做的事,但我很犹豫,因为我认为这个框架不是为社区构建的(我认为它未来可能会放慢速度)。

我也有一个不相关的问题:我应该使用 Python CMS 吗?我听说了关于 Python 的非常棒的事情,以及它与 PHP 相比要好得多。

感谢您的建议。

0 投票
1 回答
1661 浏览

.net - SharePoint 2010 我的网站与社交网络/微博的自定义代码

即将推出的 SharePoint 2010 具有哪些功能,类似于以下功能:

FriendFeed、Twitter、Google Wave?Flickr 或 Digg(标记和投票)?

您可以通过 SP 2010 “免费”获得多少,还是您仍然需要自己编写代码?有谁知道我的网站中添加了什么?对于一个 2 人的高级开发团队来说,在 6 周内编写代码真的太难了吗?

在我参与未来工作中的一些讨论之前,我试图对此有一个很好的了解。

0 投票
1 回答
179 浏览

social-networking - 我应该为我的业务使用平台还是定制构建解决方案?

我有一个涉及社交网络的想法(注意:它不仅仅是一个常规的社交网站),我想知道我是否应该使用 SocialEngine、Elgg 或其他一些社交网络平台,或者找一个开发人员并创建满足我需求的定制解决方案?

0 投票
2 回答
2217 浏览

ruby-on-rails - 如何在 Ruby on Rails 中拥有插件架构?

我必须在 Ruby on Rails 上建立一个社交网站。网站中的功能可能会不时更改;所以我们需要轻松添加/删除功能。此外,我们可能正在建立另一个社交网站。由于这些原因,我们正在考虑为 RoR 中的社交网站构建一个基本框架,该框架具有安装或卸载框架扩展的功能。

我以前在 Joomla 工作过!CMS 及其用于添加/删除扩展的架构是我所关注的。在 Joomla 中!安装通常有一个管理端,您可以从中添加/删除/自定义扩展。

我是 RoR 的新手,发现很难决定如何做到这一点。任何帮助将不胜感激。

0 投票
6 回答
10060 浏览

caching - 像LinkedIn这样的网站如何有效地在每个人的名字旁边显示一级/二级/三级关系?

我最近搞砸了一次面试,因为一个简单的问题回答得不好:LinkedIn 之类的网站如何有效地显示您与页面上显示的每个人的关系距离(第一/第二/第三)(例如,在人员搜索结果中,工作人员列表中)在公司等)?

<EDIT>我得到了解决方案的基本“技巧”:找到“与我的距离”是一种常见操作(例如,单个页面上 20x+,每个登录会话 100 次),所以你可以做部分“我到的距离” X",缓存它,然后多次重复使用缓存的部分结果,以使其他操作更便宜。我还猜测部分结果可能是我的二级连接,因为“缓存所有三级连接”在 RAM 和 CPU 中的成本太高。</编辑>

但是当试图将这种见解转化为解决方案时,我想出了一个笨拙的答案,涉及为网站上每个人创建二级连接的持久缓存(这在性能上会非常昂贵并且维护起来很复杂),我接受了以一种几乎没有技术意义的方式使用布隆过滤器的莫名其妙的绕道。在得到这样的答案后,我不会雇用自己!

后来,在没有面试压力的情况下思考这个问题,我想出了一个更合理的答案。

  • 构建一种非常快速的方法来获取每批用户 ID 的第一级连接(批量大小高达 ~1000?)。这可能意味着一个由大量 RAM 服务器组成的专用集群,可以将整个网络的第一级连接缓存在内存中。幸运的是,50M 会员 x 平均。每个成员 100 个连接 x 每个成员 ID 4 个字节 = <25GB 缓存在 RAM 中,这对于价格合理的硬件是可行的。而且每天的更改数量将低于 1%,因此保持缓存最新并不难。(请注意,关系数据库可能不是实现此缓存的错误选择,因为“大量随机 I/O”访问模式会扼杀关系数据库的性能。)

  • 当用户登录时,通过获取每个一级连接的一级连接来缓存他或她的二级连接,并粘贴在哈希表中(key = 二级 ID,值 = 连接的一级连接数组你)。还缓存您的第一级连接,这样您就可以通过一次回调远程缓存服务器来拉回第一级和第二级。用户 ID 很容易分区,因此像 memcached 这样的分布式缓存可能会很好地解决这个问题。

  • 对于任何用户 ID,要查找它是否在您的“网络”中以及它与您的关系(第 1、第 2、第 3),请执行以下操作:

    1. 如果 ID 在您的第一级连接中,请停止。
    2. 尝试在缓存的 2 级连接哈希表中查找 ID。如果找到,返回连接你的连接数组。
    3. 获取 ID 的第一级连接,并为每个连接重复步骤 #2。将所有结果聚合到一个数组中并返回它们。
    4. <EDIT>重构为批处理实现(“查找从我到 N 个不同用户的距离”),因此您可以从第 3 步获得所有远程结果,而无需进行 N 个远程调用。</编辑>

但我确信对此有更好的答案。你的是啥呢?如果您想要额外的挑战,请尝试模拟面试情况(无法在 Web 上查找解决方案)。

请注意,这个问题是关于一个最佳解决方案的,不管LinkedIn今天实际上是如何做的,我在上面写了自己的答案后查阅了这个问题。

0 投票
2 回答
3115 浏览

database - 实施LinkedIn的有效方法,例如“您如何连接”功能?

LinkedIn 有一个很酷的功能,在访问某些用户的个人资料时,LinkedIn 会提示您如何通过网络连接到该用户。

假设访问者和个人资料所有者是图中的两个节点,其中节点代表用户,边代表友谊,一个简单的解决方案可以是从两个节点开始到某个级别的 bfs,看看是否有任何交叉点。交叉点将是网络链接节点。

虽然这听起来很简洁,但问题是为了确定每个人的朋友,需要单独的数据库查询。当网络深度超过 2 层时,这将是一个非常耗时的算法。有没有更有效的替代方案?如果没有,我们如何添加更好的硬件支持(并行计算、网格、分布式数据库等)以减少计算所需的时间?