我们公司建立网站和网络应用程序。我们是一家小公司,我们的开发团队总是从头开始构建javascript函数或从我们构建的其他网站复制。每次我带来标准化这个词,并使用像JQuery,Prototype或任何其他的JS框架,我被告知Frameworks下面有三点作为反对它们的论据:
在我看来,Frameworks似乎为我们的团队提供了一个良好的起点,文档,社区,并始终可以选择在框架之上发展。一些框架用户能否进一步阐述?
编辑1:
感谢大家的好评。我真的不认为这会成为一个热门话题。我很高兴我问了这个问题。我在以下链接中发布了另一个类似的问题,以防您可能认为要添加内容。新问题的主题是CSS相关。感谢。
答案 0 :(得分:13)
从您的同事的角度来看,.NET和JAVA适用于那些不了解组装的人。
框架存在是有原因的。它们允许您专注于问题,而不是处理重复的代码。它们使您有信心(假设您使用经过良好测试的框架),您的代码的某些部分是可靠且经过充分测试的。
如果你的同事反对框架,我会认真考虑继续前进。
答案 1 :(得分:8)
由于没有人提及它 - 一个Javascript框架迅速成为另一个项目依赖性,一般而言,依赖性很糟糕,因为它们代表了失败点。
至于此:
如果没有详细说明,我会说如果我们的一个团队在我面前说了这样的话,我会试着把它当作一个笑话来耸耸肩。如果我认为他们是认真的,我可能不得不杀死他们。
至于:
这可能转化为“框架使得编写意大利面条代码变得更加困难,这就是我最擅长的”
这些不是论据,而是借口。
答案 2 :(得分:7)
反对的论点:
< /讽刺>
答案 3 :(得分:6)
javascript框架的一些好处(比如JQuery)。
我完全不同意框架限制了javascript开发人员。事实恰恰相反。大多数框架都提供了广泛的插件机制,可以使用框架本身中的钩子使用原始javascript扩展框架。
答案 4 :(得分:5)
我将使用jQuery作为示例,但我在这里所说的可能适用于大多数JavaScript框架。
许多框架(尤其是jQuery)太单一,而且不够模块化。
虽然依赖经过充分测试的第三方软件通常不仅仅是合理的,但“框架”往往会为您提供比目前更多的功能。
在很多项目中,我非常喜欢jQuery为选择元素集提供的便利(例如,使用$(“。classname”))。但是,如果我没有使用任何大量的AJAX,我不需要jQuery提供的AJAX实用程序。
软件应该做一件事并做得很好,用JavaScript编写的软件也不例外。你提到的大多数框架试图做所有,导致不必要的复杂性。
当您考虑升级到下一版本的框架时,可以咬你的一个地方。这涉及到爬行jQuery的更改日志以进行向后兼容的更改,并在项目中搜索使用该代码的区域。这可能是一场噩梦,特别是如果你没有一个完整的列表,列出你使用哪些jQuery功能,哪些不是。
此外,jQuery(和其他框架)倾向于使开发人员开始依赖jQuery的新功能而不考虑它,使得更难确定项目使用的jQuery的哪些功能以及哪些功能没有。
如果您使用的是一个事物的实用程序,那么您确切地知道您正在使用该实用程序的哪些功能。只有一个。 (如果您根本不使用该实用程序,则很容易确定。这样的确定意味着您可以安全地将其从项目中删除。)
我全都使用经过充分测试的第三方代码。但如果它试图做太多,(也就是说,如果它是一个框架而不是一个实用程序),你应该寻找替代方案。如果它试图做太多(比如jQuery尝试做太多),那么它就会有一些严重的,基础的设计缺陷,可能会回来咬你。
答案 5 :(得分:3)
我很惊讶没有人提到它:
此外:
我有偏见,因为我不使用JQuery,但这是因为我还没有找到它的需要 - 也许是因为我更关注可用性和功能而不是让用户界面看起来很漂亮(对不起)我知道JQuery可以做更多的事情。)
答案 6 :(得分:2)
针对库的争论是浏览器支持大多数库只支持那里的一部分浏览器。 Here是BBC推出自己的一个例子而不是像jquery这样的东西。
答案 7 :(得分:1)
我喜欢pb +
的答案主要针对那些不了解的人 足够的JS
我认为这对他们来说太复杂了,所以他们用这个借口。 FW允许您构建更复杂的应用程序。
框架限制Javascript开发人员
废话
框架膨胀实际 有很多东西的开发代码 没用过。
今天的额外100k-200k是多少?特别是如果您使用CDN版本(例如在谷歌)。这假设您在FW中没有使用任何东西。
答案 8 :(得分:1)
有很多充分的理由对一般的框架持怀疑态度,当然还有很多理由可以说它们是值得的。
我现在使用jquery,坦率地说,在一小时的学习中,它意识到它很适合这项工作,如果它不存在,我只会最终重新实现一些非常相似的东西,只有它不会像好或作为跨平台。
那里没有太大的膨胀,它非常小而且设计得很好,并且什么都不做就会阻止你为不符合你需求的特定情况编写你想要的任何javascript。