选择MVC框架(Javascript-前端)-主干、角度、余烬
在过去的几天里,我一直在研究支持和反对不同MVC框架的不同论据,但显而易见的是,这个问题绝对没有正确的答案,因为它严重依赖于许多特定于底层项目的不同因素 我反复遇到的建议是,从以下几点选择一个框架:易用性、生产力、可测试性、社区、文档 虽然这都是很好的建议,但我仍然认为有更多的事情要考虑具体的代码基础,你将继续工作。< /P> 这就是说,假设有一天你上班时被要求为你的代码库选择“最好的”Javascript MVC框架来处理现有产品的整个前端(请记住,有一个当前的代码库,你希望框架能够处理“转换”当你随着时间的推移转向新的框架时,你认为有必要考虑哪些因素/问题来做出明智的决定?这些可能是有关MVC框架本身和/或当前使用的代码库/技术(即Ruby后端、当前使用的其他库、产品功能等)的因素/注意事项/问题 可扩展性和性能非常重要,因为此产品将拥有相当大的用户量选择MVC框架(Javascript-前端)-主干、角度、余烬,javascript,angularjs,backbone.js,ember.js,Javascript,Angularjs,Backbone.js,Ember.js,在过去的几天里,我一直在研究支持和反对不同MVC框架的不同论据,但显而易见的是,这个问题绝对没有正确的答案,因为它严重依赖于许多特定于底层项目的不同因素 我反复遇到的建议是,从以下几点选择一个框架:易用性、生产力、可测试性、社区、文档 虽然这都是很好的建议,但我仍然认为有更多的事情要考虑具体的代码基础,你将继续工作。< /P> 这就是说,假设有一天你上班时被要求为你的代码库选择“最好的”Javascript MVC框架来处理现有产品的整个前端(请记住,有一个当前的代码库,你希望框架能够处理“转换
仅仅是由于某些框架的稳定性和成熟度,我已经将现实的选择分解为角度、主干+木偶和余烬(尽管这个仍然悬而未决)。每一个都是不同的野兽,其本身的权利和功能非常不同,因此我需要提出我最初的问题,即你会问哪些因素和问题,以确定哪一个是“理想”(我使用这个词非常松散)的选择?你的问题可能会结束,因为它既“过于宽泛”,又“主要基于观点”,使其不适合此站点 但由于不久前我面临着完全相同的决策,我将分享我对这三个框架的印象。(来自比我更有经验的人)如果你还没有
- 安格拉斯
- 优点:“神奇地”将视图和逻辑之间的功能连接起来,并允许用最少的代码完成大量工作。使您无需进行大量DOM操作。简单的开始和构建(大多数情况下)都很容易
- 缺点:AngularJS的优点也可以看作是它的弱点——许多人说它的“魔力”太大了,这使得在出现问题时很难排除故障。此外,“不受DOM操纵的自由”可能会变成“不受DOM操纵的障碍”。强制您查找插件和库,或者为一些原本微不足道的任务制作自己的组件,这些组件“以角度的方式完成任务”。通过强制您在HTML中放置大量代码,也违反了关注点分离
- Backbone.JS
- 优点:提供了一个框架,可以在不接管整个网站设计的情况下对代码和数据结构进行排序。正如@dandavis在上面的评论部分所说,“与他人相处得很好”
- 缺点:没有提供太多的UI支持。需要在上面栓接一个UI框架(比如木偶),或者自己完成大部分手工劳动
- Ember.JS:
- 优点:在不违反关注点分离的情况下提供大量UI帮助(借助于Ember内置的把手)。事件在代码中连接(以一种相当干净的方式)。与主干网一样,它提供了一个框架,用于向应用程序添加刚性结构
- 缺点:需要掌握许多不同的概念并设置许多活动部件。要完成相对简单的事情,可能需要大量代码和单独的部分。假设使用把手模板而不是普通HTML(根据个人喜好,HTML可以是加号或减号)
- 主干网中最小的UI功能意味着我必须自己连接它(我本来就想摆脱它),或者去比较/对比一大堆其他框架来放在主干网之上。在当时,这将是一项过多的时间投资
- 我排除了Ember,因为HTML标记的大部分工作都委托给了另一个人,而强迫这个人学习如何使用Handlebar模板是不合理的。对于我的特殊案件来说,这是一场针对余烬的大罢工