反对为网站开发公司使用JavaScript框架的理由是什么?

Geo*_*Geo 4 javascript jquery yui frameworks

我们公司建立网站和Web应用程序.我们是一家小公司,我们的开发团队总是从头开始构建javascript函数或从我们构建的其他网站复制.每次我带来标准化这个词,并使用像JQuery,Prototype或任何其他的JS框架,我被告知Frameworks下面有三点作为反对它们的论据:

  • 主要针对那些不了解JS的人
  • 框架限制Javascript开发人员
  • 框架使用许多未使用的东西膨胀实际的开发代码.
  • 我们在应用程序中没有使用足够的Javascript来让我们需要JS框架

在我看来,框架似乎为我们的团队提供了一个良好的起点,文档,社区,并始终可以选择在框架之上发展.一些框架用户能否进一步阐述?

编辑1:

感谢各位的回复.我真的不认为这会成为一个热门话题.我很高兴我问了这个问题.我在以下链接中发布了另一个类似的问题,以防您可能认为要添加内容.新问题的主题是CSS相关.谢谢.

Cod*_*y C 13

根据您的同事的观点,.NET和JAVA适用于那些不了解组装的人.

框架存在是有原因的.它们允许您专注于问题,而不是处理重复的代码.它们使您有信心(假设您使用经过良好测试的框架),您的代码的某些部分是可靠的并经过充分测试.

如果你的同事反对框架,我会认真考虑继续前进.


kar*_*m79 8

由于没有人提到它 - 一个Javascript框架迅速成为另一个项目依赖性,一般而言,依赖性是坏的,因为它们代表了失败点.

至于这个:

  • 主要针对那些不了解JS的人

如果没有详细说明,我会说,如果我们的一个团队在我面前说了这样的话,我会试着把它当作一个笑话来耸耸肩.如果我认为他们是认真的,我可能不得不杀了他们.

至于这个:

  • 框架限制Javascript开发人员

这可能转化为"框架使得编写意大利面条代码变得更加困难,这就是我最擅长的"

那些不是论据,它们是借口.

  • 从支持的角度来看,是的,它可以被认为是另一个失败点,当然是一个有效的观点 - 我不是在试图诋毁你的输入.:)据说家里种植自己的javascript并不能保护您免受新的浏览器兼容性问题的影响. (2认同)

Pau*_*enk 7

反对的论点:

  • 框架可以防止您重新发明轮子
  • 框架通常包含经过良好测试的代码
  • 框架得到了社区的充分支持
  • 框架迫使您专注于您尝试解决的业务问题

</讽刺>

  • 框架可能拥有您不同意/无法使用的许可


Ika*_*ior 6

javascript框架的一些积极因素(如JQuery).

  1. 它们提供了ui元素的标准化.
  2. 缩短开发复杂界面和效果的时间.
  3. 通过提供已经跨浏览器兼容的功能来规范工作.
  4. 由于交叉兼容性文档的努力在框架中更有用,因为您可以使用框架的api作为正典而不是搜索对各种/专有javascript函数的模糊支持.
  5. 减少新开发人员的学习曲线,使他们的软件更快地生产.

我完全不同意框架限制了javascript开发人员.事实恰恰相反.大多数框架提供了广泛的插件机制,其中框架可以使用框架本身中的钩子使用原始javascript进行扩展.

  • jQuery让JavaScript工作变得非常愉快.高级构建操作,效果等的能力允许程序员专注于所需的交互,而不是JS和浏览器兼容性的细节. (3认同)

Ant*_*iMS 5

我将使用jQuery作为示例,但我在这里所说的可以应用于大多数JavaScript框架.

许多框架(尤其是jQuery)过于单一,而且不够模块化.

虽然依赖经过充分测试的第三方软件通常不仅仅是合理的,但"框架"往往会为您提供比目前更多的功能.

在许多项目中,我非常喜欢jQuery为选择元素集提供的便利(例如,使用$(".classname")).但是,如果我没有使用任何大量的AJAX,我不需要jQuery提供的AJAX实用程序.

软件应该做一件事并做得很好,用JavaScript编写的软件也不例外.您提到的大多数框架都会尝试执行所有操作,从而导致不必要的复杂性.

当你考虑升级到框架的下一个版本时,可以咬你的一个地方.这涉及到爬行jQuery的更改日志以进行向后兼容的更改,并在项目中搜索使用该代码的区域.这可能是一场噩梦,特别是如果你没有一个完整的列表,你可以使用哪些jQuery功能,哪些不是.

此外,jQuery(和其他框架)往往会导致开发人员开始依赖jQuery的新功能而不考虑它,使得更难确定项目使用的jQuery的哪些功能以及哪些功能没有.

如果您使用实用程序执行一项操作,那么您确切地知道您正在使用的该实用程序的哪些功能.只有一个.(如果您根本不使用该实用程序,则很容易确定.这样的确定意味着您可以安全地将其从项目中删除.)

我全都使用经过充分测试的第三方代码.但如果它试图做太多,(也就是说,如果它是一个框架而不是一个实用程序),你应该寻找替代方案.如果它试图做太多(比如jQuery尝试做太多),那么它会有一些严重的基础设计缺陷,可能会回来咬你.