Flex最佳实践?

8

我有一种感觉,即在Flex上很容易找到样例、教程和简单的示例。
似乎更难找到基于真实项目的技巧和良好的实践方法。
以下是如何做到:

  • 如何编写可维护的ActionScript代码?
  • 如何确保清晰的关注点分离。是否有人在实际的Flex项目中使用MVC框架,如Cairngorm、PureMVC或EasyMVC?
  • 如何使用BlazeDS/AMFPHP从服务器获取数据?
  • 如何减少终端用户的延迟?
  • ……
3个回答

5
我在工作中经常使用Flex技术,很乐意为您提供帮助。但是您的问题需要分别写一篇文章来回答 :) 我会尝试给出简短的答案。
可维护的代码:我认为适用于任何面向对象编程语言的规则同样适用于Flex。一些我通常遵循的Flex特定规则包括:使用强类型变量,始终考虑通过事件调度让您的UI组件进行交互(需要更多的初始工作,但后期非常灵活和解耦)。
框架:我已经看过相关资料并阅读了文档,它们非常不错,但我仍然觉得它们的复杂性相对于提供的好处来说并不平衡。无论如何,我很想改变自己的看法。
与服务器通信:目前我正在使用BlazeDS,它运行得非常好。有很多关于此主题的教程,如果您在设置方面遇到任何问题,我很乐意提供帮助。
延迟问题:您是否指客户端/服务器通信方面的延迟?如果是这样,您应该探索BlazeDS实现的各种类型的通道,如仅拉取、双向HTTP轮询、HTTP近实时(Comet)等。如果您需要更多,LiveCycle Data Services ES是BlazeDS诞生的商业实现之一,其中还提供了另一种称为RTMP的协议。它不是HTTP隧道传输,因此可能会在防火墙和代理方面出现问题,但是它提供更好的性能(有一个免费的闭源版本)。在内部网络环境中,我使用标准的HTTP通道,并且即使对于大型数据集,我也没有遇到真正的性能问题。
好吧,这些就是大体内容。如果您有需要,可以更具体地咨询我 :)

感谢您的回复。 关于延迟:我有一个应用程序,主页需要从许多服务获取数据。我以前使用过DWR(ajax框架)将多个服务调用批处理为单个http请求。您知道如何使用flex实现这一点吗?使用命令模式的http通道? - Alexandre Victoor
为什么应该将多个命令批处理在一个HTTP请求中?通常情况下,您不需要编写针对这种低级细节的代码,只需调用远程对象方法(并使用XML配置来描述如何处理它们)。最简单的方法是创建一个临时服务,一次性收集所有数据。 - Cosma Colanicchia

3

0

我发现MVC框架RIAWave link 真的非常棒。它非常轻便易用。相比之下,我觉得Cairngorm和PureMVC的学习曲线都相对陡峭,而且它们都有点过于笨重。RIAWave则不会干扰你的工作,只提供MVC基础。

后端的AMFPHP也非常好用。AMFPHP还有一个Apache模块,可以在C语言中处理序列化/反序列化发送和接收的数据,速度非常快。

如果担心延迟问题,您需要确保选择一个良好的Web主机,甚至部署到多个数据中心,以使用户始终接近服务器。不过现在担心这些似乎还为时过早。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接