Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
企业级Node.js开发
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Jackson Tian
June 30, 2013
Programming
8
520
企业级Node.js开发
于QCon2013北京分享。关于在企业中进行Node实践中的一点经验。
Jackson Tian
June 30, 2013
Tweet
Share
More Decks by Jackson Tian
See All by Jackson Tian
Node简介
jacksontian
5
270
git-social-coding-system
jacksontian
6
110
Node的核心与红利
jacksontian
5
770
Other Decks in Programming
See All in Programming
登壇資料を作る時に意識していること #登壇資料_findy
konifar
4
1.5k
AIと一緒にレガシーに向き合ってみた
nyafunta9858
0
250
Package Management Learnings from Homebrew
mikemcquaid
0
230
今こそ知るべき耐量子計算機暗号(PQC)入門 / PQC: What You Need to Know Now
mackey0225
3
380
Patterns of Patterns
denyspoltorak
0
1.4k
MDN Web Docs に日本語翻訳でコントリビュート
ohmori_yusuke
0
650
Amazon Bedrockを活用したRAGの品質管理パイプライン構築
tosuri13
5
760
React 19でつくる「気持ちいいUI」- 楽観的UIのすすめ
himorishige
11
7.5k
疑似コードによるプロンプト記述、どのくらい正確に実行される?
kokuyouwind
0
390
Best-Practices-for-Cortex-Analyst-and-AI-Agent
ryotaroikeda
1
110
15年続くIoTサービスのSREエンジニアが挑む分散トレーシング導入
melonps
2
220
CSC307 Lecture 08
javiergs
PRO
0
670
Featured
See All Featured
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
34k
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
250
Evolving SEO for Evolving Search Engines
ryanjones
0
130
Exploring anti-patterns in Rails
aemeredith
2
250
Information Architects: The Missing Link in Design Systems
soysaucechin
0
780
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
54
Color Theory Basics | Prateek | Gurzu
gurzu
0
200
Marketing to machines
jonoalderson
1
4.6k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.2k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
38
2.7k
Stop Working from a Prison Cell
hatefulcrawdad
273
21k
エンジニアに許された特別な時間の終わり
watany
106
230k
Transcript
企业级Node.js开发 阿⾥里巴巴数据产品中的Node.js实践 by @⽥田永强 1 13年4月22⽇日星期⼀一
⾃自我介绍 • ⽥田永强/@朴灵 • 阿⾥里巴巴/数据平台/数据产品部/⼯工程师 • CNode社区成员 2 13年4月22⽇日星期⼀一
演讲议程 • 数据产品 • 协作开发 • 质量保证 • 异构共存 3
13年4月22⽇日星期⼀一
数据产品 4 13年4月22⽇日星期⼀一
数据产品 4 13年4月22⽇日星期⼀一
数据产品 4 13年4月22⽇日星期⼀一
数据产品 4 13年4月22⽇日星期⼀一
数据产品 4 13年4月22⽇日星期⼀一
数据产品 4 13年4月22⽇日星期⼀一
数据产品 4 13年4月22⽇日星期⼀一
5 13年4月22⽇日星期⼀一
5 13年4月22⽇日星期⼀一
5 13年4月22⽇日星期⼀一
5 13年4月22⽇日星期⼀一
5 13年4月22⽇日星期⼀一
业务特点 6 13年4月22⽇日星期⼀一
业务特点 • 数据源(类型)多 6 13年4月22⽇日星期⼀一
业务特点 • 数据源(类型)多 • 数据量⼤大 6 13年4月22⽇日星期⼀一
业务特点 • 数据源(类型)多 • 数据量⼤大 • 分布式 6 13年4月22⽇日星期⼀一
Why Node? 7 13年4月22⽇日星期⼀一
Why Node? IO开销 花费CPU时钟周期 CPU Cache L1 3 CPU Cache
L2 14 RAM 250 Disk 41000000 Net 240000000 7 13年4月22⽇日星期⼀一
Why Node? 7 13年4月22⽇日星期⼀一
Why Node? 0 75000000.00 150000000.00 225000000.00 300000000.00 区域 1 数据访问耗时图
l1 l2 ram disk net 7 13年4月22⽇日星期⼀一
Coding style • 团队JavaScript⽔水平参差不⻬齐 8 13年4月22⽇日星期⼀一
Coding style 8 13年4月22⽇日星期⼀一
Coding style JSHint 8 13年4月22⽇日星期⼀一
Coding style JSHint Code review 8 13年4月22⽇日星期⼀一
Coding style JSHint Code review merge 8 13年4月22⽇日星期⼀一
代码复⽤用 9 13年4月22⽇日星期⼀一
代码复⽤用 Copy & Parse 9 13年4月22⽇日星期⼀一
代码复⽤用 Copy & Parse 9 13年4月22⽇日星期⼀一
代码复⽤用 Copy & Parse 9 13年4月22⽇日星期⼀一
代码复⽤用 9 13年4月22⽇日星期⼀一
代码复⽤用 9 13年4月22⽇日星期⼀一
代码复⽤用 项⺫⽬目1 9 13年4月22⽇日星期⼀一
代码复⽤用 项⺫⽬目1 项⺫⽬目2 9 13年4月22⽇日星期⼀一
代码复⽤用 项⺫⽬目1 项⺫⽬目2 项⺫⽬目3 9 13年4月22⽇日星期⼀一
包管理 10 13年4月22⽇日星期⼀一
包管理 { "name": "wechat", "version": "0.4.1", "description": "微信公共平台⾃自动回复接⼝口服务", "main": "index.js",
"scripts": { "test": "make test" }, "dependencies": { "xml2js": "0.2.6", "ejs": ">=0.8.3", "bufferhelper": ">=0.2.0" }, "devDependencies": { "supertest": "*", "mocha": "*", "should": "*", "connect": "*", "jscover": "*" }, "author": "Jackson Tian", "license": "MIT" } 10 13年4月22⽇日星期⼀一
包管理 10 13年4月22⽇日星期⼀一
包管理 10 13年4月22⽇日星期⼀一
社区模块问题 • 私有模块⽆无法应⽤用 • 模块质量良莠不⻬齐 • 版本控制存在⻛风险 • 模块安装速度⽆无法保障 11
13年4月22⽇日星期⼀一
企业NPM 12 13年4月22⽇日星期⼀一
企业NPM 12 13年4月22⽇日星期⼀一
企业NPM 12 13年4月22⽇日星期⼀一
企业NPM 12 13年4月22⽇日星期⼀一
享受开源 13 13年4月22⽇日星期⼀一
享受开源 13 13年4月22⽇日星期⼀一
享受开源 单向同步 13 13年4月22⽇日星期⼀一
享受开源 本地NPM 单向同步 13 13年4月22⽇日星期⼀一
享受开源 本地NPM 项⺫⽬目 单向同步 13 13年4月22⽇日星期⼀一
享受开源 本地NPM 项⺫⽬目 单向同步 私有模块 13 13年4月22⽇日星期⼀一
享受开源 本地NPM 项⺫⽬目 单向同步 私有模块 13 13年4月22⽇日星期⼀一
享受开源 本地NPM 项⺫⽬目 单向同步 私有模块 13 13年4月22⽇日星期⼀一
享受开源 本地NPM 项⺫⽬目 单向同步 私有模块 公有模块 13 13年4月22⽇日星期⼀一
享受开源 本地NPM 项⺫⽬目 单向同步 私有模块 公有模块 13 13年4月22⽇日星期⼀一
14 13年4月22⽇日星期⼀一
14 13年4月22⽇日星期⼀一
14 13年4月22⽇日星期⼀一
私有NPM 14 13年4月22⽇日星期⼀一
项⺫⽬目1 私有NPM 14 13年4月22⽇日星期⼀一
项⺫⽬目1 项⺫⽬目2 私有NPM 14 13年4月22⽇日星期⼀一
项⺫⽬目1 项⺫⽬目2 项⺫⽬目3 私有NPM 14 13年4月22⽇日星期⼀一
项⺫⽬目1 项⺫⽬目2 项⺫⽬目3 私有NPM 14 13年4月22⽇日星期⼀一
质量保证 15 13年4月22⽇日星期⼀一
质量保证 • 严格的单元测试 15 13年4月22⽇日星期⼀一
质量保证 • 严格的单元测试 15 13年4月22⽇日星期⼀一
质量保证 • 严格的单元测试 15 13年4月22⽇日星期⼀一
质量保证 • 严格的单元测试 • 只挑选有单元测试的三⽅方模块 15 13年4月22⽇日星期⼀一
质量保证 • 严格的单元测试 • 只挑选有单元测试的三⽅方模块 • 持续集成平台(Toast/Travis/jenkins) 15 13年4月22⽇日星期⼀一
发布流程 16 13年4月22⽇日星期⼀一
发布流程 merge 16 13年4月22⽇日星期⼀一
发布流程 test merge 16 13年4月22⽇日星期⼀一
发布流程 test merge deploy 16 13年4月22⽇日星期⼀一
异常处理 17 13年4月22⽇日星期⼀一
异常处理 test merge deploy JSHint Code review 17 13年4月22⽇日星期⼀一
异常处理 test merge deploy JSHint Code review exception 17 13年4月22⽇日星期⼀一
异常处理 test merge deploy JSHint Code review exception test case
17 13年4月22⽇日星期⼀一
异常处理 test merge deploy JSHint Code review exception test case
17 13年4月22⽇日星期⼀一
异构共存 18 13年4月22⽇日星期⼀一
异构共存 Tair 18 13年4月22⽇日星期⼀一
异构共存 Tair HSF 18 13年4月22⽇日星期⼀一
异构共存 Tair HSF OTS 18 13年4月22⽇日星期⼀一
异构共存 Tair HSF OTS TFS 18 13年4月22⽇日星期⼀一
异构共存 Tair HSF OTS TFS CDN 18 13年4月22⽇日星期⼀一
异构共存 Tair HSF OTS TFS CDN etc. 18 13年4月22⽇日星期⼀一
异构共存 Tair HSF Node OTS TFS CDN etc. 18 13年4月22⽇日星期⼀一
异构共存 Tair HSF Node HTTP RESTful OTS TFS CDN etc.
18 13年4月22⽇日星期⼀一
异构共存 Tair HSF Node HTTP RESTful RPC OTS TFS CDN
etc. 18 13年4月22⽇日星期⼀一
异构共存 Tair HSF Node HTTP RESTful RPC MySQL协议 OTS TFS
CDN etc. 18 13年4月22⽇日星期⼀一
异构共存 Tair HSF Node HTTP RESTful RPC MySQL协议 etc. OTS
TFS CDN etc. 18 13年4月22⽇日星期⼀一
异构共存 Tair HSF Node HTTP RESTful RPC MySQL协议 etc. OTS
TFS CDN etc. 18 13年4月22⽇日星期⼀一
总结 19 13年4月22⽇日星期⼀一
总结 • 严格⾃自律,让犯错变得困难 19 13年4月22⽇日星期⼀一
总结 • 严格⾃自律,让犯错变得困难 • 单元测试与异常⽇日志,并驾⻬齐驱保障应⽤用 质量 19 13年4月22⽇日星期⼀一
总结 • 严格⾃自律,让犯错变得困难 • 单元测试与异常⽇日志,并驾⻬齐驱保障应⽤用 质量 • 编码规范和代码审查,提升团队平均⽔水平 19 13年4月22⽇日星期⼀一
总结 • 严格⾃自律,让犯错变得困难 • 单元测试与异常⽇日志,并驾⻬齐驱保障应⽤用 质量 • 编码规范和代码审查,提升团队平均⽔水平 • 私有NPM去粗取精,拥抱开源社区,回馈
开源社区 19 13年4月22⽇日星期⼀一
总结 • 严格⾃自律,让犯错变得困难 • 单元测试与异常⽇日志,并驾⻬齐驱保障应⽤用 质量 • 编码规范和代码审查,提升团队平均⽔水平 • 私有NPM去粗取精,拥抱开源社区,回馈
开源社区 • 拥抱社区⽣生态,打造企业内开发⽣生态环境 19 13年4月22⽇日星期⼀一
Q& A 20 13年4月22⽇日星期⼀一
资料链接 • https://npmjs.org/ • http://wiki.commonjs.org/wiki/CommonJS • http://visionmedia.github.io/mocha/ • https://github.com/visionmedia/should.js •
https://travis-ci.org/ • https://david-dm.org/ • https://github.com/isaacs/npmjs.org • http://couchdb.apache.org/ • http://www.erlang.org/ • http://blog.nodejs.org/2013/03/11/node-v0-10-0-stable/ 21 13年4月22⽇日星期⼀一