作为WORDPRESS开发人员如何学习JAVASCRIPT

像许多WordPress开发人员一样,在我真正了解JavaScript之前,我开始学习JavaScript。通过“学习JavaScript”,我的意思是我用Google搜索了如何在我的页面上对CSS进行动态更改,发现jQuery是选项,后来发现jQuery是一个JavaScript库,依此类推。

WordPress是一个安全的空间,我们可以从中探索围绕它的不同技术,以改善我们的网站并为我们的用户创造更多动态体验。这包括JavaScript。

在Matt Mullenweg的今年的状态中,我很幸运能够参加,他说在用户交互方面,网络的未来将是API驱动的JavaScript接口。WordPress.com最近在他们的管理界面中完成了一年半的迭代,现在由一个名为Calypso的React驱动的应用程序驱动。

WordPress.com最近在他们的管理界面中完成了一年半的迭代,现在由一个名为Calypso的React驱动的应用程序驱动。

但是,围绕JavaScript驱动的接口的讨论并不新鲜。2012年,当时领导WordPress用户界面团队的Ghost创始人John O’Nolan提出了一个更简单,专注于博客的WordPress而不是CMS。在对WordPress更复杂的方法感到沮丧之后,O’Nolan离开了WordPress项目并创立了Ghost。Ghost在服务器端避开了PHP for Node.js,而WordPress.com维护了我们称之为WordPress的传统数据库层。

Calypso是JavaScript单页面应用程序(SPA)类型的一个很好的例子,它们在尝试满足用户的特定需求时需要向前推进。我怀疑会有一个通用的API。但是,我认为,作为WordPress开发人员,我们需要学习如何更好地构建这些类型的应用程序。这让我最为兴奋的是Mullenweg对学习JavaScript的挑战。

我最近和Torque的同伴罗伊西万WP Crowd上讨论如何学习JavaScript作为WordPress开发人员。

您可以通过观看视频来听取我们的整个对话,但我想从讨论中分享一些想法。此外,Carl Alexander是一位提供有用内容以帮助提高PHP开发技能的作家,在我们之后与我们分享了一些关于JavaScript的想法。

你应该学习什么框架?

基于人们谈论WordPress REST API的方式,通常认为学习JavaScript MVC框架是绝对必要的。虽然它可能有所帮助,但它也限制了学习REST API或掌握JavaScript的观点。

有很多框架可供选择。确定要学习哪一个是一个困难的决定。

我个人的回答是“AngularJS。”我没有兴趣辩论这个。它们都只是工具。选择您感觉舒适的并继续前进。

“我应该学习什么框架”也是一个错误的问题。

学习JavaScript MVC框架是开始构建某些东西的快捷方式。但它不会让你对语言有深刻的理解。事实上,它实际上可能会阻止您深入学习语言。

大多数WordPress开发人员不习惯MVC模式,因为WordPress不使用它。直到你接触到它,它并不容易掌握。了解到,加上JavaScript本身是一项艰巨的任务。就个人而言,我最初几次看到Angular对我来说太混乱了。然后我学习了Symfony,它不需要任何新的PHP知识,但它确实需要我修改MVC模式。一旦我开始理解它,Angular对我来说就容易多了。

在学习JavaScript时,jQuery,Angular和Backbone没有用处。它们都不会帮助您了解面向对象编程如何在JavaScript中工作。另一方面,Roy和我一直致力于单页Web应用程序作为我们的自动A / B测试插件的插件管理屏幕

另一方面,Roy和我一直在为单页Web应用程序工作,作为我们的自动A / B测试插件Ingot的插件管理屏幕。当几百行Angular可以使它工作时,用vanilla JavaScript编写整个东西本身就是疯了。

学习框架提供了巨大的价值。它可以帮助您完成工作,更熟悉语言,并更好地了解这种类型的编码是如何工作的。Roy有一个关于使用Angular和WordPress REST API构建Web应用程序的精彩系列,对于那些希望学习这些技能的人来说,这是一个非常有用的资源。

从你所知道的(或不是)开始

罗伊建议你应该从你所知道的开始,然后从那里开始。当我和Carl聊天时,他说这个建议引起了他的共鸣,他继续谈论编写一个jQuery插件来学习JavaScript:

“我不能说在jQuery中对插件进行编码帮助我更好地理解JavaScript。我对此没有太多的个人见解(无论如何)。我知道复杂性不是语法。这是DOM交互,方法重载,绑定到DOM元素等等。与其他语言相比,它是如此不同。“

我认为这说明了实践学习与深入学习语言之间的紧张关系。我从个人经验中知道。我使用jQuery很长时间来操作DOM,却没有意识到所有DOM元素都是对象和属性。

大多数时候,由于像jQuery这样的库和像Angular这样的框架,你可以避免了解真正的对象以及它们是如何工作的。JavaScript Is Sexy是一个拥有高度重视的JavaScript课程的网站,两年前发布了一篇名为“ JavaScript中的OOP:你需要知道什么。”我建议给它一些读数。

后端VS前端

在播客和与Carl的后续对话期间,我像往常一样宣称我喜欢PHP中的后端工作。也许是因为PHP是英语之后的第二语言,我才能流利。或许,这可能是因为后端更符合我的技能。

卡尔,我认为他更像是一个后端开发者,他说他“讨厌被贴上标签的标签”。

“这可以追溯到缩放,”他说。“我推迟使用JavaScript是有原因的,而不是因为我更喜欢后端。”

Carl担心新的闪亮JavaScript与长期稳定性之间的兴奋。“例外是

“例外是节点,我使用和学习没有问题,因为它很稳定,”他说。“但我已经更好地了解了PHP,因此使用它的用例更少。”

正如我们在视频末尾讨论的那样,节点是第一个(如果不是第一个)服务器端JavaScript库之一。我自己对Node的经验很少,但我们都认为这是一项值得学习的技术。

在哪里学习

互联网上充满了帮助您学习JavaScript的资源。使用JavaScript作为一种将您的技能扩展到WordPress泡泡之外的方法将有助于您作为Web开发人员进行改进。

在WPCrowd讨论期间,Roy推荐了一些教育资源。许多人来自Wes Bos–包括他的学习JS的书籍,他的React for Beginners课程  以及他的YouTube频道。此外,Roy推荐The Frontend Masters初学者课程

我展示了我的旧版JavaScript:The Definitive Guide,我只阅读了几章,但不时派上用场。Roy推荐使用JavaScript:Good Parts作为更小,更友好的替代品。

Roy的网站上也充满了关于在WordPress REST API中使用Angular和React的很多信息。他使用Angular和WordPress REST API构建应用程序的系列是必读的。

从基础知识开始

深入学习语言意味着学习基础知识。在JavaScript中,这至少意味着理解函数,范围和闭包。在结束之前,我想挑战你,花时间学习或提高你对这三个基本概念的知识深度。

您可能无法通过学习React或Angular来尽快开始构建。但是,您将了解有关WordPress开发中每天使用的语言的更多信息。当需要修复在您的网站上无效的内容或者使用您选择的框架进行当前无法实现的操作时,这将带来巨大的回报。

在PHP中,我们可以选择使用函数式编程或面向对象的编程。JavaScript纯粹是面向对象的。在JavaScript中,函数创建对象。理解JavaScript纯粹是面向对象的,以及函数是做什么的,这是我编写JavaScript的第一步,就像功能性PHP 一样正确

闭包是一种在JavaScript中使用的语言非常有用的约定。它们经常被困在5.2时代的WordPress开发人员利用不足。两篇很棒的,简单的文章可以帮助你思考JavaScript中的闭包是“ 通过轻松理解JavaScript闭包 ”和Ben Nadal的 “ Javascript闭包的图形解释 ” 。

要真正理解闭包以及如何使用它们,您必须首先了解范围。理解JavaScript中的事件,变量和对象的范围可能有点棘手。此Stackoverflow答案给出了关于变量范围的非常简明的细分。

在PHP中,变量总是引用它封装的对象。在JavaScript中,这有点复杂。文章“ 理解JavaScript”这个“带有Clarity,掌握它 ”是在不同范围和背景下理解这一点的重要资源。

作为Web开发人员,我们主要在DOM的上下文中使用JavaScript。这意味着您必须将DOM理解为JavaScript对象的结构才能理解事件和绑定。“ JavaScript中的事件捕获和冒泡 ”是一篇很棒的文章,可以帮助您将DOM可视化为结构并理解其范围。

深入学习和学习

您应该学习一个JavaScript MVC框架,但不要让这一切都是您对JavaScript的了解。负责人要深入学习。我很快学会了PHP,因为WordPress帮助我解决了棘手的问题。但在我开始学习它的基础知识之前,我并不是特别擅长它。在实际的层面上,我被限制在我可以从常见的预制件中拼凑出来的东西。我无法创造任何独特的东西。

我很快学会了PHP,因为WordPress帮助我解决了棘手的问题。但在我开始学习它的基础知识之前,我并不是特别擅长它。在实际的层面上,我被限制在我可以从常见的预制件中拼凑出来的东西。我无法创造任何独特的东西。

如果你对JavaScript的看法如此,那么现在是时候深入了解。我希望您首先要了解有关函数,闭包和范围的更多信息。我知道我还有很多东西需要学习。

如果你刚刚进入JavaScript,那么就需要做些什么来平衡完成工作的需要和深入学习语言的需要。

说点什么

500