2016-12-15 周四 晴

昨天看过的内容:

1.node项目的产品化/工程化

step1.确定目录结构
我总结的比较合理的目录结构是:

app.js                      //入口文件
controllers             //控制器文件夹
models                 //模型文件夹
middlewares       //中间件夹
views                 //视图文件夹
config.js            //配置文件
router.js            //路由文件
logs                 //日志目录
tests               //单元测试文件夹
public            //静态文件目录
bin                 //可执行脚本

step2.构建工具
make 和 grunt
step3.代码审查
gitlab/github 除了托管代码,还实现了代码审查

2.代码部署流程

####### 部署环境:
一般来说,环境要包含三种环境,分别为dev,test,product
dev为开发分支.test为测试分支,product为正式的线上分支
####### 部署操作:
手动操作比较复杂,且不方便,且出现问题不易及时发现和解决.常用的方法是用pm2类的第三方工具或者自己写脚本来做.比较方便控制应用的启动,停止和重启.
####### 日志:
####### 监控:
####### 报警:
####### 稳定性:

2.模块与CommonJS规范

首先,node应用是由模块组成的.每一个文件都是一个模块.CommonJS规范规定,每个模块内部,module变量代表当前模块。这个变量是一个对象,它的exports属性(即module.exports)是对外的接口。加载某个模块,其实是加载该模块的module.exports属性。
第二,模块的实现.Node中引入模块的步骤为

路径分析->文件定位->编译执行

模块分为核心模块和文件模块.核心模块是Node提供的模块,在Node源代码编译的过程中,编译进进了二进制执行文件,在node进程启动的时候,部分的核心代码直接被加载到了内存里,不需要路径文件定位和比啊你执行,在路径分析中优先片段了,故加载速度最快.而文件模块是用户边写的模块,是动态加载的,需要以上三个步骤,速度比较慢.但是node会对引入过的模块进行缓存处理,所以二次加载的时候速度很快.速度如下:

缓存加载>核心模块>文件模块

你可能感兴趣的:(2016-12-15 周四 晴)