在我的大学里,我必须制作一个项目:Adobe Flex上的XMPP客户端。在这个场合,我决定学习任何架构框架并在我的项目中使用它。你能告诉我,XMPP客户端最好的框架是什么?这个或那个框架的优点和缺点是什么? 谢谢。
答案 0 :(得分:3)
Timofei,
很抱歉这样做,但我不能给你一个直接的答案,就像Flextras说的那样,它太依赖于场景。
例如,当我正在为一个家人或朋友说妈妈和流行音乐网站时,一般来说我不需要任何框架来完成网站的目标,并且以足够干净的方式这样做,让我继续在未来的工作(并不担心自己在新版本中弃用框架错误等等,假设我保存了源代码)。
如果我正在与一群开发人员合作,选择一个允许我们独立工作而不是紧密地结合我们的课程的架构,那么某种框架就成了讨论(最近这个讨论已经转到了SWIZ或Robotlegs,以及Flextras提到似乎更多的开发人员偏爱Robotlegs,尽管我还没有听到或看到任何一方面的任何实质性争论。)
我觉得你在学校里探索这种事情很棒,但在我开始工作之前,我还没有真正接触到这一切,但与此同时你不想使用火箭筒来杀了一只苍蝇。当我第一次被雇用时(几年前)Cairngorm被大量使用(并且很大程度上仍在使用),虽然这种方法运行得相当好,但我们已经有一些扩展了它(我已经是一些开发人员了)从头开始构建一个MVC架构只是一个说话者/推动者。它完成了Cairngorm所做的一切以及更多的工作,现在我们有内部人员对MVC框架的内部工作有一个非常清楚的理解,显然如果框架已经“足够”,它将经历“足够”的用例/测试你不需要知道内部工作,但我当然不认为它会伤害。
因为,你没有在一个紧迫的截止日期之前,我建议你只是在一个小项目中给出每一个镜头,看看它们是如何发挥作用的,你可能会意识到你看不到任何实质性的差异,直到你开始进入一个更复杂的程序(你的程序看起来可能看起来更复杂的是基本形式的RobotLegs或SWIZ,但是一旦将它变成更高级的东西,你可能最终会使用其中一个来减少自己的代码) 。此外,这将比其他任何人对特定框架的忠诚度更有帮助。
肖恩
答案 1 :(得分:3)
使用框架的几个原因:
通常会产生一个更加结构化的应用程序,其他开发人员可以理解,并且您可以在几个月或几年后回来查看它时理解。
您可以从其他开发人员花费的时间和精力中获益,这些开发人员已经追捕并修复了框架错误。如果你自己动手,就会浪费这些时间。
在尝试找出解决特定问题的最佳方法时,通常更容易寻求帮助,因为您的应用程序的结构是熟悉该框架的任何其他人都可以快速解析的。
< / LI>作为开发人员,您可以通过广泛使用的框架获得技能,从而使自己更具市场价值。
不使用框架的原因:
对于它的价值我目前正在使用Robotlegs进行大多数项目,这真的让我的生活更轻松。一旦你克服了最初的学习曲线,它就非常简单了。快速合作。
答案 2 :(得分:2)
“最好”是主观的。
框架旨在解决问题。我建议你首先定义在这个项目中需要解决的问题,然后查看框架,看看它们是否有任何帮助。
我冷冷地告诉你,Cairngorm是最常用的,但最少谈论。我可以告诉你,Robotlegs现在是社区中最受欢迎的。我可以告诉你,Swiz刚刚发布了一个新版本。我可以告诉你,PureMVC支持多种语言。
这些都不会证明某个框架适合您。最后,它的框架选择并不重要。
答案 3 :(得分:1)
我正在使用robotlegs并且我对它非常满意。它使用依赖注入并利用MVCS设计模式,根据您的情况,该模式应该对您必须对服务器发出的请求有用。它很简单,并没有功能丰富。除了它的简单性之外,我找不到任何大的劣势(如果这可以被认为是一个缺点)。
答案 4 :(得分:1)
我将在此列表中再添加一条建议:欧芹框架非常棒。我们已经在一个非常庞大,复杂的Flex应用程序中使用它超过18个月,该应用程序正面向我们的商业产品。我也在一些较小的辅助工具和一些私人项目中使用它,并继续对它非常满意。
这是一个IOC风格的框架,它真的试图尽可能地避开你的方式。但请注意,它特意不尝试在您的代码上强加架构风格。您可以按照自己的意愿关注MVC,MVP或任何内容。因此,它的学习曲线比这里提到的其他框架要少,但它在构建自己的代码时为你提供的“指导”数量也少了。
答案 5 :(得分:1)
正如人们已经说过的那样,如果这是一个小型项目,你可能不需要一个框架,你最终会对它进行工程设计。
如果这是一个更大的项目,我已经使用了Cairngorm和Swiz(并调查了其他的那些。我们已经离开了Cairngorm,因为它只是创建了太多的锅炉板代码,你必须写。它也遵循较旧的模式,需要对modellocator和大型控制器类进行大量依赖。
Swiz是轻量级的,基于更现代的依赖注入。它更易测试,轻便,便携且灵活。它在这里和那里有一些怪癖,但通常你可以在谷歌小组或他们的在线文档中找出这些。
答案 6 :(得分:0)
作为旁注,ActionScript上的XMPP不是很成熟。作为早期建议,请勿尝试使用Google Talk服务器进行测试。他们不像XIFF设计支持的那样做XMPP(至少从2个月前开始)。如果你想要自己的jabber / xmpp服务器,这里有一个建议:下载oracle的虚拟盒并在本地运行你自己的ejabberd服务器进行测试。 (http://www.turnkeylinux.org/ejabberd)