访谈嘉宾: Nicolas Bevacqua

enter image description here

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

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

enter image description here


Chinese Version

How did you get started in programming?

When I was around 10, I had some classes using Flash. Also, I made websites for fun. In high school, I did a couple of more interesting projects, like playing the game called Ultima Online. I used to run my own server and implement features for the game. That's how I learned C#.

After doing that for 2 years, a friend told me, “Hey, people actually pay you to do this.” It's too cool to get paid. Yeah, that's I guess how I begin.

Have you ever thought that turning love of role-playing games into a career will spoil your fun?

No, it's the other way around. I never felt it like work to me. I would also never fall out of love with hobbies because I'm doing it for work. But it's important to work on something you like. Then it won't feel like torture when you’re doing it for days.

What does the tech community of your living place look like?

It's much smaller 5 years ago. Nowadays, we have Node.js Conf, JS Conf and so on. It's definitely growing. Node.js Conf started last year. This year, we will still run it. We plan to make it a regular thing so that people could engage more with the community, not just coming to this event once a year and then completely forget it.

There are lots of frameworks in JavaScript. How to keep up with the state?

There's probably a framework coming out right now as we speak. The important thing is to know that the theme is not to follow those shiny stuffs. It’s more about figuring out the trends, what's useful and helpful for me.

If I started one project 2 years ago, it's still using Angular. I don’t really need to feel that Angular is a little bit lower than React and it must be worse. It depends always on your requirements. It's very dangerous to go after the newest thing. The consistency of using the same tool for a while is valuable.

Also, it's important to not be fallen behind. You can, but it’s not advisable to be still using jQuery or HTML for websites.

It's about finding the right balance. Stay informed but try them if you have time. Be sure not to jump into everything just because it is.

Could you give us some learning steps of JavaScript in chronological order?

It's really important to figure out how you learn things best. Some people love to read screen cuts or videos. I'm really bad at learning anything that I see. I need to read it. If I watched a video, I want to understand anything until I go over it like 4 times. When I read a book or article, I could get it. What I'm trying to say is that you should figure out whether you are a visual learner or if you prefer written contents.

Then you could start to really understand the basics of JavaScript: syntax, grammar, etc. Once you have a solid foundation, you should move into ES6 and learn features. At the same time, you might focus on a single framework, Angular or React, but be sure to be specialized on that. You could read all its documentations and browse files to figure out how it works.

I implemented my own frameworks to learn how things work. I think it's an effective way to experiment and build things for yourself. If there were one source I would recommend, it should be https://12factor.net , which is a website that lays out 12 different principles for robust application design in terms of anything from security, scalability, etc. I think people should know it.

Currently, you are writing the Modular JavaScript book series. Why do you focus on modularity?

In the early days, JavaScript was basically on copy paste of "HOW". People find snippets of code on the internet that would give them comments for websites. They go to copy paste them into their site and call it a day. As the language developed, the case will not match any more.

People become to be more professional and started developing JavaScript applications. Now, JavaScript applications have lots of modules. At first, those were pretty big modules. It's now much simpler to write small modules.

In my book series, I'm trying to teach people how to write concise and single-purpose modules. The reason is that people want modules to be specialized so that they can reuse them, test them, and even document them if needed. But the most important thing is scalability in terms of architecture. When you have 5 different modules, each one with 5,000 lines of code, it would be really hard to work with them. If you have 5,000 modules and each is 100 lines of code in length, it's much easier.

The series basically discuss how to obtain these highly modular applications. Then the later books in the series will talk about Test and Deployment.


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