领读《深入浅出NODEJS》—第二章 模块机制
领读,领你读,把书的重点提出来。尝试以知识管理、快速阅读的方式来学习。
为什么要写这个类型的文章呢?第一是想要学习NODEJS了,第二是觉得之前写了那么多的学习前端的方法、思路、方向,但还是有很多同学们效果不大,虽然你们在看的时候,会表示这个思路好啊,这个方法好啊,这个情况说的对呀。但看完之后,还是原样不变。
就比如在以往的文章中,我不止一次的说,可以在在书店里多看书,大量的看前端的书,这样就能筛出最适合你自己的书,就是少买多看。我这强调的是自主的去学习,去行动。但结果呢,依然是时不时的群里会跑来一个同学问我,老尚,推荐一本书呗。。。
怎么就这么懒呢?怎么就不能自己去筛出几本适合自己的书呢?要知道,筛选本身就是学习的过程啊。算了不想再多想这个问题了,能学会的人怎么都能学会,学不会的人怎么也学不会。
最近我也看了一些时间管理啊,快速学习之类的文章资料。觉得在一定程度上,快速学习也是可以用在前端学习方面的。现在就让我们一起来尝试一下,以快速学习的方式来阅读吧。
接昨天初试以知识管理的方式--领读 《深入浅出nodeJs》,来看一下第二章,模块机制。我用思维导图把它的目录结构列出来,如下
从目录中可以对第二章有个相对全局的了解。它主要由9个小节组成,其中2.3,2.4、2.8、2.9都可以一略而过了,什么核心模块我是不看了,先把它用起来用熟练了再说吧;至于C/C++反正我是不会,我就没看。各位自己掌握哈。
来看看2.1CommonJs 规范,第12页开始的那些片汤话就一扫而过吧,没什么营养。
2.1.1 的内容就是说,JS很弱,后来HTML5出来后,JS有很多缺陷,什么没模块系统,库少,没接口,没有包管理。。。CommonJS就是为了补这些缺的。
2.1.2呢,就是说,定义一个CommonJS很简单,就是引用 ,定义,标识。
引用是这样,
Var math = require(‘math’);
定义是这样,
//math.js
Exports.add = function(){
Console.log( ‘add’ );
}
标识是这样,
require(‘math’)里的math,就是标识,好几页的内容,其实就说了这么点事。
接下来是 2.2 Node的模块实现,这一章里写了好多东西,什么加载,定位,编译啊。但总体来讲,这一节是讲在CommonJs的基础之上,NodeJS是如何实现模块的,它并没有完全按CommonJs的规范,而是自己有一些取舍。然后就是详细讲了下具体是怎么加载啊,怎么定位啊,怎么编译什么。这一节在我个人看来,大概看看就行了,还是属于介绍的范围。
看书学东西就是这样,有时你觉得自己学一个东西不系统,例如NodeJS,,所以你买本书来看。但写书的人吧,为了把话尽量说的圆满,他不能让人挑他毛病说他没写全啊,所以他会尽量把一些相关的东西都写上,只要是跟主题沾得上边的,他都写上。
所以你在2.2 Node的模块实现,这一节里,可以看到在写模块编译的时候,他把JS的编译,C/C++的编译,和JSON的编译全写上了。但在我个人看来,对于新学NODEJS的人来讲,只要会编译就行了,刚开始时真不用看这么多,用不上,也记不住,还浪费时间。
------------------------
最近开始尝试写一些领读式的快速学习型的文章,这种文章写起来相对麻烦一些,毕竟要查资料看书。如果你有什么问题或想法,欢迎留言给我。
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 高性能 Java 应用层网关设计实践
- redis实战第十五篇 redis cluster的批处理中ask重定向解决方案
- 干货 | Elasticsearch 运维实战常用命令清单
- 备战秋招-面经篇-[二十二]
- 快速上手Spring-Data-Redis
- Lua 5.1 参考手册
- 图文详解k8s自动化持续集成之GitLab CI/CD
- Harbor v2.0 镜像回收那些事
- redis实战第十四篇 redis cluster ask重定向
- Go命令官方指南【原译】
- 详解:如何监控小程序异常及处理错误?
- redis实战第十三篇 jedis连接redis cluster
- 哈工大李治军操作系统课程实验环境搭建
- 我用 OpenGL 实现了那些年流行的相机滤镜
- 使用minikube安装kubernetes和dashboard