如果我选择模块而不是 MXML 组件,我会得到什么好处?
模块和组件是两个非常不同的东西。模块就像 Windows 中的 DLL 或 Java 中的 Jar 文件。因为它带有一段可以在运行时加载和卸载的代码。因此模块可以包含一个或多个 MXML 组件。它们不会取代 MXML 组件的使用。无论您是否使用模块,您仍将使用 MXML 构建您的应用程序。不幸的是,模块包含许多其他“功能”,这些“功能”并不像 Java 中的 Jar 文件那样简单。
它们有好处也有坏处。您可以通过加载和卸载代码来减少内存占用,但现在字节码大小并不是内存膨胀的主要原因。这实际上是语句如何使用导致内存上升的堆。您可以使用 SWC 在没有模块的情况下轻松地在项目之间共享代码,或者仅通过共享的 SVN 项目简单地共享代码。
模块的其他缺点是它会在您的程序中创建更多边界。从模块中引用对象可能是个问题。使用模块的对象可以引用模块中定义的对象,但反之则不行,因此如果您在组织模块时不小心,最终可能会将代码转储到不属于该模块的模块中。
如果我有明确的需求,我会开始不使用模块然后重构。一旦你开始使用模块,它们只会增加开发开销。
构建 Flex 应用程序的首选和最佳方式是什么?
MVC 或 MVCS。模型视图控制器或模型视图控制器服务。有些人觉得命令比控制器好,但实际上命令是只有一个控制器方法的控制器。这是一个退化的控制器。我喜欢控制器,因为它很容易通过添加一个方法而不是像命令指示的全新类来向控制器添加一个新命令。再加上一个控制器,您可以将屏幕、子系统等的常用功能组合在一起。您可以选择您想要的控制器的粒度。当控制器变得太大时,控制器也很容易被拆分。
MVCS 在没有框架的情况下很容易实现,但是使用框架是一个好主意,因为它可以帮助您的团队了解应用程序是如何组合在一起的。此外,开源软件在为您记录框架方面做得非常好,因此您不必回答很多关于框架的低级问题。好的选择是 Swiz、Parsley 或 Mate。然而,现在大多数人正在远离 Mate 和 Caringorm 转向 Swiz 或 Parsley。 Caringorm 将在未来成为 Parsley,仅供参考。
当您想要进行更多单元测试时,演示模型模式将为您提供帮助,因此了解其工作原理将对您的研究有益。虽然我更多的是对控制器和模型进行单元测试,并为视图或集成测试进行传统的 QA。质量检查要容易得多。
既然应用程序要与后端通信,我们是否需要让前端更复杂?
您必须决定希望前端处理多少复杂性。后台处理是 Flex 的一个弱点,因此有时将其传递给后端是有意义的。我想你会对前端的工作量感到惊讶。 Flex 是一种 RIA,这意味着更多的工作将发生在前端,这是正常的,但您必须决定在哪里做有意义的事情。
我的建议是前端使用 JSON 或 AMF (Blaze DS) 在后端调用简单服务。如果您需要服务器推送之类的东西,您可以使用 ActiveMQ,因为它具有与 Flex 的连接器。
是否有任何基于模块的架构用于示例预览或他们定义了良好架构的任何示例。
模块和架构是相互影响的,但是使用模块并不意味着你有一个定义明确的架构。您只需在其中转储代码的存储桶。模块不会在您的代码中指定职责或组织,这正是架构所做的。正如我所说的,模块就像 DLL,你看不到基于 DLL 的架构,你可以从现成的架子上拿起。像 Swiz 这样的框架将比模块更有助于定义您的架构。我想说的是不要再关注模块了,看看架构然后看看你是否需要它们。