访谈嘉宾: Nicolas Bevacqua

enter image description here

Nicolas Bevacqua,阿根廷人,是一位富有激情的JavaScript工程师,热衷于打造健壮的构建流程和清晰的应用架构。喜欢谈论关于JavaScript、性能、可维护代码和开放互联网的所有内容,曾多次在技术大会上发表web性能、ES6方面的知识分享。

2017年6月24日,Nicolas作为重量级嘉宾参加了“腾讯web前端大会”,分享《JavaScript的未来编写方式》并参加图书签售活动

enter image description here


英文版

什么时候开始编程的?

大概10岁的时候,我上过一些学习Flash的课,也做些网站但纯属是为了乐趣。到了高中的时候,我开始做一些更有趣的项目,比如玩一款多人在线的角色扮演游戏——网络创世纪。运行自己开发的服务器,实现游戏的特征。这段时间里,我学会了C#。大概做了两年的时候,一个朋友告诉我“嘿,人们是愿意花钱让你做这些事情的。”这对于我来说太酷啦!是的,我想,这就是我如何开始编程的。

你有没有想过,把爱好变成职业以后,会破坏爱好带来的那份乐趣?

不,恰恰相反。我从来没有觉得它是某种工作。我也不会因为把爱好变成了工作,就不再享受这份爱好。做自己喜欢的工作,这一点很重要。只有这样,你工作的时候才不会感到痛苦。

所在居住地的技术圈是什么样子的?

五年前的技术社群要小得多。不过,现在我们有了Node.js大会、有了JS大会等,确实在慢慢变大。我所联合创办的Node.js大会是去年开始的。今年,我们依然会组织。我们希望把它变成一个定期举办的大会,人们才可以更多地参与到技术社区,而不仅仅是每年来那么一次,然后就完全忘了。

JavaScript中有很多的框架。如何才能跟上趋势,不被技术落下?

我们谈话的这个时候,可能就有一个框架出现。重要的是,我们的主要任务不是跟随那些耀眼的事物,而是更多地了解趋势,什么是对我有用的、有帮助的。

如果两年前开始的一个项目还在使用Angular,我就不需要认为Angular比React落后,Angular肯定会糟糕一些。是否使用某个框架取决于你的要求,总是去追求最新的技术是件很危险的事情。在一段时间内坚持使用同一种工具,讲究工具的一致性是很有价值的。

此外,不被新技术落下也是很重要的。你可以,但是不建议你还在使用jQuery和HTML做网站。

关键是找到合适的平衡点。不断丰富自己的知识,如果有时间就去尝试一下。千万不要因为是新技术就盲目尝试。

你能按照时间顺序给我们提供一些JavaScript的学习建议吗?

首先,要弄清楚你适合哪种学习方式。有些人喜欢看知识截屏或者视频演讲。对于我来说,我在视觉学习方面的能力很差劲。我需要自己研读。如果让我看一段视频,我会想要了解任何一种细节性的知识,反反复复看四遍。换做一本书或是一篇文章,我就可以很快掌握。我想说的是,你应该弄清楚自己是一个视觉型学习者,还是喜欢文本型内容的学习者。

然后,你就可以开始真正地学习JavaScript的基础知识:句法、语法,等等。有了坚实的基础,你就应该进入ES6的学习,掌握些特征。与此同时,你可能专注于某个单一的框架,Angular或者React或者其他任何一个框架,但一定要做到精通。你可以阅读所有的文档并浏览文件直到完全了解它的工作原理。

我用自己编写的框架来学习事物是如何工作的。这是一个相当有效的方法,可以验证些东西、编写些技术工具。如果非要推荐一种学习资源,它应该是https://12factor.net。这是一个网站,它列出了从安全性、可扩展性等方面出发的12种不同的应用程序设计原则。我认为,人们应该了解它。

目前,你正在编写《模块化的JavaScript》系列图书。为什么会关注模块化?

早期的时候,JavaScript基本上就是复制粘贴“如何做”。人们在网上找到一些代码片段,复制粘贴到他们的网站,然后结束一天的工作。随着语言的发展,这种情况将不再适用。

人们变得更加专业,开始开发一些JavaScript应用程序。现在的JavaScript应用程序中有很多的模块。起初,这些模块都是相当大的。现在,编写小模块变得简单得多。

在我的系列丛书中,我试着教大家如何编写出简洁的、单目的模块。原因是,人们希望编写出专业的模块,这样就可以重复使用、测试,甚至在需要的时候给它提供官方文档。最重要的是保证架构方面的可扩展性。当你有5个不同的模块,每个模块有5000行代码的时候,事情会很难处理。如果你有5000个模块,每一个都是100行的代码长度,那么这就简单多了。

本系列主要讨论如何获得这些高度模块化的应用程序。这一系列内的后续图书会讨论测试及部署等内容。


更多精彩,加入图灵访谈微信!