我正在考虑为我的项目使用 Javascript 框架。但我很困惑,我应该使用框架还是使用简单的 Javascript。此外,我还想说一点,我对 Javascript 的经验并不多。对于仍然处于 Javascript 初学者水平的人,您有什么建议?
2 回答
关于初学者的疑惑:
去年我开始使用 AngularJS 时,我处于 JavaScript 初学者水平。学习它的基础知识真的很容易。更好的是,它可以帮助您用很少的代码行完成相当复杂的事情。您编写的大部分代码都是 AngularJS 所称的指令,这也是最可重用的部分。
一些高级概念可能难以理解并且需要一些时间,但总的来说,我会说通过 AngularJS 的进步让我对 JavaScript 有了更好的理解。
至少这是我的经验,而且这篇文章的目的不是为了推销 AngularJS。在我看来,学习一门编程语言,至少在大多数情况下,最好通过自己挖掘它的原始特性来完成。但是对于 JavaScript —— 以及它的所有怪癖—— 我发现有一些东西来指导我是非常有帮助的—— 在这种情况下,AngularJS。
关于项目框架:
当您想要拥有一个包含大量代码和交互的大型应用程序时,我发现框架对您有很大帮助。现在有一股 JavaScript 框架的热潮,所有这些都非常好。如果您想扩展 HTML 并进行声明式编程,可以使用AngularJS。如果您想在不同的抽象级别上工作,可以使用Ember.js。如果您想自己编写大部分实现,请使用Backbone.js。如果你正在做很多 GUI 的东西,ExtJS。这些框架中的大多数将帮助您编写更简洁、模块化和更可测试的代码,从长远来看,这将大大提高可维护性。
缺点可能是:
- 学习曲线 - 但如果你处于初学者水平,那么你不应该担心这个。
- 矫枉过正——对于某些项目,你真的不需要包含 500KB 的框架和库
- 不匹配——我认为这可能是最重要的因素。例如,一些框架更适合视觉效果,如图表和动画,而另一些则更适合其他方面。
结论:
- 确定你想要达到的目标,
- 找到适合工作的工具,
- 框架/库(或者如果不需要)将有很大帮助
最后,更像是一般规则:
- 不要因为对你来说太陌生而害怕做正确的事
图书馆可以非常好。它们可以帮助您对代码进行分段,它们可以帮助您更轻松地做很多事情。我已经开始发现骨干网对 AJAXy 网络应用程序特别有用。使用 JQuery,比使用 JQuery$('#element').hide();
容易得多document.getElementById('element').style.display = "none";
,而且 JQuery.toggle();
甚至比这更好。在大多数情况下,它们也很容易为您处理跨浏览器问题。
从设计/架构的角度来看,最大的缺点是开销。一旦您开始使用上述库的库和插件,谁知道代码质量如何。
从个人发展的角度来看,最大的风险是您将开始使用库作为拐杖,并且永远不会费心去了解这些库为什么或如何做它们所做的事情。当我看到一个网页<script>
的标题中有 15,000 个(夸张的)块时,我讨厌它们,它们可能利用了它们正在使用的所有插件和框架的 1/10 的力量。编写 5 到 10 行代码要比有一个额外的 HTTP 请求并加载整个 JS 模块只是为了使用它包含的一个函数要好得多。
我个人的建议是使用库,但始终努力理解它们在做什么,并挑战自己至少自己编写部分 JavaScript,直到你知道 JS 内部发生了什么,以及为什么它正在发生。一旦达到这一点,您将能够更好地评估库或插件是否真的是您需要的,或者您是否应该自己编写一些东西。