1

最近我一直在研究很多用于 JavaScript 框架的 MVC,我非常喜欢 Spine.js 的整体感觉以及它使用 CoffeeScript 的事实。也就是说,在这个阶段我主要关心的是我需要能够将 MVC 框架迭代地放入一个相当大的现有应用程序中。我在 Spine.js 上看到的大多数文档都侧重于创建新应用程序。

有没有人对这样做的最佳方法有任何建议?如果某个地方有一个很好的教程也会很棒,但谷歌不是我的朋友。

或者这只是一个坏主意,在处理遗留问题时我应该去其他地方?虽然 Angular 并没有以同样的方式点击我;然而,关于如何在遗留应用程序中迭代地使用它似乎非常简单。

4

2 回答 2

1

我认为“迭代地”做它是一个坏主意。我在一家公司担任自由职业者,他们决定在几个版本中进行完整的 UI 返工。在第一阶段,计划放弃现有的 JS,使用 Spine js 作为 MVC,并要求 js 作为 AMD。到目前为止一切都很好 - 但这个过程是“迭代的”。该项目/应用程序非常复杂,花了半年多的时间(我参与了 2.5 个月)。

留下所有现有的 JS 并“迭代地”替换发布的功能是一个很大的错误。因此,我们遇到了多个问题。如果你有数百个 js 文件、内联脚本、依赖项,那么简单地将它们扔掉会容易得多,因为你可以从字面上判断你的新代码是否有效。否则,您总是必须区分是谁的错:新代码或旧代码。

这也是造成本可以避免或至少减轻的麻烦的原因,如果它是一个硬削减:

  • 产品负责人并没有真正意识到状态,因为他看不到任何可见的进展。他只发现错误和不当行为。这对双方来说都是不满意/令人沮丧的。我一遍又一遍地听到的一句话:“前几天/之前确实有效 - 现在不行了”

  • 你开始更新一些过时的库,有时会导致兼容性问题的插件,因为 API 往往会发生变化,所以你也必须在旧代码中修复它。意味着:在某些时候,它开始感觉像是在解决问题而不是开发一个很酷/好的应用程序。这也太令人沮丧了。

  • 它花费的时间比预期/估计的要长。

  • 您一直在依赖最终不存在的旧代码进行开发。

我个人的建议是:不要迭代地做。对实时应用程序进行热修复,并在单独的分支上开发新应用程序。

于 2013-04-01T20:26:58.320 回答
0

我看不出将任何没有显式 mvc 结构的遗留应用程序整合到 spin.js 或骨干或 angular 等中可能会导致体验下降。

迭代转换很像编写一个新应用程序,减去用于定义应用程序 GUI 交互的样板文件。首先关注模型和控制器,抽出非常适合 MVC 结构的组件。我建议尽早避免使用 Spine 的某些应用程序交互组件,例如堆栈和路由,因为一旦其他所有内容都准备好根据 Spine 约定使用,这些组件就会变得更有意义。

于 2013-04-01T20:13:15.900 回答