【问题标题】:How does the portability of PureMVC benefit the application developer?PureMVC 的可移植性如何使应用程序开发人员受益?
【发布时间】:2008-09-27 10:55:36
【问题描述】:

PureMVC 框架的一个既定目标是避免平台依赖性以便可移植。考虑到由于语言和 API 的差异,应用程序代码将始终严重依赖于平台,并且避免平台依赖会使框架重新发明轮子和/或仅提供最小公分母功能集,可移植性以何种方式作为应用程序开发人员,该框架对我有什么好处?

【问题讨论】:

    标签: apache-flex puremvc


    【解决方案1】:

    我使用过 PureMVC。他们试图用很多语言来实现他们的东西。关于最小公分母,你可能是对的,但总的来说,它不是一个糟糕的框架,而且我在 PureMVC 中看到了一个非常好的 AS3 应用程序。

    我不认为他们在谈论移植实际代码的可移植性。还有更多的想法是您正在使用通用的 MVC 架构,您可以将其应用于其他项目和其他语言。

    他们试图说,如果您熟悉 PureMVC 模式,您可能会接触到新的 PureMVC 代码库,即使它是另一种语言,并且您已经了解这方面的情况。

    您也可以说,开发出良好的 PureMVC 技能的开发人员可能会养成良好的习惯,这些习惯会随着他们从一种语言转换到另一种语言。但话又说回来,也许不是……因为你提到的原因。

    【讨论】:

      【解决方案2】:

      我们现在已经在两个项目中使用 PureMVC,在我看来,尝试语言独立是一个很大的负担。

      如果语言不是很相似,那么直接进入项目的承诺似乎与我无关知道解决问题的方法很有用,但“简单”的模式就足够了。

      但是,我也不完全同意项目使用的各种模式的使用,因此我们选择在下一个项目中不使用它可能与这两个问题有关,而不仅仅是语言/平台的尝试独立。

      【讨论】:

      • “所以我们选择在下一个项目中不使用它可能与这两个问题有关......”。你们打算用什么代替?必须在我的下一个项目中应用一个框架,决定要做什么。
      • 当前的选择是不使用“主”框架来构建应用程序,而只是根据一些内部和每个项目的约定进行编码。大多数时候,我们将代码分成模块并遵循 MVC 约定,但不是以框架强制执行的方式。 (自动)连接解决方​​案没有 Java 项目中使用的那些好处,所以我只是手动/代码连接我的组件。
      【解决方案3】:

      PureMVC 的可移植性将在您迁移到或以另一种语言重新实现时为您提供帮助。

      我数不清有多少平台和语言编写的代码现已灭绝,即使我仍然拥有源代码,它也几乎毫无价值,必须从头开始重写今天,因为代码通常是 100% 特定于平台的。

      但所有应用程序代码都不必严重依赖于平台。视图组件和服务(您的应用程序的边界)必然是,但夹在边界之间的应用程序逻辑不一定是。

      PureMVC 的范围真的很窄;只是为了帮助您将代码拆分为 MVC 元模式所禁止的三层。没有理由将此代码与您的平台紧密绑定才能达到最佳状态。

      当需要迁移时,您会发现框架参与者及其角色、职责和协作保持不变。这使您可以处理语言的语法差异,重新创建视图组件和服务。至少您不必完全重新架构。

      对于以不同语言重新实现的情况,假设您正试图通过您的应用占领移动市场的重要部分。市场如此分散,您必须在 2 个或更多 Windows Mobile、iPhone、Flash 和 Java 上实现相同的程序。当然,您可能会有不同的团队负责应用程序,但为什么会有完全不同的架构呢?使用 PureMVC,您可以为应用程序的所有版本使用单一架构。

      -=悬崖>

      【讨论】:

      • 说“没有理由让 [应用程序] 代码必须与您的平台紧密联系才能达到最佳状态”,这让我觉得很幼稚。你是什​​么意思?当然,我的应用程序代码将与平台绑定,它是为该平台编写的,旨在充分利用它的优势。如果我需要更改平台,我希望使用新平台的所有功能,而不是试图适应某种最低公分母。
      • 我说的是“但所有应用程序代码都不必严重依赖于平台。” - 操作词是 ALL。它就像汽车中的线束,将数据从传感器传输到仪表板。从一辆车到另一辆车的不同之处在于传感器和表盘(如服务和视图)。中间的导线只需要将电子从一端传送到另一端。不必为特定传感器或表盘专门制作,以使传感器和表盘有效通信。
      【解决方案4】:

      对于选择不使用 Flex 框架的 Flash 平台开发人员来说,PureMVC 是唯一真正的选择。对于某些项目来说,Flex 的规模成本太高了(确实发生了!)。

      我喜欢在 Flex 中制作原型,然后在应用程序接近完成时将其撕掉并用自定义组件替换我的视图。 PureMVC 使用它的 Mediator 模式使这变得非常容易。我不确定是否有任何其他框架可以让我使用此工作流程。

      就我个人而言,我认为 PureMVC 在它的可移植性目标上走得太远了:我喜欢它与 Flash 和 Flex 一起工作的事实(出于上面提到的原因),但我觉得它应该停在那里,并利用原生Flash Player 事件架构。

      【讨论】:

        【解决方案5】:

        是否有使用 PureMVC 跨多个平台构建和移植应用程序的示例?

        我的公司正在构建一个我们可能需要移植到其他平台的 Flex 应用程序:

        • Silverlight(可能)
        • 移动(可能)
        • 桌面(也许——不仅仅是 AIR!)
        • 电视机(也许最终)

        如果 PureMVC 可以简化移植和维护,我正在考虑将其作为一个框架。我很想知道其他人是否将 PureMVC 应用程序移植到了不同的平台,以及他们在移植和在多个平台上并行开发应用程序方面的经验。

        干杯,

        卡提克

        【讨论】:

          【解决方案6】:

          PureMVC 的内部工作(Flash 事件等)不依赖于平台。 因此,虽然它不会让移植变得更容易,但它可以通过向我们展示它友好而熟悉的面孔来帮助我们,无论我们选择去哪里;-)

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2015-07-25
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多