您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 广告经营 > Node.js掠影(不四)
Node.js掠影不四@Alibaba-数据平台•Node.js介绍•异步编程•实战体验•企业级node开发Node.js•09年发布,最新稳定版本0.10.26•githubstars排名第三Node.js•基于googlev8引擎(快速)•事件驱动(不同的编程思维)•⾮非阻塞I/O(⾼高效)•单线程(模型简单,⽆无锁)Node.js特性事件循环•⽆无锁,逻辑简单•⽆无多线程、多进程的开销,⾼高性能•不⽤用等待耗时的I/O•异步编程很痛苦•单线程未捕获异常导致进程挂掉•CPU密集型操作堵塞整个线程单线程异步IO模型•跟随node源码分发的包管理⼯工具•精简的node内核的丰富扩展NPM•包数量增速惊⼈人NPMCompany•web服务•restfulAPI服务•前后端彻底分离的web前端服务•全栈web应⽤用•⾼高性能中间层•⾼高实时性应⽤用(游戏服务器/在线聊天室)ServerSideServerSideMeteorrestifyFront-endBeyondtheWebnode-webkit•node是基于v8,事件驱动的⾮非阻塞I/O框架•有⻜飞速发展的NPM和⾼高活跃度的社区•深⼊入到了web开发的每⼀一个⾓角落•同时不局限于web领域•虽然还不完美,但是慢慢成熟⼩小结•Node.js介绍•异步编程•实战体验•企业级node开发CallbackHelleventproxy•基于事件解耦•逻辑按照事件划分async•提供控制流辅助函数•series•waterfall•parallelQ•promise•getUser().then(success,fail);•jQuerygenerator•es6新标准中的特性•尚未落地到node稳定版•同步⽅方式编写异步代码•trycatch异常更多解决⽅方案?••Node.js介绍•异步编程•实战体验•企业级node开发开发流程框架选择测试编码实现⾃自动化部署线上监控⾃自动化部署•express?•node社区最热⻔门的web框架•易于组合和插拔的中间件•路由、模板引擎、等基础中间件模块很成熟框架选择框架选择•connect!•⽐比express更精简的内核•兼容express中间件•基础组件由⾃自⼰己实现,更强的掌控⼒力框架选择•koa!!•es6特性,完全基于generator•更轻松的异步解决⽅方案和错误处理•更灵活的中间件模型•getter/setter带来的延迟初始化和更灵活的使⽤用形式框架选择框架选择编码实现•代码规范很有必要•jshint•codereview•gitflow编码实现•Node.js社区推崇模块化•神器NPM•活跃的社区,6W+个模块模块化•通过package.json⽂文件管理依赖•从NPM安装依赖•抽离公⽤用代码,封装成模块•如何选择模块?•⾼高活跃度、测试完备、作者靠谱•尽量理解源码•及时反馈bug模块化模块化⼯工作流gitcheckout-bcodingjshintcodereviewmergeunittest•单元测试•mocha+should•集成测试•githubhook+travis-ci•gitlabhook+toast测试•打包机打包•gitpull•npminstall•setenv•configure•tar&&scp⾃自动化部署•⽣生产环境服务启动•启动node进程•检查服务进程和端⼝口监听•启动nginx(反向代理)•vip检查•服务上线⾃自动化部署•master+workers多进程模式•worker异常退出⾃自动重启•errorlog(node)报警监控•accesslog(nginx)统计分析•系统cpu/memory/load监控线上监控•Node.js介绍•异步编程•实战体验•企业级node开发nodeinAlinodeinAlinodeinAliWebServernodewebserverhbaseuictcicmyfoxmysqltairitierhsfrestfulmysqlhbasetairAPIServernodehbasemyfoxmysqltairnodeAPIserverrestfulmysqlhbase...phpjavahsftairOTStairrest...•node-hsf•node-tair•tfs•hbase•ots•sessionproxy•...背后的⼯工作•为什么需要?•私有模块⽆无法发布,代码复⽤用困难•社区模块质量良莠不⻬齐,⽆无法控制•官⽅方源安装速度太慢企业级NPM•官⽅方提供的全量同步⽅方案•可以解决安装速度过慢的问题•国内⺴⽹网络镜像官⽅方源太慢•并不是所有的库都会⽤用到企业级NPM•同步需要⽤用到的三⽅方包•发布私有的⼆二⽅方包•审核机制企业级NPM企业级NPM企业NPM官⽅方NPM私有模块项⺫⽬目公有模块部分单向同步发布回馈企业级NPM•可维护性更强的企业级NPM架构企业级NPM•基于企业NPM的管理系统•命令⾏行⼯工具•三⽅方包直接同步/⼆二⽅方包审核•发布权限分发给维护者•wiki•⽂文档中⼼心企业级NPM企业级NPM•阿⾥里NPM•国内NPM镜像:
本文标题:Node.js掠影(不四)
链接地址:https://www.777doc.com/doc-5948958 .html