查看: 10796|回复: 13

【有奖讨论】Node.js发展现状与展望

[复制链接]
认证徽章
论坛徽章:
277
马上加薪
日期:2014-02-19 11:55:14马上有对象
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有车
日期:2014-02-19 11:55:14马上有车
日期:2014-02-18 16:41:112014年新春福章
日期:2014-02-18 16:41:11版主9段
日期:2012-11-25 02:21:03ITPUB年度最佳版主
日期:2014-02-19 10:05:27现任管理团队成员
日期:2011-05-07 01:45:08
发表于 2012-10-18 01:16 | 显示全部楼层 |阅读模式
本帖最后由 jieforest 于 2012-11-12 13:17 编辑

Node.js今年有点火。
Node.js是一个Javascript运行时环境(Runtime)。实际上它是对Google V8 JavaScript引擎进行了封装。V8引擎本身使用了一些最新的编译技术。Node.js采用一系列“非阻塞”库来支持事件循环的方式。
Node.js可以用于创建快速、可扩展的网络应用程序。Node.js使用了事件驱动、非阻塞的I/O模型,使得它更轻量级、更高效,对于数据密集型的应用或者是实时应用非常适合。

【发展简史】
1. 2009年2月,Ryan Dahl在博客上宣布准备基于V8创建一个轻量级的Web服务器并提供一套库。
2. 2009年5月,Ryan Dahl在GitHub上发布了最初版本的部分Node.js包,随后几个月里,有人开始使用Node.js开发应用。
3. 2009年11月和2010年4月,两届JSConf大会都安排了Node.js的讲座。
4. 2010年年底,Node.js获得云计算服务商Joyent资助,创始人Ryan Dahl加入Joyent全职负责Node.js的发展。
5. 2011年7月,Node.js在微软的支持下发布Windows版本。
6. Node.js当前的版本为0.8.12版。

【讨论话题】
1. Node.js一般应用于哪些应用场景?适合于哪些场景?
2. Node.js在Web开发中有哪些优势和劣势?
3. 根据您的经验判断,Node.js的未来会怎么样?

【活动时间】2012-10-18——2012-11-8

【活动奖励】针对以上任意一个问题跟帖回答,我们会在讨论结束后,随机抽选讨论最积极的5名网友赠送《深入分析Java Web技术内幕》这本书作为奖励。

【图示信息】
深入分析Java  Web技术内幕.gif

作  者:许令波 著
出 版 社: 电子工业出版社
ISBN:9787121179907

《深入分析Java Web技术内幕》围绕Java Web相关技术从三方面全面深入地进行阐述。首先介绍前端知识,主要介绍Java Web开发中涉及的一些基本知识,包括Web请求过程、HTTP协议、DNS技术和CDN技术。其次深入介绍Java技术,包括I/O技术、中文编码问题、Javac编译原理、class文件结构解析、ClassLoader工作机制及JVM的内存管理等。最后介绍Java服务端技术,主要包括Servlet、Session与Cookie、Tomcat与Jetty服务器、Spring容器、Ibatis框架和Velocity框架等原理介绍。本书不仅介绍这些技术和框架的工作原理,而且结合示例来讲解,通过通俗易懂的文字和丰富生动的配图,让读者充分并深入理解它们的内部工作原理,同时还结合了设计模式来介绍这些技术背后的架构思维。


本期活动获奖会员为:

chszs
jief

注:打酱油的、讨论不够积极的没有奖励哦!


论坛徽章:
63
2010广州亚运会纪念徽章:台球
日期:2010-10-18 12:43:48茶鸡蛋
日期:2013-01-09 10:59:002013年新春福章
日期:2013-02-25 14:51:24奥运会纪念徽章:帆船
日期:2013-04-02 17:07:052013年新春福章
日期:2013-04-08 17:42:48奥运纪念徽章
日期:2013-07-18 13:55:12优秀写手
日期:2013-12-18 09:29:10马上有车
日期:2014-03-20 16:13:24马上有房
日期:2014-03-20 16:14:11马上有钱
日期:2014-03-20 16:14:11
发表于 2012-10-18 10:26 | 显示全部楼层
本帖最后由 chszs 于 2012-10-18 18:54 编辑

1. Node.js一般应用于哪些应用场景?适合于哪些场景?

正如NodeJS官方所言,NodeJS最适合用于开发网络程序,尤其适合开发数据密集型的应用或者是实时应用程序。

比如说,用NodeJS可以开发静态文件服务器,海报图片服务器等。据说LinkedIn公司的程序员用NodeJS程序代替原先的Rails程序,结果节省了27台服务器,速度和效率都得到了大幅度的提升。

使用道具 举报

回复
论坛徽章:
63
2010广州亚运会纪念徽章:台球
日期:2010-10-18 12:43:48茶鸡蛋
日期:2013-01-09 10:59:002013年新春福章
日期:2013-02-25 14:51:24奥运会纪念徽章:帆船
日期:2013-04-02 17:07:052013年新春福章
日期:2013-04-08 17:42:48奥运纪念徽章
日期:2013-07-18 13:55:12优秀写手
日期:2013-12-18 09:29:10马上有车
日期:2014-03-20 16:13:24马上有房
日期:2014-03-20 16:14:11马上有钱
日期:2014-03-20 16:14:11
发表于 2012-10-18 19:15 | 显示全部楼层
2. Node.js在Web开发中有哪些优势和劣势?

NodeJS的优势有:

1)性能优异,内存占用少,在某些场景下性能提升极大;

2)尤其适合做Web开发的程序员,因为可以充分发挥他们所掌握的JavaScript技能;

3)前端开发者可以与后端开发者在一个小组内协作开发,因为前后端都采用了JavaScript语言;

4)NodeJS对硬件资源的利用率极高,而且Google V8引擎处于不断的发展过程中,性能还将日益提高;

5)NodeJS的开发者可以更加专注于应用和逻辑的开发;

6)NodeJS周边库非常多,可以重用以便快速完成开发任务。

NodeJS的缺点有:

1)有很多的库需要掌握,学习时间长,破耗精力;

2)NodeJS的函数较多,要记住并掌握的难度不小;

3)NodeJS开发偏底层一些,代码的易读性不如Java;

4)NodeJS的文档较少,中文书目前只有一本,而且写得很差。

使用道具 举报

回复
论坛徽章:
63
2010广州亚运会纪念徽章:台球
日期:2010-10-18 12:43:48茶鸡蛋
日期:2013-01-09 10:59:002013年新春福章
日期:2013-02-25 14:51:24奥运会纪念徽章:帆船
日期:2013-04-02 17:07:052013年新春福章
日期:2013-04-08 17:42:48奥运纪念徽章
日期:2013-07-18 13:55:12优秀写手
日期:2013-12-18 09:29:10马上有车
日期:2014-03-20 16:13:24马上有房
日期:2014-03-20 16:14:11马上有钱
日期:2014-03-20 16:14:11
发表于 2012-10-18 19:16 | 显示全部楼层
3. 根据您的经验判断,Node.js的未来会怎么样?

从长期来看,我对NodeJS看好。如果NodeJS能整合Dart语言或TypeScript语言,那么前景会更好。

使用道具 举报

回复
论坛徽章:
350
2006年度最佳版主
日期:2007-01-24 12:56:49NBA大富翁
日期:2008-04-21 22:57:29地主之星
日期:2008-11-17 19:37:352008年度最佳版主
日期:2009-03-26 09:33:53股神
日期:2009-04-01 10:05:56NBA季后赛大富翁
日期:2009-06-16 11:48:01NBA季后赛大富翁
日期:2009-06-16 11:48:01ITPUB年度最佳版主
日期:2011-04-08 18:37:09ITPUB年度最佳版主
日期:2011-12-28 15:24:18ITPUB年度最佳技术原创精华奖
日期:2012-03-13 17:12:05
发表于 2012-10-18 20:51 | 显示全部楼层
不看好这东西!

使用道具 举报

回复
认证徽章
论坛徽章:
277
马上加薪
日期:2014-02-19 11:55:14马上有对象
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有车
日期:2014-02-19 11:55:14马上有车
日期:2014-02-18 16:41:112014年新春福章
日期:2014-02-18 16:41:11版主9段
日期:2012-11-25 02:21:03ITPUB年度最佳版主
日期:2014-02-19 10:05:27现任管理团队成员
日期:2011-05-07 01:45:08
发表于 2012-10-19 21:09 | 显示全部楼层
Node.js作为服务器端的JavaScript语言,有很多思想来源于以前的CommonJS项目。

使用道具 举报

回复
论坛徽章:
11
ITPUB 11周年纪念徽章
日期:2012-10-09 18:05:372014年新春福章
日期:2014-02-18 16:41:11技术图书徽章
日期:2013-11-19 14:48:37ITPUB社区12周年站庆徽章
日期:2013-10-08 17:44:422013年新春福章
日期:2013-04-08 17:42:482013年新春福章
日期:2013-02-25 14:51:24奥运纪念徽章
日期:2012-11-28 09:37:30奥运纪念徽章
日期:2012-11-27 15:37:34奥运纪念徽章
日期:2012-11-27 09:46:24奥运会纪念徽章:篮球
日期:2012-10-12 15:12:02
发表于 2012-10-20 20:37 | 显示全部楼层
Node.js实现一个Web服务器太简单了,只需几行代码:
比如一个"Hello World"的Web程序,代码如下:
  1. // 载入http模块
  2. var http = require('http');
  3. // create http server
  4. http.createServer(function (req, res) {
  5. // content header
  6. res.writeHead(200, {'content-type': 'text/plain'});
  7. // write message and signal communication is complete
  8. res.end("Hello, World!\n");
  9. }).listen(8124);
  10. console.log('Server running on 8124');
复制代码
其次,用Node.js读取服务器文件也非常简单,比如代码如下:
  1. var http = require('http');
  2. var fs = require('fs');

  3. http.createServer(function(req, res){
  4.         fs.readFile('greeter.js', 'utf-8', function(err, data){
  5.                 res.writeHead(200, {'Content-Type': 'text/plain'});
  6.                 if(err)
  7.                         res.write('Could not find or open file for reading\n');
  8.                 else
  9.                         res.write(data);
  10.                 res.end();
  11.         });
  12. }).listen(8124, function(){
  13.         console.log('bound to port 8124');
  14. });

  15. console.log('Server running on 8124/');
复制代码

使用道具 举报

回复
论坛徽章:
11
ITPUB 11周年纪念徽章
日期:2012-10-09 18:05:372014年新春福章
日期:2014-02-18 16:41:11技术图书徽章
日期:2013-11-19 14:48:37ITPUB社区12周年站庆徽章
日期:2013-10-08 17:44:422013年新春福章
日期:2013-04-08 17:42:482013年新春福章
日期:2013-02-25 14:51:24奥运纪念徽章
日期:2012-11-28 09:37:30奥运纪念徽章
日期:2012-11-27 15:37:34奥运纪念徽章
日期:2012-11-27 09:46:24奥运会纪念徽章:篮球
日期:2012-10-12 15:12:02
发表于 2012-10-20 20:39 | 显示全部楼层
这样,一个读写服务器文件的程序就完成了,可以看到,Node.js的功能确实非常强大。

HTML5的规范之一:WebSocket,是一种非常好的通信技术,用Node.js实现WebSocket也并不难。所以,用Node.js开发网络程序是一个很好的选择。

使用道具 举报

回复
论坛徽章:
401
紫蛋头
日期:2012-05-21 10:19:41迷宫蛋
日期:2012-06-06 16:02:49奥运会纪念徽章:足球
日期:2012-06-29 15:30:06奥运会纪念徽章:排球
日期:2012-07-10 21:24:24鲜花蛋
日期:2012-07-16 15:24:59奥运会纪念徽章:拳击
日期:2012-08-07 10:54:50奥运会纪念徽章:羽毛球
日期:2012-08-21 15:55:33奥运会纪念徽章:蹦床
日期:2012-08-21 21:09:51奥运会纪念徽章:篮球
日期:2012-08-24 10:29:11奥运会纪念徽章:体操
日期:2012-09-07 16:40:00
发表于 2012-10-21 18:26 | 显示全部楼层
2. Node.js在Web开发中有哪些优势和劣势?
javascript写的,开发起来快速但不知道性能怎么样

使用道具 举报

回复
论坛徽章:
57
SQL极客
日期:2013-12-09 14:13:35秀才
日期:2016-01-21 13:42:39秀才
日期:2016-01-13 12:14:26SQL大赛参与纪念
日期:2016-01-13 10:32:19SQL数据库编程大师
日期:2016-01-13 10:30:43秀才
日期:2015-12-14 14:47:54秀才
日期:2015-10-19 15:50:392015年新春福章
日期:2015-03-06 11:58:18懒羊羊
日期:2015-03-04 14:52:11优秀写手
日期:2014-11-08 06:00:14
发表于 2012-10-27 14:24 | 显示全部楼层
我们公司还在用spring和ibatis,不知楼主推荐的这项技术如何

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 
京ICP备09055130号-4  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表