通过近期的面试,我认识到自己的学习方法还是有问题,面百度的时候面试官问我,为什么要用node,为什么不用php,对于只学过node几天的我当时就楞了,大概想到单线程事件轮询和多线程,后来面试官告诉我是异步和同步的差异,在实习的时候也没问过为什么我们就用的是node而不是php,只是觉得大家不都用node么,前几天师兄也建议我学习一个东西,首先不要去看文档和具体操作,而要透过大牛们是怎么看待这个东西的,来发现这个东西解决了什么问题,跟其他不同在哪里,这个东西的设计思想是什么,这应该就是所谓的技术选型吧,对于别人给什么就用什么的我以往很少思考技术选型的问题,实在是一个缺陷,更多的时候,我只是一个使用者而不是开发者
nodejs主要思想
Node.js的主要思想是:面对在分布式设备上运行的数据密集型实时应用程序,使用非阻塞,事件驱动的I / O保持轻量级和高效性。
一个快速计算:假设每个线程可能有一个伴随的2 MB内存,运行在具有8 GB RAM的系统上,我们理论上最多有4000个并发连接,以及线程之间的上下文切换的成本。这是您通常在传统的网络服务技术中处理的场景。通过避免这一切,Node.js实现了超过1M个并发连接的可伸缩性级别(作为概念验证)。
why use nodejs
题叶的回答:
Node.js 专注解决 Web 服务器普遍存在的 IO. 数据库访问时间缓慢, 而 CPU 大量时间闲置的问题, 顺便解决广大前端开发者不方便写后端服务器的问题. 加上用的人多了, 别的好处也滋生了. 如果考虑其他的方面, Node.js 未必是好的选择.. 也可以不用.
是前端尝试学习后端的最佳选择
曾经有人跟我说会写javascript就会写node
nodejs实际上是一种上下文,允许在后端运行javascript代码
实现在后端运行javascript代码原理:使用google的v8引擎解释和执行javascript代码
事件驱动,异步编程
Node.js的设计思想中以事件驱动为核心,它提供的绝大多数API都是基于事件的、异步的风格。意味着虽然在代码结构中,函数看似是依次注册的,但是它们并不依赖于自身出现的顺序,而是等待相应的事件触发。重要的优势在于,充分利用了系统资源,执行代码无须阻塞等待某种操作完成,有限的资源可以用于其他的任务。此类设计非常适合于后端的网络服务编程,Node.js的目标也在于此。在服务器开发中,并发的请求处理是个大问题,阻塞式的函数会导致资源浪费和时间延迟。通过事件注册、异步函数,开发人员可以提高资源的利用率,性能也会改善。
它很快
Node.js是一个JavaScript运行时,它使用Google开发的V8引擎在Chrome中使用。 V8以闪电般的速度编译和执行JavaScript,主要是因为V8将JavaScript编译为本机机器码。
换句话说,读取和写入网络连接,读取/写入文件系统和读取/写入数据库,这些都是Web应用程序中非常常见的任务 - 在Node中非常快速地执行
前后端语言统一
使用Node.js可以在客户端,服务器和数据库中使用相同的语言。您可以将数据以其原生JSON格式从浏览器保存到磁盘
参考资料
TOP 10 REASONS TO USE NODE.JS
Why The Hell Would I Use Node.js?
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。