enter image description here

enter image description here574805242

问: 1. 前端如何学习才高效呢? 2.学习node.js前,先要什么铺垫 3.应届毕业生有具有什么条件才能进入阿里巴巴之类的大公司学习呢?4.你推荐看视频学习,还是看书呢? 我个人喜欢看书,我觉得视频不细,但是应用性比较强。

enter image description here 朴灵

答:

  1. 话题比较大,我是学了大概6、7年才感觉好像有点懂了。现在回头总结下,大致分为几步:① 兴趣,② 多动手,③ 看规范。最最重要的是找到原理点,比如熟悉HTML标签、DOM、BOM、盒模型、原型链、作用域等。

  2. Node.js在应用层面其实是很简单的,有点基本的程序开发经验的人就可以上手学习了。

  3. 像BAT这类大公司招应届生无外是想招到适宜培养和成长的员工,作为人才储备。所以实践经验丰富、基础知识扎实、学习能力强之类的学生比较容易被青睐。

  4. 建议看书,看源码。

enter image description here 2gua

问:请朴灵介绍下Node在阿里的实践情况?以及对Node 2014发展趋势的分析?

enter image description here朴灵

答:

  • 阿里巴巴第一个上线的Node.js应用,是2011年7月上线的淘宝指数。它已经稳定运行了2年半的样子。在2012年,我们也将数据魔方从PHP切换到Node.js,在资源节省上和性能方面,都有显著提升。这两个产品是我们阿里对外的产品实践。事实上在阿里数据平台的一些内部产品中,我们已经完全通过Node.js来构建前端应用,和一些API服务。从事Node.js开发的人员大致在40人左右。目前在阿里,小微金服和主站也准备尝试通过Node来进行前端应用的开发。

  • 因为写稿的原因,我盯了Node核心社区半年左右的活跃情况。所以2014年的发展趋势我想大致如下: 1. Node内核的bugfix。 2. Node内核性能提升。 3. Node 1.0有望在2014年发布。 4. ES6带来的影响越来越多。异步编程的吐槽会越来越少。 5. 在社区,可能会有更多的框架出现。 6. 越来越多像PayPal这样的大公司将前端应用转向到Node。 7. NPM还会爆发。关于Node的创意还会涌现。

enter image description here 杨凯宁

问:作为一名JAVA开发者,我基本上是做后台的,或者说更喜欢做后台。如果说做一个功能,后台用1个小时,前端我需要5个小时或更长的时间,通常比较费劲。相对于前端的事件处理,我更倾向于jQuery而不是JavaScript,因为高效好用,能否给出Node.js和jQuery的比较~

enter image description here 朴灵

答: jQuery是浏览器中DOM接口的封装库。Node.js是构建在V8上的JavaScript运行时。Node.js等同于浏览器。

enter image description heredlitchi

问: node的安全性如何?

enter image description here 朴灵

答: Node由JS和C/C++俩部分构建。安全性方面与其他技术一样,该防御的要防御。

enter image description here ArchyFilafs

问: 接触node.js也有一个月了。 并没有很系统的把那一本node.js的书看完, 都是在做项目的时候,哪里不会就去查。基本各大社区,各个博客有关node的文章看了不少。现在用node写了几个简单的小程序,还有就是用hexo搭了个个人的博客。接下来感觉走到了一个关口,不知道接下去要往哪里努力,希望能在这里跟作者讨些建议。

enter image description here 朴灵

答: Node.js是很简单的,查查API就能完成大多数事情。你的情况属于已经入门了,还需要去深入。建议你真正用Node去做一个产品,这样就会遇到一些工程性的问题或底层的问题。

T踏雪无痕T

问: 1. 请问nodejs在分布式游戏server端开发中,您认为相比传统的C++是否有优势?不知道您对pomelo了解吗,如何评价他们这个项目?2. 现在nodejs在企业中的推广程度如何,是否已经有一些小组使用并产生线上产品。您预计未来几年node是否会有更多的公司更多的研发小组使用?什么样的公司更可能率先推广nodejs?3. 您是从什么时候开始学习nodejs的,是什么给了您学习的动力并写出了《深入浅出nodejs》。您对于其他哪些编程语言也有深入学习?

enter image description here 朴灵

答:

  1. 其实不用Node进行开发,也会需要通过C++来构建高性能服务,在开发门槛上C++和Node属于完全不同级别的。Node封装好了一个非常好的EventDriven和非阻塞IO模型。利用好它,可以节省很多开发时间。另外Node也有一些限制,不能随心所欲的使用,这一点,需要从框架或架构的层面上去解决,pomelo做的就是这样的事。

  2. 这个推广程度分国内外。在国外已经有大量的企业将Node应用在产品上了,最知名的案例莫过于LinkedIn的移动版和PayPal。在国内,相对保守一些,但是目前阿里、百度、腾讯、新浪、搜狐等,几乎可以说没有一家大厂没有用到node。创业公司和没有历史包袱、或者企业内部服务化做得比较好的团队,他们更有可能使用Node。

  3. 我是从2011年初开始学习Node.js的。从学习Node.js到写出这本书,主要还是基于兴趣在驱动。因为最早我也不能明白,为什么我会的javascript怎么就突然可以在后端运行了呢,怎么就这么牛逼呢。好奇心比较重。在主要以Node为主要开发环境之前,我经历的项目中有ASP.NET、PHP等环境,在大学期间还主要学过Java。

enter image description here米兰的小木匠

问: 1. 淘宝的项目中,node的项目占多大比例,国内node项目用的多吗? 2. 写js用原生的好,还是用coffee那种类型的好,请问您有什么看法吗?

enter image description here 朴灵

答:

  1. 淘宝的项目中,主流目前还是java。Node目前主要应用在阿里数据平台,用于数据产品或前端产品,以及一些服务API的构建。

  2. 我一直坚持用原生JS来写代码。并且自认为写的不比Coffee写出来的差。JS就是这样非常非常灵活的一种语言,可以把它写得很糟糕,页可以把它写得很漂亮。我倾向于了解这门语言的优点和缺点,然后把它的长处发挥出来。而不是借助于第三方的方式来被动改进。

enter image description heresunny

问: node.js可以应用在哪些领域?

enter image description here 朴灵

答: Node.js的设计目标是为了提供高性能服务器,它基于事件驱动的设计可以很好的降低资源的消耗,基于非阻塞IO的设计,使得它可以很好的面向网络实现并发。这意味着通过Node,可以以较少的资源实现面向网络等分布式环境编程,越是这样的环境,它越有优势。如果简单的回答这个问题的话,Node.js可以应用在所有领域。但最有效,最有优势的是面向分布式环境

enter image description here 此岸

问: 后端人员怎么学习nodejs

enter image description here 朴灵

答:后端人员学习Node的难点在于JavaScript和异步编程。如果这两个问题解决了,你就会发现它与其他后端也没什么本质上的差别。

enter image description here不见不散

问: 1. Node是火ryan基于JavaScript语言开发的那学node要注重它JavaScript 不同的哪些方面?2. node没有改变js那我是不是应该认为node比js包含更多的对象库和接口函数。

enter image description here 朴灵

答:

  1. Node其实只是最表面层是JavaScript。Node并没有改变JavaScript任何东西。如果说要注重Node中JavaScript的不同地方,可能最大的不同就是提供的API不同吧。

  2. 不会的。Node文档给出的API都是有相关测试用例的。JavaScript的核心很小,基本都没改到它,宿主环境提供的API不一样而已。

    Browser = JavaScript(ECMAScript) + BOM + DOM +… Node = JavaScript(ECMAScript) + fs + net + path + http + url + …

enter image description here C、先生

问: 1. 我希望听听朴老师对后端转到前端学习Node的一些建议。除了异步之外,对于在初入学习Node的时候有么有特别需要注意的地方、区别与其它高级语言?2. 现有的一些Node框架是什么看法?框架会对初学者产生什么影响呢?除了方便外会不会有坏的影响?3. Node的学习应该是个什么样的顺序呢?我个人在学习一门新东西的时候喜欢以业务来驱动、我会事先给定一个目标,我需要做出一个什么来,然后在通过这些需求来查询相关资料来完成目标。这样的缺点就是对于这门新东西的知识点很杂乱、不系统。所以我想听听朴老师对于Node的学习有没有系统的建议。让知识点相对规整一点。

enter image description here 朴灵

答:

  1. 这里几个概念要转换下。Node其实还是属于服务端的。只不过JavaScript在前端运用比较广泛。Node在设计中使用了事件驱动。应用到JavaScript,就广泛的应用了回调函数。一般的后端人员转换到Node的开发中,可能最不能适应的就是需要面对异步编程了。除了异步编程外,Node与其他后端环境差别并不太大。如果不适应,推荐深入了解下异步编程。JavaScript的基础要扎实一点,比如原型链、作用域链、模块、函数等。

  2. 目前流行的框架莫过于Express了。但我更喜欢它的中间件框架Connect。我觉得框架自然有它的优点,可以快速开发,不用将精力花费在底层上。 我的建议是初学者在会用框架之后,一定要去学习框架是如何构建的,它主要是为了解决什么问题而创建。如果一个开发者只满足于使用框架,那他可能永远都只是应用开发者。只有更了解底层的人,才能将框架的能力发挥得更好,甚至说创造出自己的,更牛逼的框架来。

  3. 我喜欢Node的一个原因是它相对较为底层,所以我可以基于它去构建一些有意思的东西。而不是像其他技术一样,一下给我整套的解决方案。我可以用它做更适合自己的解决方案。如果说还觉得吃力,我建议多看看社区的其他优秀项目。不谦虚的说,你可以看下我的这本《深入浅出Node.js》。它就是我自己系统学习Node.js的结晶,在其中,通过我自己的方式进行了Node相关知识点的整理。