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

时间:2009-08-07 01:58:11

标签: javascript jquery frameworks yui

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

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

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

编辑1:

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

9 个答案:

答案 0 :(得分:13)

从您的同事的角度来看,.NET和JAVA适用于那些不了解组装的人。

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

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

答案 1 :(得分:8)

由于没有人提及它 - 一个Javascript框架迅速成为另一个项目依赖性,一般而言,依赖性很糟糕,因为它们代表了失败点。

至于此:

  • 主要针对不懂的人 足够的JS

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

至于:

  • 框架限制Javascript 开发者

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

这些不是论据,而是借口。

答案 2 :(得分:7)

反对的论点:

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

< /讽刺>

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

答案 3 :(得分:6)

javascript框架的一些好处(比如JQuery)。

  1. 他们提供了ui的标准化 元件。
  2. 缩短开发复杂的时间 界面和效果。
  3. 通过提供来规范工作 已经存在的功能 跨浏览器兼容。
  4. 由于努力交叉 兼容性文档更多 在您可以使用的框架中有用 框架的api作为佳能 而不是寻找晦涩的 支持各种/专有 javascript函数。
  5. 减少新的学习曲线 开发人员让他们高效工作 你的软件更快。
  6. 我完全不同意框架限制了javascript开发人员。事实恰恰相反。大多数框架都提供了广泛的插件机制,可以使用框架本身中的钩子使用原始javascript扩展框架。

答案 4 :(得分:5)

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

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

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

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

软件应该做一件事并做得很好,用JavaScript编写的软件也不例外。你提到的大多数框架试图做所有,导致不必要的复杂性。

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

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

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

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

答案 5 :(得分:3)

我很惊讶没有人提到它:

  • 许多Web开发人员默认使用JQuery而不考虑替代方案
  • 并最终将其包含在网页上,以完成一些简单的任务,这些任务可以在纯JavaScript中轻松完成
  • 结果是用户必须等待整个库下载并减慢网页浏览速度

此外:

  • 由于JQuery的强大功能,一些Web开发人员对Web页面的设计感到厌烦,并最终开发出不必要的复杂网页
  • 仅仅因为JQuery使您能够创建具有良好跨浏览器兼容性的脚本,并不意味着最终结果可用于不同的设备/接口
  • 我也认为跨浏览器的兼容性,因为我看到webkit的实例与JQuery不能很好地搭配
  • JQuery鼓励“快速”编写脚本 - 但如果你匆匆忙忙,你可能会错过任何东西
  • 从头开始使用JavaScript编写速度较慢 - 但我相信您最终会得到一个更完整的解决方案,更贴近用户需求
  • 使用JQuery可以将Web开发人员的重点转移到创建具有高度图形化和视觉吸引力的网站,而重点应放在功能和可用性上
  • JQuery不是Web开发的灵丹妙药

我有偏见,因为我不使用JQuery,但这是因为我还没有找到它的需要 - 也许是因为我更关注可用性和功能而不是让用户界面看起来很漂亮(对不起)我知道JQuery可以做更多的事情。)

答案 6 :(得分:2)

针对库的争论是浏览器支持大多数库只支持那里的一部分浏览器。 Here是BBC推出自己的一个例子而不是像jquery这样的东西。

答案 7 :(得分:1)

我喜欢pb +

的答案
  

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

我认为这对他们来说太复杂了,所以他们用这个借口。 FW允许您构建更复杂的应用程序。

  

框架限制Javascript开发人员

废话

  

框架膨胀实际   有很多东西的开发代码   没用过。

今天的额外100k-200k是多少?特别是如果您使用CDN版本(例如在谷歌)。这假设您在FW中没有使用任何东西。

答案 8 :(得分:1)

有很多充分的理由对一般的框架持怀疑态度,当然还有很多理由可以说它们是值得的。

我现在使用jquery,坦率地说,在一小时的学习中,它意识到它很适合这项工作,如果它不存在,我只会最终重新实现一些非常相似的东西,只有它不会像好或作为跨平台。

那里没有太大的膨胀,它非常小而且设计得很好,并且什么都不做就会阻止你为不符合你需求的特定情况编写你想要的任何javascript。