首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

面向 Java 开发人员的 Node.js(1)简介

面向 Java 开发人员的 Node.js(1)简介

在过去的几年中,JavaScript 已经成为 Web 应用程序开发的幕后英雄。这样的情景让那些习惯将 JavaScript 称为 “玩具式语言” 的软件开发人员大跌眼镜。尽管有其他更流行的语言(这里是说开发人员忠实拥护的那些),而 JavaScript 作为标准且浏览器中立的脚本语言的地位从未动摇过。在客户端 Web 开发方面,它可能是世界上运用最广泛的语言。
Java 开发人员的 JavaScript JavaScript 是现代 Java 开发人员的必备工具,而且并不难学。 Andrew Glover,他将会介绍用来构建一流的 Web 应用程序所需的语法,其中包括 JavaScript 变量、类型、函数和类。

JavaScript 在服务器端脚本也占有一席之地,而且影响还会越来越大。虽然过去 JavaScript 在服务器端做过一些尝试,但并没有什么大的收获,除了 Node.js 或 Node。
Node 专门用来协助开发人员构建可扩展的网络程序,它是服务器端的编程环境,但几乎重建了整个 JavaScript 以服务于新一代的开发人员。对很多 Java 开发人员而言,Node 最大的吸引力在于软件并发的新方法。尽管 Java 平台在并发方式上还会不断进步(预计在 Java 7 和 Java 8 中会有大幅提升),但事实是 Node 满足了一个需求,它以更轻量级方式进行处理,这是众多 Java 开发人员想要的。就像客户端脚本使用 JavaScript 一样,在 Node 环境下编辑服务器端脚本非常棒,因为它非常有效,而且它能够在很多 Java 开发人员遇到挑战的领域中发挥作用。
在本文中,我将为您介绍服务器端脚本的革命,那就是 Node。首先我们从整体结构上总揽全局,看看是什么让 Node 与众不同,然后会演示如何快速构建一个使用 MongoDB 持久化数据的可扩展性 Web 应用程序。您将会亲身体验 Node 是多么有趣,并且看到用它来组建一个有效的 Web 应用程序有多快。
Node 的事件驱动并发Node 是建立在 Google 的 V8 JavaScript 引擎基础上的一个可扩展、事件驱动 I/O 环境。Google V8 实际上在执行之前就将 JavaScript 编译到本机机器代码中,从而达到快速的运行时性能,实际上这与 JavaScript 关系不大。Node 本身能够让您快速构建速度极快、高度并发的网络应用程序。
事件驱动 I/O 对 Java 开发人员来说可能有些陌生,但并非是全新的概念。与 Java 平台中使用的多线程编程模型不同,Node 处理并发的方法是单线程加上事件循环。Node 结构可以确保不会不堵塞和异步 I/O 传输。那些通常会引起堵塞的调用如等待数据库查询结果等在 Node 中不会发生。Node 应用程序不是等待代价高昂的 I/O 活动来完成操作,而是会发出一个回调(roll back)。当资源返回后,会异步调用关联的回调。
为什么选择 Node.js?Java 平台处理并发的方式帮助确立了其在企业开发方面的领导地位,这很难发生改变。诸如 Netty(以及 Gretty;参阅 )的框架和诸如 NIO 和 java.util.concurrent 的核心库,使得 JVM 成为处理并发的首选。Node 的特别之处就在于它是专门为应对并发编程而设计的现代开发环境。Node 的事件驱动编程方式意味着,您无需添加额外的库来处理并发性,这对关注多核硬件的开发人员来说是个好消息。

并发性在 Node 程序中照样工作。如果在 Java 平台上运行之前的场景,我可能会选择复杂且耗时的方法,从传统的线程到 Java NIO 中较新的库,甚至是改善和更新的 java.util.concurrent 包。尽管 Java 的并发很强大,但却难以理解,还要用它来编码!相比而言,Node 的回调机制是嵌在语言内部的;您不需要添加诸如 synchronized 这样额外的结构使它工作。Node 的并发模型极其简单,让广大的开发人员都能够接受。
Node 的 JavaScript 语法也为您减少敲键的次数,节省大量时间。只需少量代码,您就能构建快速的、可扩展的 Web 应用程序,并且它能处理大量的并发连接。当然您也可以在 Java 平台上实现,但将会需要更多代码行和一大堆库和结构。如果您担心对新的编程环境不熟悉,那么大可不必:如果已经了解一些 JavaScript,那么 Node 很容易学习,这一点我可以向您保证。
返回列表