美文网首页
2016-12-15 周四 晴

2016-12-15 周四 晴

作者: 长在床上的人 | 来源:发表于2016-12-15 16:50 被阅读0次

    昨天看过的内容:

    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 周四 晴

          本文链接:https://www.haomeiwen.com/subject/vuowmttx.html