在使用C#或Java等其他语言构建基于GUI的大型应用程序时,我们有各种模式,如MVP,MVC,MVVM,甚至像Prism(WPF / Silerlight)这样的完整指导包,可以帮助我们保持代码的可维护性,可扩展性和将应用程序的复杂性保持在理智水平。
但是当谈到用html / javascript编写的大型RIA应用程序时,我发现很难找到任何非常好的资源。
在html / javascript中创建大型RIA应用程序(用于创建Gmail,Google日历,Google文档等应用程序)有什么做点和不做?
答案 0 :(得分:3)
富Internet应用程序的开发仍然是一个非常年轻的主题,并且有许多不同的方法,每天都会出现越来越多的问题。此外,JavaScript与企业开发人员习惯使用的语言完全不同。
你不应该做的是试图避免直接在JavaScript中开发。当然有许多框架似乎可以帮助你绕过JS部分(GWT和.NET Framework AJAX的东西做得相当不错),但是你永远无法充分利用语言本身的潜力和您的富Internet应用程序将永远绑定到您的服务器端编程语言/框架及其功能,这根本不是必需的,在我看来也是一个糟糕的设计。我会尽可能地将服务器端编程与客户端编程分开。与旧式Web应用程序不同,您可以异步请求和处理任何数据,因此您的Web服务器无需生成任何HTML(生成我的意思是使用服务器端语言生成HTML)。随着服务器端数据与客户端表示之间的分离,您将失去RIA开发可能带来的其他方法的许多复杂性(例如尝试在旧式服务器端MVC框架中进行压缩)。
在客户端,你取决于你喜欢的选择。有许多不同的框架遵循不同的想法。您可以将重点放在DOM manipulation,基于组件的focus on GUI elements或一个MVC pattern客户端......等等。
答案 1 :(得分:1)
模式与语言无关。我所知道的javascript / html并没有什么特别之处。好吧,除了模块模式,但这不是一个真正的应用程序设计,它更多的是风格。
由于你来自基于C#Java CLASS的大型,严格,静态,面向对象的世界,我建议你看一下像lisp和haskell这样的函数式编程语言,看看那些的设计模式,如果你正在寻找新鲜有趣的东西。 Javascript可以容纳功能语言模式或面向对象的模式。
通过javascript.crockford.com阅读,让您了解javascript中可能出现的内容,以及哪些样式模式有意义。
应用程序设计在每种语言中基本相同。