在AngularJS的领导者Igor Minar的这篇文章中 , MVC vs MVVM vs MVP 。 这是一个多么有争议的话题,许多开发人员可以花费数小时来讨论和争论。 多年来,AngularJS更接近于MVC(或者更确切地说是它的一个客户端变体),但是随着时间的推移以及许多重构和API改进,现在更接近于MVVM – $ scope对象可以被视为ViewModel由一个我们称之为Controller的函数来装饰。 能够将框架分类并将其放入MV *桶中的一个具有一些优点。 它可以帮助开发人员更轻松地创build一个代表正在使用框架构build的应用程序的心智模型。 它也可以帮助build立开发人员使用的术语。 话虽如此,我宁愿看开发人员build立devise良好,并关注分离的踢屁股的应用程序,而不是看他们浪费时间争论MV *废话。 为此,我在此声明AngularJS是MVW框架 – Model-View-Whatever 。 无论什么地方代表着“ 无论你为什么工作 ”。 Angular为您提供了很大的灵活性,可以很好地将表示逻辑从业务逻辑和表示状态中分离出来。 请使用它来提高您的工作效率和应用程序的可维护性,而不是对一天结束时的事情进行激烈的讨论。 有没有在客户端应用程序中实现AngularJS MVW(Model-View-Whatever)devise模式的build议或指导原则?
有没有人有一个很好的资源实施共享对象池战略的有限资源的Sql连接池? (即完全实现它是线程安全的)。 为了跟进@Aaronaught的澄清要求,池的使用将是负载平衡请求到外部服务。 把它放在一个可能更容易立即理解的场景中,而不是我的直接情景。 我有一个会话对象,其function类似于NHibernate的ISession对象。 每个独特的会话pipe理它连接到数据库。 目前我有1长时间运行的会话对象,并遇到问题,我的服务提供商是速率限制我个人会话的使用。 由于他们没有期望将一个会话视为一个长期运行的服务帐户,他们显然把它视为一个锤击他们的服务的客户端。 这使我想到我的问题,而不是有一个单独的会话,我会创build一个不同的会话池,并跨越这些多个会话将请求分离到服务,而不是像我以前那样创build一个焦点。 希望背景提供一些价值,但直接回答你的一些问题: 问:创build对象是否昂贵? 答:没有对象是一个有限的资源池 问:他们会被频繁获得/释放吗? 答:是的,他们可以再次想到NHibernate的ISessions,其中1通常是在每个页面请求期间获取和发布的。 问:简单的先到先得的服务是否足够,还是需要更聪明的东西,即能够防止饥饿? 答:一个简单的循环型分布就足够了,通过饥饿我假设你是指如果没有可用的会话,呼叫者被阻止等待发布。 这是不适用的,因为会话可以由不同的呼叫者共享。 我的目标是分配使用跨多个会话,而不是一个单一的会议。 我认为这可能与对象池的正常使用有所分歧,这就是为什么我最初离开这个部分并计划只是为了适应模式,允许共享对象,而不是让饥饿的情况发生。 问:关于优先级,懒惰与急切加载等事情呢? 答:不涉及优先级,为了简单起见,假设我将在创build池本身时创build可用对象池。
有人可以解释我是什么软件框架? 为什么我们需要一个框架? 框架如何使编程更容易?
一位面试官问我: Observer和Observable是什么,我们应该什么时候使用它们? 我没有意识到这些条款,所以当我回到家时,我开始使用关于Observer和Observable Googlesearch,并从不同的资源中find了一些要点: 1) Observable是一个类, Observer是一个接口。 2) Observable类保持观察者列表。 3)当一个Observable对象被更新时,它调用每个Observers的update()方法来通知它,它被改变了。 我发现这个例子: import java.util.Observable; import java.util.Observer; class MessageBoard extends Observable { public void changeMessage(String message) { setChanged(); notifyObservers(message); } } class Student implements Observer { @Override public void update(Observable o, Object arg) { System.out.println("Message board changed: " + arg); } } public class MessageBoardTest { public […]
我有一个函数parseQuery,它将SQL查询parsing为该查询的抽象表示forms。 我即将编写一个函数,它将抽象表示查询并返回一个SQL查询string。 我应该怎么称呼第二个function?
我正在为我们的页面(社交游戏types)构buildFacebook风格通知系统,现在我正在研究devise此类系统的最佳方式。 我不知道如何推送通知给用户或类似的东西(现在甚至)。 我正在研究如何在服务器上构build系统(如何存储通知,在哪里存储它们,如何获取它们等)。 所以…我们有一些要求: 在高峰时间,我们有大约1k个并发login用户(还有更多的客人,但是他们在这里并不重要,因为他们不会有通知),这会产生许多事件 会有不同types的通知(用户A添加了你作为朋友,用户B评论了你的个人资料,用户C喜欢你的形象,用户D在游戏X上击败了你,…) 大多数事件会为1个用户生成1个通知(用户X已经喜欢您的图片),但是会有一个事件会生成很多通知的情况(例如用户Y的生日) 通知应该组合在一起; 如果像一些图像这样的四个不同的用户,该图像的所有者应该得到一个通知,说明四个用户喜欢图像,而不是四个单独的通知(就像FB一样) 好的,所以我在想,我应该创build一个队列,在事件发生的时候存储事件。 然后,我会有一个后台工作( gearman ?),看看这个队列,并根据这些事件生成通知。 这个工作然后将通知存储在每个用户的数据库中(所以如果一个事件影响10个用户,将会有10个单独的通知)。 然后,当用户打开一个包含通知列表的页面时,我会阅读所有这些通知(我们正在考虑将其限制为100个最新通知),并将它们组合在一起,然后显示出来。 我很关心这个方法: 复杂的地狱:) 是数据库最好的存储在这里(我们正在使用MySQL),或者我应该使用别的东西(redis似乎也是一个很好的适合) 我应该存储什么作为通知? 用户ID,发起事件的用户ID,事件types(以便我可以将它们分组并显示适当的文本),但是我不知道如何存储通知的实际数据(例如,图像的URL和标题被喜欢)。 我应该在生成通知时“烘烤”这些信息,还是应该存储受影响的logging(图像,configuration文件,…)的ID,并在显示通知时将信息从数据库中拉出。 性能应该可以在这里,即使我不得不在显示通知页面时dynamic处理100个通知 每个请求可能的性能问题,因为我将不得不向用户显示未读通知的数量(这可能是一个问题,因为我会将通知分组在一起)。 这可以避免,虽然如果我在后台,而不是即时生成的通知(他们在哪里分组)的视图 那么您对我提出的解决scheme和我的担忧有什么看法? 如果您认为我应该提及其他与此相关的内容,请发表评论。 哦,我们正在使用PHP作为我们的页面,但这不应该是我认为的一个重要因素。
战略devise模式与国家devise模式有什么区别? 我在网上浏览了不less文章,但没有明确区分。 有人能解释一下外行的差异吗?
我一直在寻找有关Facebook的架构文章/信息,他们面临的挑战和方法。 他们使用什么和他们为什么使用。 他们是如何扩展规模的?他们所做的devise决定是什么等等。主要的基础是学习。 了解处理如此巨大stream量的网站会给build筑师等提供很多指导,以便在devise新网站时记住某些内容。 我分享我发现的东西。 Facebook科学与社会图表(video) 在Facebook上进行缩放 Facebook聊天架构 Facebook博客 Facebook Cassandrabuild筑与devise Facebook工程笔记 Quora – Facebook架构 面向600M用户的Facebook Hadoop及其在Facebook的使用 Erlang在Facebook:聊天架构 Facebook性能caching Facebook连接架构 我有2个更多的链接,但无法发布,由于在这个网站的限制。 另外,如果有人有更好的东西,请分享(不需要仅与Facebook相关)。 PS –我无法find分享这项研究的好地方,因此这个倡议。 希望这有助于某人。
我正在寻找任何资源,提供最佳实践,devise模式和使用Python的SOLID原则的例子。
任何人都看到这个? 我有一个大型的Visual Studio项目,不断添加[Subtype]Designer[/Subtype]到我的.vcproj然后在下一个打开和closures的项目中删除它。 StoredImageControl.cs只定义了一个类。 任何人都知道如何closures它,因为它真的搞乱了我的版本控制。 这是之前: <EmbeddedResource Include="StoredImageControl.resx"> <DependentUpon>StoredImageControl.cs</DependentUpon> </EmbeddedResource> 这是之后 <EmbeddedResource Include="StoredImageControl.resx"> <DependentUpon>StoredImageControl.cs</DependentUpon> <SubType>Designer</SubType> </EmbeddedResource>