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

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

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

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

编辑1:

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

反对意见:

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

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

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

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

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

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

至于这个:

  • 主要是对JS不够了解的人

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

至于这个:

  • 框架限制Javascript开发人员

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

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

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

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

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

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

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

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

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

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

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

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

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

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

我很惊讶没有人提到它:

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

也:

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

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

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

我喜欢pb +的答案

主要是对JS不够了解的人

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

框架限制Javascript开发人员

废话

框架使用许多未使用的东西膨胀实际的开发代码。

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

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

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

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