本文仅供学习交流,请勿用于商业用途。非商业转载请注明译者和出处,并保留本文原文链接:http://www.ituring.com.cn/art...采访者:NicolasBevacqua,阿根廷人,热情的JavaScript工程师,热衷于创建强大的构建过程和清晰的应用程序架构。我喜欢谈论有关JavaScript、性能、可维护代码和开放互联网的一切。曾多次在技术会议上发布关于web性能和ES6的知识分享。2017年6月24日,Nicolas作为重量级嘉宾参加“腾讯Web前端大会”,分享《JavaScript的未来编写方式》并参与签售活动。采访实录:你是什么时候开始编程的?在我大约10岁的时候,我参加了一些课程来学习Flash,也做了一些网站,但纯粹是为了好玩。上高中后,我开始从事更有趣的项目,比如玩多人角色扮演游戏UltimaOnline。运行自己开发的服务器,实现游戏的特色。这段时间,我学习了C#。大约两年后,一位朋友告诉我“嘿,人们付钱让你做这件事。”这对我来说太酷了!是的,我想,这就是我开始编程的方式。你有没有想过把爱好变成事业会破坏它带来的乐趣?不,恰恰相反。我从来没有觉得这是某种工作。我不会因为我把爱好变成了工作就停止享受它。做自己喜欢的工作很重要。只有这样,你工作时才不会感到疼痛。你住的地方的科技场景是什么样的?五年前的技术社区要小得多。但是,现在我们有Node.js大会,JS大会等等,而且真的越来越大了。我共同创办的Node.js会议于去年开始。今年,我们仍然会组织。我们想让它成为一个定期会议,这样人们就可以更多地参与技术社区,而不是一年来一次就忘记它。JavaScript中有许多框架。怎样才能紧跟潮流,不被技术落后?在我们谈话的这一点上,可能会出现一个框架。重要的是,我们的主要任务不是去追那些眼花缭乱的东西,而是去了解更多的趋势,什么对我有用,对我有帮助。如果一个两年前开始的项目还在使用Angular,我不需要认为Angular落后于React,Angular肯定更差。是否使用某个框架取决于你的需求,总是追求最新的技术是一件危险的事情。坚持使用同一个工具一段时间,注意工具的一致性是有价值的。此外,重要的是不要被新技术甩在后面。可以,但是不建议大家还是用jQuery和HTML来做网站。关键是要找到合适的平衡点。不断丰富自己的知识,有空可以试试。不要因为是新技术就盲目尝试。能按时间顺序给我们一些JavaScript学习建议吗?首先,弄清楚哪种学习方式适合你。有些人喜欢看知识截图或视频讲座。至于我,我不擅长视觉学习。我需要自己研究。如果我看一个视频,我想知道任何一种详细的知识,我都会看四遍。如果是一本书或者一篇文章,我都能很快掌握。我想说的是,你应该弄清楚你是视觉学习者还是喜欢文本内容的学习者。然后,你就可以开始真正地学习JavaScript的基础知识:句法、句法等等。有了坚实的基础,你应该跳入ES6并掌握它的一些特性。同时,你可以专注于单一的框架,Angular或者React或者任何其他框架,但是你必须精通。您可以阅读所有文档并浏览文件,直到完全理解其工作原理。我使用我编写的框架来了解事物是如何工作的。这是验证某些内容和编写一些技术工具的非常有效的方法。如果一定要推荐一个学习资源,那应该是https://12factor.net。这里有一个网站,在安全性、可扩展性等方面列出了12种不同的应用程序设计原则。我认为人们应该了解它。目前,您正在撰写《模块化的JavaScript》系列丛书。为什么要关注模块化?回到早期,JavaScript基本上就是复制粘贴“howto”。人们在网上找到一些代码片段,将其复制并粘贴到他们的网站上,然后收工。随着语言的发展,情况将不再如此。人们变得更加专业并开始开发一些JavaScript应用程序。现代JavaScript应用程序中有许多模块。起初,这些模块相当大。编写小模块现在要简单得多。在我的系列丛书中,我试图教你如何编写紧凑的、单一用途的模块。原因是人们希望编写专业的模块,以便可以重用、测试,甚至在需要时提供官方文档。最重要的是保证架构的可扩展性。当您有5个不同的模块,每个模块有5000行代码时,事情就变得棘手了。如果你有5000个模块,每个模块都是100行代码长度,那么这个就简单多了。本系列的重点是如何获得这些高度模块化的应用程序。本系列的后续书籍将讨论测试、部署等。您是如何开始编程的?当我大约10岁时,我上了一些使用Flash的课程。另外,我制作网站是为了好玩。在高中时,我做了几个更有趣的项目,比如玩名为UltimaOnline的游戏。我曾经运行自己的服务器并为游戏实现功能。这就是我学习C#的方式。这样做了2年后,一位朋友告诉我,“嘿,人们实际上付钱给你做这件事。”收钱太爽了是的,我想我就是这样开始的。你有没有想过将对角色扮演游戏的热爱变成职业会破坏你的乐趣?不,恰恰相反。我从来没有觉得这对我来说像工作。我也永远不会失去对爱好的热爱,因为我这样做是为了工作。但是做自己喜欢的事情很重要。然后,当您连续几天这样做时,就不会感到折磨。您居住地的技术社区是什么样的?5年前它要小得多。现在,我们有Node.jsConf、JSConf和很快。它肯定在增长。Node.jsConf于去年开始。今年,我们仍将运行它。我们计划让它成为常态,这样人们就可以更多地参与社区活动,而不是每年来一次这个活动,然后就完全忘记了。JavaScript中有很多框架。如何跟上状态?就在我们说话的时候,可能正在出现一个框架。重要的是要知道主题不是追随那些闪闪发光的东西。它更多的是弄清楚趋势,什么对我有用和有帮助。如果我2年前开始一个项目,它仍在使用Angular。我真的不需要觉得Angular比React低一点,而且肯定更差。这始终取决于您的要求。追求最新的东西是非常危险的。一段时间内使用同一工具的一致性是很有价值的。另外,不要落后也很重要。可以,但不建议继续使用用于网站的jQuery或HTML。这是关于找到正确的平衡点。随时了解情况,但如果有时间,请尝试一下。一定不要因为它是什么就跳进去。你能按时间顺序给我们一些JavaScript的学习步骤吗?弄清楚你如何最好地学习东西真的很重要。有些人喜欢阅读屏幕截图或视频。我真的很不擅长学习我看到的任何东西。我需要阅读它。如果我看了一个视频,我想看懂任何东西,直到我看了4遍。当我读一本书或一篇文章时,我可以得到它。我想说的是,你应该弄清楚你是视觉学习者还是更喜欢书面内容。然后你可以开始真正理解JavaScript的基础知识:句法、文法等。一旦你有了坚实的基础,你应该进入ES6并学习特性。同时,您可能会专注于单个框架,Angular或React,但一定要专注于此。你c应该阅读它的所有文档并浏览文件以弄清楚它是如何工作的。我实施了自己的框架来了解事情是如何运作的。我认为这是一种为自己试验和构建事物的有效方法。如果有一个来源我会推荐,它应该是https://12factor.net,这是一个网站,从安全性、可扩展性等方面为健壮的应用程序设计制定了12条不同的原则。我认为人们应该知道it.Currently,你正在写模块化JavaScript丛书。为什么要强调模块化?早期的JavaScript基本上是在“HOW”的复制粘贴上。人们在互联网上找到可以为网站提供评论的代码片段。他们去复制粘贴到他们的网站,然后收工。随着语言的发展,大小写将不再匹配。人们变得更加专业并开始开发JavaScript应用程序。现在,JavaScript应用程序有很多的模块。起初,那些是相当大的模块。现在编写小模块要简单得多。在我的系列丛书中,我试图教人们如何编写简洁且用途单一的模块。原因是人们希望模块是专用的,以便他们可以重用它们、测试它们,甚至在需要时记录它们。但最重要的是架构方面的可扩展性。当你有5个不同的模块时,每个模块都有5,000行代码,使用它们真的很难。如果您有5,000个模块并且每个模块的长度为100行代码,那就容易多了。该系列主要讨论如何获得这些高度模块化的应用程序。然后系列后面的书会讲到测试和部署。更多精彩,加入图灵访谈微信!
