Server Side Javascript—— node.js<br />——by zffl<br />
Javascript简介<br />NodeJs实现<br />NodeJs实例<br />NodeJs社区<br />
Javascript是一种类C的编程语言<br />有动态性、函数式、面对对象等特征<br />最不受重视的、误解最多的编程语言<br />然而又是被掌握最多的,GitHub&StackOF最流行的<br />浏览器的标配,作为一种脚本、胶水语...
模块机制<br />内置对象<br />解释器V8<br />异步:libev,libeio<br />启动流程<br />Nodejs实现<br />
浏览器模型<br /><script>标签:<br />Loader:按需加载(Kissy,YUI,Dojo)dojo.require<br />NodeJs(src/node.js,lib/*.js)<br />require:<br />v...
V8解释器的接口,异步事件及IO接口<br />NodeJs<br />Native API的process对象(process.binding)<br />编程API的系统模块(net,http,file,utils)<br />编程API的...
V8:提供Js运行时支持<br />创建了一个process对象,提供系统API的封装<br />执行主文件node.js,compile依赖模块,执行用户代码<br />libev:<br />IOWatcher,process.loop<b...
freelist:对象池<br />events:提供异步事件处理机制<br />net:网络封装<br />http:基于net实现http协议<br />Nodejs实现分析——内置对象<br />
路由(50行):支持controller,action,url的配置<br />模板(190行):支持include,缓存,各种js语法。<br />控制器+视图(不到100行):经典MVC模型都支持<br />配置(0行):配置项即Js对象<...
fu.js:一个简单的web框架,提供路由和静态文件等支持<br />server.js:聊天服务的实现<br />支持的方法:who,join,part,recv,send<br />关键部分实现:<br />Sesseion管理:用户状态信...
Web frameworks<br />Database<br />Templating<br />CSS Engines<br />Build and Deployment<br />Package Management Systems<br...
Testing / Spec Frameworks
Wrappers
Parsers
Debugging / Console Utilities
Compression
Graphics
Upcoming SlideShare
Loading in …5
×

Nodejs部门分享

3,793 views

Published on

在部门做的nodejs分享。

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
3,793
On SlideShare
0
From Embeds
0
Number of Embeds
311
Actions
Shares
0
Downloads
57
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Nodejs部门分享

  1. 1. Server Side Javascript—— node.js<br />——by zffl<br />
  2. 2. Javascript简介<br />NodeJs实现<br />NodeJs实例<br />NodeJs社区<br />
  3. 3. Javascript是一种类C的编程语言<br />有动态性、函数式、面对对象等特征<br />最不受重视的、误解最多的编程语言<br />然而又是被掌握最多的,GitHub&StackOF最流行的<br />浏览器的标配,作为一种脚本、胶水语言<br />ECMA Script标准的一种实现,仅语言定义(AIR)<br />常见的Js虚拟机:firefox:SpiderMonkey, chrome:V8<br />CommonJs规范与NodeJs<br />Javascript简介——A re-introduction to JavaScript<br />
  4. 4. 模块机制<br />内置对象<br />解释器V8<br />异步:libev,libeio<br />启动流程<br />Nodejs实现<br />
  5. 5. 浏览器模型<br /><script>标签:<br />Loader:按需加载(Kissy,YUI,Dojo)dojo.require<br />NodeJs(src/node.js,lib/*.js)<br />require:<br />var fu = require("./fu") 加载文件调用process.compile<br />var net = require('net') 调用系统预加载代码实现或第一种<br />var binding = process.binding(‘net’) 调用native实现<br />参考:<br />Rendering in WebKit:http://www.youtube.com/watch?v=RVnARGhhs9w&feature=autofb<br />Nodejs实现分析——模块<br />
  6. 6. V8解释器的接口,异步事件及IO接口<br />NodeJs<br />Native API的process对象(process.binding)<br />编程API的系统模块(net,http,file,utils)<br />编程API的用户模块(connect,socket.io,dnode)<br />用户程序<br />Nodejs实现分析——体系<br />
  7. 7. V8:提供Js运行时支持<br />创建了一个process对象,提供系统API的封装<br />执行主文件node.js,compile依赖模块,执行用户代码<br />libev:<br />IOWatcher,process.loop<br />libeio:<br />file.js模块<br />参考:<br />V8 JavaScript Engine Embedder's Guide:http://code.google.com/intl/zh-CN/apis/v8/embed.html<br />libev docs:http://pod.tst.eu/http://cvs.schmorp.de/libev/ev.pod<br />Nodejs实现分析——V8和asynchronous<br />
  8. 8. freelist:对象池<br />events:提供异步事件处理机制<br />net:网络封装<br />http:基于net实现http协议<br />Nodejs实现分析——内置对象<br />
  9. 9. 路由(50行):支持controller,action,url的配置<br />模板(190行):支持include,缓存,各种js语法。<br />控制器+视图(不到100行):经典MVC模型都支持<br />配置(0行):配置项即Js对象<br />服务器:高性能异步IO服务器Node.js<br />参考:<br />http://cnodejs.org/blog/?p=342:原文出处,作者QLeelulu<br />http://www.kuwata-lab.com/tenjin/jstenjin-users-guide.html:js模板引擎jsTenjin<br />Nodejs实例——实现一个简单的MVC框架<br />
  10. 10. fu.js:一个简单的web框架,提供路由和静态文件等支持<br />server.js:聊天服务的实现<br />支持的方法:who,join,part,recv,send<br />关键部分实现:<br />Sesseion管理:用户状态信息<br />消息管理:channel(appendMessage, query)<br />client.js和服务器的五个接口交互<br />长连接的客户端处理<br />Nodejs实例——实现一个简单的聊天服务器<br />
  11. 11. Web frameworks<br />Database<br />Templating<br />CSS Engines<br />Build and Deployment<br />Package Management Systems<br />Module Loader<br />OpenSSL / Crypto / Hashing<br />SMTP<br />TCP / IP<br />RPC<br />Web Sockets & Ajax<br />Message Queues<br />NodeJs社区——node.js模块(3000+)<br /><ul><li>Class systems
  12. 12. Testing / Spec Frameworks
  13. 13. Wrappers
  14. 14. Parsers
  15. 15. Debugging / Console Utilities
  16. 16. Compression
  17. 17. Graphics
  18. 18. Payment Gateways
  19. 19. API clients
  20. 20. Flow control / Async goodies
  21. 21. I18n and L10n modules
  22. 22. Boilerplates
  23. 23. Other</li></ul>参考:<br />模块分类数据:https://github.com/ry/node/wiki/modules<br />模块数量来源:http://npmjs.org<br />
  24. 24. Cloud9Ide:完全js编写的javascript IDE<br />coffee-script:新语言,兼有python,ruby的优良特性<br />jsdom:实现了dom level 1-3,kissy,yui,dojo等可运行<br />socket.io:跨浏览器websocket<br />connect:web开发框架<br />node-mysql-native: node mysqlclient<br />redis-node:noderedisclient<br />。。。。。。<br />NodeJs社区——经典项目<br />
  25. 25. list comprehensions<br />eat food for food in ['toast', 'cheese', 'wine']<br />countdown = (num for num in [10..1])<br />Function & Lambda<br />square = (x) -> x * x<br />cube = (x) -> square(x) * x<br />Existential Operator<br />solipsism = true if mind? and not world?<br />NodeJs社区——经典项目——coffescript<br />
  26. 26. redis-node <br />pure javascript<br />implement full redis protocol<br />Other Client<br />node-mysql-native<br />node-handlersocket <br />tyrant ,mongodb,memcached…<br />Database Server<br />awesome:a Redis clone in node.js<br />NodeJs社区——经典项目——Database<br />
  27. 27. JavaScript is the most popular language on GitHub & StackOverflow<br />Refer: http://www.dataists.com/2010/12/ranking-the-popularity-of-programming-langauges/<br />
  28. 28. 国外:<br />http://groups.google.com/group/nodejs<br />http://substack.net/<br />国内:<br />http://cnodejs.org/blog/<br />http://www.douban.com/group/node.js/<br />NodeJs社区——讨论组<br />
  29. 29. Q&A<br />

×