html/javascript RIA开发中的模式有哪些?

4

在构建基于GUI的大型应用程序时,像C#或Java这样的其他语言中,我们有各种模式,如MVP、MVC、MVVM,甚至是完整的指导包,如Prism(WPF/Silerlight),帮助我们保持代码可维护性、可扩展性,并将应用程序的复杂性保持在合理水平。

但是,当涉及使用html/javascript编写的大型RIA应用程序时,我发现很难找到真正好的资源。

创建html/javascript的大型RIA应用程序(例如Gmail、Google日历、Google文档)的注意事项是什么?

2个回答

3
开发富互联网应用程序仍然是一个非常年轻的话题,有许多不同的方法,每天都会涌现出更多。此外,JavaScript与企业开发人员所熟悉的语言相当不同。
我认为你不应该尝试避免直接使用JavaScript进行开发。当然,有许多框架似乎可以帮助您绕过JS部分(GWT和.NET Framework AJAX等做得相当不错),但您将永远无法使用语言本身的全部潜力,您的富互联网应用程序将永远绑定在服务器端编程语言/框架及其能力上,这完全没有必要,而且在我看来也是一种糟糕的设计。我会尽可能地将服务器端编程与客户端编程分离。与老式的Web应用程序不同,您可以异步请求和处理任何数据,因此根本不需要您的Web服务器生成任何HTML(我指的是使用服务器端语言生成HTML)。通过在服务器端数据和客户端表示之间进行分离,您将失去RIA开发可能带来的其他方法的复杂性(例如尝试将其压缩到传统的服务器端MVC框架之一中)。
在客户端方面,你可以根据自己的偏好选择不同的框架。有许多不同的框架遵循不同的理念。你可以选择那些注重DOM操作的框架,以GUI元素为重点的组件化框架,或者是遵循客户端MVC模式的框架等等。

感谢您的输入。我一直在研究您提供的javascriptmvc框架。还有一个由Aptana团队开发的有趣项目叫做ActiveJS(http://activerecordjs.org/),看起来非常有前途。 - Egil Hansen
嗯,我喜欢 Aptana 的产品,但 ActiveJS 似乎非常 Jaxer 导向(因此即使两侧都有 JavaScript,也无法达到客户端和服务器的松耦合)。但我肯定会看看它。 - Daff

1

模式(Patterns)在相当程度上独立于编程语言。我所知道的,没有什么特定于Javascript/HTML的内容。除了模块模式,但那不是应用设计的事情,更多的是关于风格(style)。

由于你来自基于大而笨重、坚定、静态的C# Java类世界,我建议你看一下函数式编程语言,例如lisp和haskell,看看它们的设计模式,如果你正在寻找新鲜有趣的东西。 Javascript 可以容纳函数式语言模式或面向对象模式。

请浏览javascript.crockford.com,以便让您了解Javascript中可能发生的事情类型以及何种风格模式是合理的。

无论哪种语言,应用程序设计基本上都是相同的。


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