草庐IT

cocoa-design-patterns

全部标签

database-design - 使用 MongoDB 的类似 Twitter 的应用程序

我正在制作一个使用经典“关注”机制的应用程序(Twitter和网络上的许多其他应用程序都使用这种机制)。我正在使用MongoDB。不过,我的系统有一点不同:用户可以关注组个用户。这意味着,如果您关注一个群组,您将自动关注属于该群组的所有用户。当然,用户可以属于多个组。这是我想出的:当用户A关注用户B时,用户B的id被添加到用户A文档中的嵌入数组(称为following)为了取消关注,我从following数组中删除了被关注用户的id组的工作方式相同:当用户A关注groupX时,groupX的id被添加到following大批。(我实际上添加了一个DBRef以便我知道连接是针对用户还是组

MongoDB Schema Design - 实时聊天

我正在启动一个项目,我认为它特别适合MongoDB,因为它提供的速度和可扩展性。我目前感兴趣的模块是实时聊天。如果我要在传统的RDBMS中执行此操作,我会将其拆分为:channel(一个channel有很多用户)用户(一个用户有一个channel但有很多消息)消息(消息有用户)为了这个用例的目的,我想假设一次通常有5个channel处于事件状态,每个channel每秒最多处理5条消息。需要快速的特定查询:获取新消息(可能基于书签、时间戳或递​​增计数器?)向channel发布消息验证用户是否可以在channel中发帖考虑到MongoDB的文档限制为4mb,您将如何设计架构?你的会是什么

database-design - MongoDB 存储大量指标/分析数据的方法

我们正计划使用MongoDB来存储大量分析数据,例如查看次数和点击次数。我不确定在MongoDB中构建文档以帮助查询和减小数据库大小的最佳方式。我们需要根据页面名称、客户端和操作类型来记录操作。理想情况下,我们需要下降到年/月/日/小时级别的统计数据,我们不需要或关心每秒或每分钟的浏览量。虽然这个文档结构看起来不错,但我知道100个访问者会生成100个新文档。{"_id":ObjectId("4dabdef81a34961506040000"),"pagename":"Hello","action":"view","client":"client-name","time":Date("

database-design - 用于博客的 mongodb 架构设计

您将如何为具有基于文档的数据库(mongodb)的类似博客的网站设计架构。该站点具有以下对象:用户、文章、评论。用户可以在文章中添加评论。每个用户也可以对每个评论进行一次投票。我希望能够高效地进行这些查询:1.获得文章A、文章A的评论和每条评论的票数2.获取用户B对所有文章的所有评论3.获取用户B投票给的所有评论我的第一次尝试是将文章和评论放在单独的集合中,评论可以包含投票给它的用户列表。这使得查询1和2变得简单。对于3,我添加了Vote集合,用于跟踪用户的投票。存在一些明显的缺点,例如复制用户投票数据,并且查询1需要两次调用数据库。有更好的方法吗?Article{"user_id"}

c++ - 通过元编程将 c++ 简化为objective-c/cocoa 桥接?

在纯C++世界中,我们可以在编译时生成不同组件或接口(interface)之间的接口(interface)或粘合代码,使用基于模板的编译时和运行时技术的组合(例如,主要是自动编码到/从使用遗留类型的调用)。当不得不将C++应用程序与Objective-C/Cocoa接口(interface)以用于GUI、系统集成或IPC时,由于类型不严格,事情变得更加困难-但通常不需要平面的可重复接口(interface)层:瘦桥接委托(delegate)必须定义或编写转换代码到语言桥接调用。如果您必须处理大小不一的接口(interface)并希望避免基于脚本的代码生成,这很快就会变得很麻烦,而且每次

c++ - "Curiously Recurring Template Pattern"的实际用途

“CuriouslyRecurringTemplatePattern”有哪些实际用途?常见的“countedclass”示例对我来说并不是一个令人信服的示例。 最佳答案 Simulateddynamicbinding.在保留一些分层优势的同时避免虚函数调用的成本对于可以在我目前正在从事的项目中完成的子系统来说是一个巨大的胜利。 关于c++-"CuriouslyRecurringTemplatePattern"的实际用途,我们在StackOverflow上找到一个类似的问题:

c# - MongoDB C# : ID Serialization best pattern

我有一个类User,我需要在Web服务中使用它们。那么问题是,如果我尝试序列化BsonObjectId类型的Id,我会看到有一个空属性,有一个空属性,等等......我已经按顺序写了这个解决方法,这是一个很好的解决方案吗?publicpartialclassi_User{[BsonId(IdGenerator=typeof(BsonObjectIdGenerator))][NonSerialized]publicBsonObjectId_id;publicStringId{get{returnthis._id.ToString();}}}通过这种方式,我可以将_Id保留为BsonObj

c# - MongoDB C# : ID Serialization best pattern

我有一个类User,我需要在Web服务中使用它们。那么问题是,如果我尝试序列化BsonObjectId类型的Id,我会看到有一个空属性,有一个空属性,等等......我已经按顺序写了这个解决方法,这是一个很好的解决方案吗?publicpartialclassi_User{[BsonId(IdGenerator=typeof(BsonObjectIdGenerator))][NonSerialized]publicBsonObjectId_id;publicStringId{get{returnthis._id.ToString();}}}通过这种方式,我可以将_Id保留为BsonObj

design-patterns - Golang 自动包含可扩展应用程序

我对Go还很陌生,我很好奇是否存在可扩展应用程序的既定设计模式。例如,在我的源代码中,我有一个扩展目录,我在其中为我的程序放置了不同的应用程序特定扩展。我目前按名称分别在我的主函数中加载每个。我想让程序在编译时自动包含我的扩展。为了清楚起见,我并不想在运行时动态加载扩展。我只想为程序添加一个扩展,如下所示:将文件放到扩展文件夹中重新编译如果Go无法做到这一点,那么我会尽力而为,但我只是认为必须有更好的方法来做到这一点。为了更清楚地展示我想要简化的内容,以下是我现在所做的示例:main.gopackagemainimport("github.com/go-martini/martini"

design-patterns - 单例

如何在Go编程语言中实现单例设计模式? 最佳答案 抛开单例模式是否是一个好主意的争论,这里有一个可能的实现:packagesingletontypesinglestruct{Ointerface{};}varinstantiated*single=nilfuncNew()*single{ifinstantiated==nil{instantiated=new(single);}returninstantiated;}single和instantiated是私有(private)的,但New()是公共(public)的。因此,您不能直