基于Node.js(express)实现业务层的方案推荐
杨阳 yangyang@ldpala.com
诚致文俊
现状问题

亟需人手的模块;经验和兴趣最多的领域
一、为什么选Node.js
核心搜索node优势关键字
"Node vs Php/Python/Ruby/Java/..."
"express vs laravel/django/rails/jsp/..."
选择技术方案务实第一
概述
- NodeJS是一个使用了Google高性能V8引擎的服务器端JavaScript实现。它提供了一个完全非阻塞I/O栈,与JavaScript提供的闭包和匿名函数相结合,使之成为编写高吞吐量网络服务程序的优秀平台。
原因一:高性能
- 因为V8虚拟机的高性能,node.js几乎强过所有主流解释型语言(python3、php、ruby、perl、lua)
- 一个综合的编程语言性能评测(benchmark)网站,可以任何两种语言进行对比
原因二:高并发异步IO
原因三:活跃的社区,丰富的库
- 不缺文档,不缺库,不用重新发明轮子。
- 对于初学上手非常重要,幸运的是社区非常强大,第三方库的库非常广泛。
- https://www.npmjs.com/
原因四:部署方便快捷
- grunt, mocha, docker
- Digital Ocean等vps标准化集成,可直接参考业界成熟部署方式,MEAN
- 可以独自部署,也可通过nginx反向代理完美结合二者的最长处

原因五:业界已有广泛成熟应用
- “没落”的大公司:稳。列表,如paypal/linkedin taobao
- "其实到今天为止,很少有哪些大的互联网公司是和 Node.js 无关的"
- 创业的小公司:快。不计其数。采用MEAN stack很多。
- "前后端统一,人人可全栈",足以吸引太多初创企业。
- 开源项目:新。 github projects
- 典型例子:强。Pomelo,网易开源的游戏服务端框架
- "高性能、分布式、实时的多人在线游戏引擎,对服务器的并发及性能要求最高的Web应用之一"
原因六:顺势而为
- Google Trends: PHP vs Node
- 2014、2015年是JavaScript顺势之年


不断被验证的Atwood定律
Any application that can be written in JavaScript,
will eventually be written in JavaScript.
服务器端(node)、数据库(mongo)、集成部署(grunt)、游戏引擎(cocos2d-js)、移动APP(Hybrid-app)、移动WebApi(微信js-sdk)
二、Web开发经历
一直在成为专家的路上努力
最感兴趣也最擅长后端业务层(离客户端最近的后台)
Web开发实战经历
- Java(jsp)-本科: 入门web/http
- Nginx+php-本科: 调研了业界问题(高并发C10k/安全)
- Ruby(rails)-研一博士课程:Rest Web API理论
- Python(django)-研二所里项目和创业项目:技术成功
- Node.js(express)-小米一年:项目成功,带动他人
- 收获了真实的技术和来自心底的快乐
Web开发实战经历
- 起因: “你一定要成为咱组的web专家“
- 发展:自己钻研并出活,说服新主管并得到赞许,教学
- 结果:不是高手也是熟手,当不了专家也能作师傅
- 两个网站共5个系统从一无所有到部署上线
- 近半年来提交近 40K行代码
- 教会三人入门能开发
- 解决常见的很多问题,读若干本书,写若干技术随笔
- 总结: node天生为解决网络服务而存在,express是所见过所用过的最爽的web框架,解决问题最快
- 运行快、开发快、部署快、扩展快、学习快。
三、进度承诺
该亮剑的时候,宁愿挖坑一拼
不谈计划进度的技术设计方案是耍流氓
保守计划
- 2天见网站,每天有进展
- 1周上下各层联通可用
- 1月网站基本成型可上线
- 协作培养展示层的人员开发
- 一切维护升级和改版
反之...
- 为他人手下,非不情愿;但考虑进度,夜不能寐
- 无他意,市场价值如此
- 手中已有一把钢剑,无需再铸一把铁剑
- 与其寄生团队“学技术”,更愿意用自身技术贡献团队

未来需要的帮助
- 设计上模块间的咨询,高手建议多多益善
- 支付模块
- 安全考虑
委以重任,必不敢负
杨阳 yangyang@ldpala.com
Node
By pro-yy
Node
- 875