【发布时间】:2008-09-27 10:55:36
【问题描述】:
PureMVC 框架的一个既定目标是避免平台依赖性以便可移植。考虑到由于语言和 API 的差异,应用程序代码将始终严重依赖于平台,并且避免平台依赖会使框架重新发明轮子和/或仅提供最小公分母功能集,可移植性以何种方式作为应用程序开发人员,该框架对我有什么好处?
【问题讨论】:
标签: apache-flex puremvc
PureMVC 框架的一个既定目标是避免平台依赖性以便可移植。考虑到由于语言和 API 的差异,应用程序代码将始终严重依赖于平台,并且避免平台依赖会使框架重新发明轮子和/或仅提供最小公分母功能集,可移植性以何种方式作为应用程序开发人员,该框架对我有什么好处?
【问题讨论】:
标签: apache-flex puremvc
我使用过 PureMVC。他们试图用很多语言来实现他们的东西。关于最小公分母,你可能是对的,但总的来说,它不是一个糟糕的框架,而且我在 PureMVC 中看到了一个非常好的 AS3 应用程序。
我不认为他们在谈论移植实际代码的可移植性。还有更多的想法是您正在使用通用的 MVC 架构,您可以将其应用于其他项目和其他语言。
他们试图说,如果您熟悉 PureMVC 模式,您可能会接触到新的 PureMVC 代码库,即使它是另一种语言,并且您已经了解这方面的情况。
您也可以说,开发出良好的 PureMVC 技能的开发人员可能会养成良好的习惯,这些习惯会随着他们从一种语言转换到另一种语言。但话又说回来,也许不是……因为你提到的原因。
【讨论】:
我们现在已经在两个项目中使用 PureMVC,在我看来,尝试语言独立是一个很大的负担。
如果语言不是很相似,那么直接进入项目的承诺似乎与我无关知道解决问题的方法很有用,但“简单”的模式就足够了。
但是,我也不完全同意项目使用的各种模式的使用,因此我们选择在下一个项目中不使用它可能与这两个问题有关,而不仅仅是语言/平台的尝试独立。
【讨论】:
PureMVC 的可移植性将在您迁移到或以另一种语言重新实现时为您提供帮助。
我数不清有多少平台和语言编写的代码现已灭绝,即使我仍然拥有源代码,它也几乎毫无价值,必须从头开始重写今天,因为代码通常是 100% 特定于平台的。
但所有应用程序代码都不必严重依赖于平台。视图组件和服务(您的应用程序的边界)必然是,但夹在边界之间的应用程序逻辑不一定是。
PureMVC 的范围真的很窄;只是为了帮助您将代码拆分为 MVC 元模式所禁止的三层。没有理由将此代码与您的平台紧密绑定才能达到最佳状态。
当需要迁移时,您会发现框架参与者及其角色、职责和协作保持不变。这使您可以处理语言的语法差异,重新创建视图组件和服务。至少您不必完全重新架构。
对于以不同语言重新实现的情况,假设您正试图通过您的应用占领移动市场的重要部分。市场如此分散,您必须在 2 个或更多 Windows Mobile、iPhone、Flash 和 Java 上实现相同的程序。当然,您可能会有不同的团队负责应用程序,但为什么会有完全不同的架构呢?使用 PureMVC,您可以为应用程序的所有版本使用单一架构。
-=悬崖>
【讨论】:
对于选择不使用 Flex 框架的 Flash 平台开发人员来说,PureMVC 是唯一真正的选择。对于某些项目来说,Flex 的规模成本太高了(确实发生了!)。
我喜欢在 Flex 中制作原型,然后在应用程序接近完成时将其撕掉并用自定义组件替换我的视图。 PureMVC 使用它的 Mediator 模式使这变得非常容易。我不确定是否有任何其他框架可以让我使用此工作流程。
就我个人而言,我认为 PureMVC 在它的可移植性目标上走得太远了:我喜欢它与 Flash 和 Flex 一起工作的事实(出于上面提到的原因),但我觉得它应该停在那里,并利用原生Flash Player 事件架构。
【讨论】:
是否有使用 PureMVC 跨多个平台构建和移植应用程序的示例?
我的公司正在构建一个我们可能需要移植到其他平台的 Flex 应用程序:
如果 PureMVC 可以简化移植和维护,我正在考虑将其作为一个框架。我很想知道其他人是否将 PureMVC 应用程序移植到了不同的平台,以及他们在移植和在多个平台上并行开发应用程序方面的经验。
干杯,
卡提克
【讨论】:
PureMVC 的内部工作(Flash 事件等)不依赖于平台。 因此,虽然它不会让移植变得更容易,但它可以通过向我们展示它友好而熟悉的面孔来帮助我们,无论我们选择去哪里;-)
【讨论】: