【问题标题】:What are the arguments against using a JavaScript Framework for a Web site development company? [closed]反对为网站开发公司使用 JavaScript 框架的论点是什么? [关闭]
【发布时间】:2010-11-17 13:41:41
【问题描述】:

我们公司建立网站和网络应用程序。我们是一家小公司,我们的开发团队总是从头开始构建 javascript 功能或从我们构建的其他网站复制。每次我提出标准化这个词并使用 JS 框架(如 JQuery、Prototype 或任何其他框架)时,我都被告知框架有以下三点作为反对它们的论据:

  • 主要针对对JS不够了解的人
  • 框架限制了 Javascript 开发者
  • 框架使实际开发代码膨胀,其中包含许多未使用的东西。
  • 我们在应用程序中使用的 Javascript 不足,因此我们需要 JS 框架

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

编辑1:

感谢大家的精彩回复。我真的没有想到这会成为一个如此热门的话题。我很高兴我问了这个问题。我在以下链接中发布了另一个类似的问题,以防您认为您想添加一些内容。新问题的主题与CSS 相关。谢谢。

【问题讨论】:

  • 您的同事更喜欢剪切和粘贴而不是使用经过测试和不断发展的库?您是否考虑过在其他地方找工作?
  • 这真的没有任何意义,你最终会写很多代码(因为你失去了浏览器类型的抽象),如果 Opera 这样做,如果 Chrome 这样做,elsif FF 这样做否则,如果 IE 做完全不同的事情 =P.
  • Geo,向您的团队展示这篇文章的答案,但要先说 StackOverflow 是世界上最好的开发人员的集合,其中绝大多数人将框架视为常识。然后看看他们怎么说。

标签: javascript jquery frameworks yui


【解决方案1】:

反对意见:

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

讽刺>

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

【讨论】:

    【解决方案2】:

    从您的同事的角度来看,.NET 和 JAVA 适合那些不太了解汇编的人。

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

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

    【讨论】:

    • 同意。这应该是评论……而不是回答?
    • @Cody:我 100% 同意你的观点,我正在寻找反对的论据以获得双面硬币的全貌。我真的很想选择你的答案作为答案,但我希望得到反对这个想法的分数。
    【解决方案3】:

    喜欢pb+的回答

    主要针对不认识的人 足够的JS

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

    框架限制了 Javascript 开发者

    废话

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

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

    【讨论】:

    • 100-200 k?当您将 min 版本与 gzip 一起使用时,jq 的传输速度仅为 26k。
    • 这是最高版本,不是每个人都使用最低版本。
    【解决方案4】:

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

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

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

    【讨论】:

    • jQuery 让使用 JavaScript 工作变得非常愉快。操作、效果等的高级构造能力允许程序员专注于所需的交互,而不是 JS 和浏览器兼容性的细节。
    【解决方案5】:

    反对图书馆的一个论点是 BROWSER SUPPORT 大多数图书馆只支持一部分浏览器。 Here 是 BBC 推出自己的而不是使用 jquery 之类的示例。

    【讨论】:

    • 我同意,如果您需要支持一些真正出路的浏览器,框架可能不是最佳选择。话虽如此,它们通常实际上只支持正确的浏览器。
    • 发光(来自英国广播公司)是一个选项。他们决定放弃 jQuery,因为他们必须支持一些真正的遗留客户端。该库与 jQuery 非常相似。
    【解决方案6】:

    由于没有人提到它 - Javascript 框架迅速成为另一个项目依赖项,一般来说,依赖项是不好的,因为它们代表失败点。

    至于这个:

    • 主要针对不认识的人 足够的JS

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

    至于这个:

    • 框架限制 Javascript 开发者

    这可以转化为“框架让编写意大利面条代码变得稍微困难​​,而这正是我最擅长的”

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

    【讨论】:

    • 你的观点是正确的,js 库不再是样式表或图像的依赖项。对于已组织为将 js 文件视为类似于图像和 css 的资源的项目,这绝不应该成为问题。只是我的 2 美分。
    • @Ikarii Warrior - 我绝不反对 JS 库,但在我看来(而且有点迂腐)它们确实代表了一个失败点。比如昨天发布了一个全新的浏览器,今天管理需要支持。严格来说,依靠社区(或供应商)提供支持是一个失败点。
    • 从支持的角度来看,是的,它可以被认为是另一个失败点,当然是一个有效的点——我并不是要抹黑你的意见。 :) 据说在家开发自己的 javascript 并不能保护您免受新的浏览器兼容性问题的影响。
    【解决方案7】:

    总的来说,有很多充分的理由怀疑框架,当然还有很多值得考虑的理由。

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

    那里没有太多臃肿,它非常小且设计精良,并且完全不会阻止您为不符合您需求的特定情况编写任何您想要的 javascript。

    【讨论】:

      【解决方案8】:

      我很惊讶没有人提到它:

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

      还有:

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

      我在这里有偏见,因为我不使用 JQuery,但这是因为我还没有找到对它的需求——也许是因为我更关注可用性和功能,而不是让用户界面看起来漂亮(抱歉我知道 JQuery 可以做的不止这些)。

      【讨论】:

      • 如果我将 70KB 的框架依赖项转储到我的任何或所有项目中,我将无法完成我所做的百分之一。感谢您诚实地反对 jQuery。
      【解决方案9】:

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

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

      虽然依赖于经过良好测试的第 3 方软件通常是有道理的,但“框架”往往会为您提供比您目前需要的更多的功能。

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

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

      当您考虑升级到框架的下一个版本时,这可能会让您感到厌烦。这涉及在 jQuery 的变更日志中爬行以查找向后不兼容的更改,并在您的项目中搜索使用该代码的区域。这可能是一场噩梦,尤其是如果您不一定有一个完整的列表来说明您使用了哪些 jQuery 功能以及您没有使用哪些功能。

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

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

      我完全赞成使用经过良好测试的第 3 方代码。但是如果它试图做太多事情(也就是说,如果它是一个框架而不是一个实用程序),你可能应该寻找一个替代方案。如果它试图做太多事情(就像 jQuery 试图做太多事情),那么它就会出现一些严重的基础设计缺陷,这些缺陷可能会反过来咬你。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2010-09-13
        • 1970-01-01
        • 1970-01-01
        • 2016-06-29
        • 2017-08-23
        • 2013-04-08
        • 2014-07-26
        • 2013-12-31
        相关资源
        最近更新 更多