Suche senden
Hochladen
Node develop expirements
•
1 gefällt mir
•
748 views
A
aleafs
Folgen
node.js expirements
Weniger lesen
Mehr lesen
Technologie
Business
Melden
Teilen
Melden
Teilen
1 von 20
Jetzt herunterladen
Downloaden Sie, um offline zu lesen
Empfohlen
编辑器设计U editor
编辑器设计U editor
taobao.com
编辑器设计Kissy editor
编辑器设计Kissy editor
taobao.com
Node分享 展烨
Node分享 展烨
tb-vertical-guide
Kind editor设计思路
Kind editor设计思路
taobao.com
Sidekiq 源码分析
Sidekiq 源码分析
Yuan Cheung
Jasmine2
Jasmine2
tb-vertical-guide
QCon - 一次 Clojure Web 编程实战
QCon - 一次 Clojure Web 编程实战
dennis zhuang
學好 node.js 不可不知的事
學好 node.js 不可不知的事
Ben Lue
Empfohlen
编辑器设计U editor
编辑器设计U editor
taobao.com
编辑器设计Kissy editor
编辑器设计Kissy editor
taobao.com
Node分享 展烨
Node分享 展烨
tb-vertical-guide
Kind editor设计思路
Kind editor设计思路
taobao.com
Sidekiq 源码分析
Sidekiq 源码分析
Yuan Cheung
Jasmine2
Jasmine2
tb-vertical-guide
QCon - 一次 Clojure Web 编程实战
QCon - 一次 Clojure Web 编程实战
dennis zhuang
學好 node.js 不可不知的事
學好 node.js 不可不知的事
Ben Lue
Node js实践
Node js实践
jay li
Berserk js
Berserk js
taobao.com
Node.js在淘宝的应用实践
Node.js在淘宝的应用实践
taobao.com
使用 Visual Studio Code 建構 JavaScript 應用程式
使用 Visual Studio Code 建構 JavaScript 應用程式
Will Huang
KISSY for starter
KISSY for starter
yiming he
课题二:Node.js那些事儿
课题二:Node.js那些事儿
Liu Allen
AJAX Basic
AJAX Basic
Ryan Chung
Learn python in 30 min - 3
Learn python in 30 min - 3
Chia-Hao Tsai
Java_07:Thread
Java_07:Thread
Brad Chao
深入浅出NodeJS
深入浅出NodeJS
sunzhenghua
COSCUP 2010 - node.JS 於互動式網站之應用
COSCUP 2010 - node.JS 於互動式網站之應用
ericpi Bi
twMVC#36C#的美麗與哀愁
twMVC#36C#的美麗與哀愁
twMVC
百度前端性能监控与优化实践
百度前端性能监控与优化实践
Welefen Lee
volatile的作用
volatile的作用
nightelf1984
Node js feat pegasus
Node js feat pegasus
cnfi
Kindeditor设计思路v2
Kindeditor设计思路v2
luolonghao
第三方内容开发最佳实践
第三方内容开发最佳实践
taobao.com
使用 TypeScript 駕馭 Web 世界的脫韁野馬:以 Angular 2 開發框架為例
使用 TypeScript 駕馭 Web 世界的脫韁野馬:以 Angular 2 開發框架為例
Will Huang
模块一-Go语言特性.pdf
模块一-Go语言特性.pdf
czzz1
构建可维护的Javascript 小米网
构建可维护的Javascript 小米网
yang alex
Fl介绍
Fl介绍
Welefen Lee
C++11综述/新特性描述/Overview of C++11 New Features
C++11综述/新特性描述/Overview of C++11 New Features
Peien Luo
Weitere ähnliche Inhalte
Was ist angesagt?
Node js实践
Node js实践
jay li
Berserk js
Berserk js
taobao.com
Node.js在淘宝的应用实践
Node.js在淘宝的应用实践
taobao.com
使用 Visual Studio Code 建構 JavaScript 應用程式
使用 Visual Studio Code 建構 JavaScript 應用程式
Will Huang
KISSY for starter
KISSY for starter
yiming he
课题二:Node.js那些事儿
课题二:Node.js那些事儿
Liu Allen
AJAX Basic
AJAX Basic
Ryan Chung
Learn python in 30 min - 3
Learn python in 30 min - 3
Chia-Hao Tsai
Java_07:Thread
Java_07:Thread
Brad Chao
深入浅出NodeJS
深入浅出NodeJS
sunzhenghua
COSCUP 2010 - node.JS 於互動式網站之應用
COSCUP 2010 - node.JS 於互動式網站之應用
ericpi Bi
twMVC#36C#的美麗與哀愁
twMVC#36C#的美麗與哀愁
twMVC
百度前端性能监控与优化实践
百度前端性能监控与优化实践
Welefen Lee
volatile的作用
volatile的作用
nightelf1984
Node js feat pegasus
Node js feat pegasus
cnfi
Kindeditor设计思路v2
Kindeditor设计思路v2
luolonghao
第三方内容开发最佳实践
第三方内容开发最佳实践
taobao.com
使用 TypeScript 駕馭 Web 世界的脫韁野馬:以 Angular 2 開發框架為例
使用 TypeScript 駕馭 Web 世界的脫韁野馬:以 Angular 2 開發框架為例
Will Huang
Was ist angesagt?
(18)
Node js实践
Node js实践
Berserk js
Berserk js
Node.js在淘宝的应用实践
Node.js在淘宝的应用实践
使用 Visual Studio Code 建構 JavaScript 應用程式
使用 Visual Studio Code 建構 JavaScript 應用程式
KISSY for starter
KISSY for starter
课题二:Node.js那些事儿
课题二:Node.js那些事儿
AJAX Basic
AJAX Basic
Learn python in 30 min - 3
Learn python in 30 min - 3
Java_07:Thread
Java_07:Thread
深入浅出NodeJS
深入浅出NodeJS
COSCUP 2010 - node.JS 於互動式網站之應用
COSCUP 2010 - node.JS 於互動式網站之應用
twMVC#36C#的美麗與哀愁
twMVC#36C#的美麗與哀愁
百度前端性能监控与优化实践
百度前端性能监控与优化实践
volatile的作用
volatile的作用
Node js feat pegasus
Node js feat pegasus
Kindeditor设计思路v2
Kindeditor设计思路v2
第三方内容开发最佳实践
第三方内容开发最佳实践
使用 TypeScript 駕馭 Web 世界的脫韁野馬:以 Angular 2 開發框架為例
使用 TypeScript 駕馭 Web 世界的脫韁野馬:以 Angular 2 開發框架為例
Ähnlich wie Node develop expirements
模块一-Go语言特性.pdf
模块一-Go语言特性.pdf
czzz1
构建可维护的Javascript 小米网
构建可维护的Javascript 小米网
yang alex
Fl介绍
Fl介绍
Welefen Lee
C++11综述/新特性描述/Overview of C++11 New Features
C++11综述/新特性描述/Overview of C++11 New Features
Peien Luo
Linux binary Exploitation - Basic knowledge
Linux binary Exploitation - Basic knowledge
Angel Boy
Win dbg入门
Win dbg入门
晓锋 陈
Windbg入门
Windbg入门
晓锋 陈
千呼萬喚始出來的 Java SE 7
千呼萬喚始出來的 Java SE 7
Justin Lin
合久必分,分久必合
合久必分,分久必合
Qiangning Hong
Web development with zend framework
Web development with zend framework
thinkinlamp
Google LevelDB Study Discuss
Google LevelDB Study Discuss
everestsun
InnoDB Transaction Lock and MVCC
InnoDB Transaction Lock and MVCC
frogd
高性能存储引擎TokuDB剖析
高性能存储引擎TokuDB剖析
Bohu TANG
前端测试
前端测试
frontwindysky
前端测试
前端测试
Zheng Biao
Tcfsh bootcamp day2
Tcfsh bootcamp day2
Xatierlike Lee
调试技术的应用
调试技术的应用
延胜 黄
Linux system security
Linux system security
Kenny (netman)
OPM
OPM
goto100
Elastic stack day-2
Elastic stack day-2
YI-CHING WU
Ähnlich wie Node develop expirements
(20)
模块一-Go语言特性.pdf
模块一-Go语言特性.pdf
构建可维护的Javascript 小米网
构建可维护的Javascript 小米网
Fl介绍
Fl介绍
C++11综述/新特性描述/Overview of C++11 New Features
C++11综述/新特性描述/Overview of C++11 New Features
Linux binary Exploitation - Basic knowledge
Linux binary Exploitation - Basic knowledge
Win dbg入门
Win dbg入门
Windbg入门
Windbg入门
千呼萬喚始出來的 Java SE 7
千呼萬喚始出來的 Java SE 7
合久必分,分久必合
合久必分,分久必合
Web development with zend framework
Web development with zend framework
Google LevelDB Study Discuss
Google LevelDB Study Discuss
InnoDB Transaction Lock and MVCC
InnoDB Transaction Lock and MVCC
高性能存储引擎TokuDB剖析
高性能存储引擎TokuDB剖析
前端测试
前端测试
前端测试
前端测试
Tcfsh bootcamp day2
Tcfsh bootcamp day2
调试技术的应用
调试技术的应用
Linux system security
Linux system security
OPM
OPM
Elastic stack day-2
Elastic stack day-2
Mehr von aleafs
Node cluster
Node cluster
aleafs
分布式系统缓存设计
分布式系统缓存设计
aleafs
My fox 扩容与数据迁移
My fox 扩容与数据迁移
aleafs
海量统计数据的分布式MySQL集群——MyFOX
海量统计数据的分布式MySQL集群——MyFOX
aleafs
淘宝海量数据产品技术架构
淘宝海量数据产品技术架构
aleafs
Myfox on NodeJS
Myfox on NodeJS
aleafs
助推宝工具介绍
助推宝工具介绍
aleafs
Mehr von aleafs
(7)
Node cluster
Node cluster
分布式系统缓存设计
分布式系统缓存设计
My fox 扩容与数据迁移
My fox 扩容与数据迁移
海量统计数据的分布式MySQL集群——MyFOX
海量统计数据的分布式MySQL集群——MyFOX
淘宝海量数据产品技术架构
淘宝海量数据产品技术架构
Myfox on NodeJS
Myfox on NodeJS
助推宝工具介绍
助推宝工具介绍
Node develop expirements
1.
我这样写Node
朋春 pengchun@taobao.com
2.
目录约定 • bin • build •
app • lib • test
3.
.gitignore / svn:ignore •
conf(etc, config, ...) • log(s) • temp(tmp) • node_modules • ...
4.
package.json • “=” 还是
“>=”? • node_modules何时安装?
5.
Makefile • test • coverage •
func • benchmark
6.
build • build.js • properties •
build/tpl/*
7.
配置文件 • 忘掉json,慎用js,推荐ini • 配置项的边界测试 •
切勿滥用配置项 /** • 认真写注释 * 用以... * 取值范围 * XXX: 注意 * 联系人 */
8.
unittest • mocha +
should • case命名 • test/unit/a.js
9.
bin • appctl {start|stop|reload|restart|status} •
logrotate
10.
我是偏执狂 • 不用相对路径(用__dirname) • 外部变量只在⼀一个地方读 •
目录有等级,规避“越级”require • 只写函数,不执行
11.
快速迭代 • 自顶向下的开发,demo先跑起来 • 建立benchmark基准,不断修正 •
status
12.
可测性 • 接口简单,规避复杂参数(对象) • 代码分层,通信协议与业务协议分离 •
单⼀一职责!
13.
可读性 • 机器可读 •
日志格式 • 接口标准化(code和message分离,code可穷举) • 人可读 • 无脑常量 • “白富美”有风险 • 不可见字符
14.
变量命名 • 变量名体现“作用域” •
服务级(进程级)变量 • 请求级变量 master.register(port, path, cnum); • 变量与属性名 master.register(port, path, { /** ‘cnum‘ : 1,*/ ‘child_num’ : 1, });
15.
关于进程 • master • worker •
daemon ...
16.
异常处理 • error or
exception? • 强依赖越早暴露越好
17.
稳定性 • nginx upstream •
监控日志,尤其是error和exception • latency监控(阈值取多少) • 监控gc(--trace_gc, ...) • 允许core dump,并监控core文件
18.
几个原则 • private static变量,暴露exports.clean •
始终考虑“深拷贝”和“浅拷贝”
19.
让代码更漂亮 • 适当的空行 • 等号(冒号)对齐 •
代码折叠 • vim: set expandtab && ret • vim: set ff=unix
20.
node-shark • https://github.com/aleafs/node-shark
Jetzt herunterladen