99 javascript architecture design-patterns web-applications singlepage
如何在客户端构建复杂的单页JS Web应用程序?具体来说,我很好奇如何根据模型对象,UI组件,任何控制器和处理服务器持久性的对象来干净地构建应用程序.
MVC起初似乎很合适.但是,如果UI组件嵌套在不同的深度(每个组件都有自己的方式对模型数据进行操作/对模型数据作出反应,并且每个生成事件本身可能会或可能不会直接处理),看起来MVC似乎不能干净利用.(但如果情况并非如此,请纠正我.)
-
(这个问题产生了两个使用ajax的建议,除了最简单的单页应用程序之外,其他任何东西显然都需要.)
小智 35
PureMVC/JS的 MVC架构是最优雅的IMO.我从中学到了很多东西.我还发现Nicholas Zakas的可扩展JavaScript应用程序架构有助于研究客户端架构选项.
另外两个提示
Has*_*ith 13
尼古拉斯·扎卡斯(Nicholas Zakas)的演讲由迪恩分享是一个非常好的开始.我也在努力回答同一个问题一段时间.在做了几个大规模的Javascript产品之后,考虑将学习分享作为参考架构,以防有人需要它.看一下:
它解决了常见的Javascript开发问题,例如:
等等
Joe*_*hts 10
我构建应用程序的方式:
只需选择一个javascript框架,并遵循其最佳实践.我最喜欢的是ExtJS和GWT,但是YMMV.
不要为此推出自己的解决方案.复制现代javascript框架所需的工作量太大了.适应现有的东西总是比从头开始构建它更快.
Question - What makes an application complex ?
Run Code Online (Sandbox Code Playgroud)
答案 - 在问题本身中使用"复杂"一词.因此,一个普遍的趋势是从一开始就寻找复杂的解决方案.
Question - What does the word complex means ?
Run Code Online (Sandbox Code Playgroud)
答案 - 任何未知或部分理解的东西.例子:即使在今天,重力理论对我来说也很复杂,但对于1655年发现它的艾萨克·牛顿爵士却并非如此.
Question - What tools can I use to deal with complexity ?
Run Code Online (Sandbox Code Playgroud)
答案 - 理解和简单.
Question - But I understand my application . Its still complex ?
Run Code Online (Sandbox Code Playgroud)
答案 - 三思而后行,因为理解和复杂性并不存在.如果你了解一个巨大的应用程序,我相信你会同意它只是一个小而简单单元的集成.
Question - Why all of the above philosophical discussion for a question on
Single Page Application (SAP)?
Run Code Online (Sandbox Code Playgroud)
答案 - 因为,
- > SPA不是新发明的某种核心技术,我们需要为应用程序开发中的许多事情重新发明轮子.
- >它的概念是由对Web应用程序的更好性能,可用性,可伸缩性和可维护性的需求驱动的.
- >它是一个相当新确定的设计模式,因此将SPA作为一种设计模式的理解在做出有关SPA体系结构的明智决策方面有很长的路要走.
- >在根级别没有SPA是复杂的,因为在了解了应用程序和SPA模式的需求之后,您将意识到您仍在创建应用程序,这与您之前进行一些修改和重新安排的方式非常相似在开发方法中.
Question - What about the use of Frameworks ?
Run Code Online (Sandbox Code Playgroud)
答案 - 框架是一些通常识别和通用模式的锅炉板代码/解决方案,因此它们可以从应用程序开发中取消x%(基于应用程序的变量)负载,但是不应该特别为它们提供大量的预期和不断增长的应用 完全控制应用程序结构和流程总是一个很好的例子,但最重要的是它的代码.应用程序代码中不应有灰色或黑色区域.
Question - Can you suggest one of the many approaches to SPA architecture ?
Run Code Online (Sandbox Code Playgroud)
答案 - 根据应用程序的性质考虑您自己的框架.对应用程序组件进行分类.寻找一个接近你的派生框架的现有框架,如果你发现它然后使用它,如果你没找到它,那么我建议继续你自己的.创建框架是一项前期工作,但从长远来看会产生更好的结果.我的SPA框架中的一些基本组件将是:
数据来源:模型/模型集合
标记为显示数据:模板
与应用程序的交互:事件
状态捕获和导航:路由
实用程序,小部件和插件:库
如果这对您的SPA架构有任何帮助和好运,请告诉我!
归档时间: |
|
查看次数: |
49968 次 |
最近记录: |