8月 02 Node-C++ Node | 阅读次数 《Node.js:来一打 C++ 扩展》目录1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232241 Node.js 的 C++ 扩展前驱知识储备 11.1 Node.js 的模块机制 21.1.1 CommonJS 的模块规范 21.1.2 Node.js 的模块 41.1.3 小结 91.1.4 参考资料 91.2 Node.js 的包机制 91.2.1 CommonJS 的包规范 91.2.2 Node.js / NPM 下的包 131.2.3 NPM 与 CNPM 161.2.4 小结 191.2.5 参考资料 191.3 Node.js 依赖简介 201.3.1 Chrome V8 201.3.2 libuv 251.3.3 其他依赖 281.3.4 小结 301.3.5 参考资料 301.4 C++ 扩展开发的准备工作 311.4.1 编辑器 / IDE 311.4.2 node-gyp 361.4.3 其他构建工具 541.4.4 小结 561.4.5 参考资料 562 C++ 模块原理简析 572.1 为什么要写 C++ 模块 572.1.1 C++ 比 JavaScript 解释器高效 572.1.2 已有的 C++ 轮子 722.1.3 小结 772.1.4 参考资料 772.2 什么是 C++ 扩展 782.2.1 C++ 模块本质 782.2.2 Node.js 模块加载原理 802.2.3 小结 1022.2.4 参考资料 1033 Chrome V8 基础 1043.1 Node.js 与 Chrome V8 1043.2 基本概念 1053.2.1 内存机制 1053.2.2 隔离实例(Isolate) 1083.2.3 上下文(Context) 1093.2.4 脚本(Script) 1103.2.5 小结 1103.2.6 参考资料 1113.3 句柄(Handle) 1113.3.1 本地句柄(Local) 1123.3.2 持久句柄(Persistent) 1153.3.3 永生句柄(Eternal) 1193.3.4 待实本地句柄(Maybe Local) 1193.3.5 小结 1213.3.6 参考资料 1213.4 句柄作用域 1213.4.1 一般句柄作用域(Handle Scope) 1223.4.2 可逃句柄作用域(Escapable Handle Scope) 1253.4.3 小结 1293.4.4 参考资料 1293.5 上下文(Context) 1293.6 模板(Template) 1333.6.1 函数模板(Function Template) 1333.6.2 对象模板(Object Template) 1383.6.3 对象模板的访问器(Accessor)与拦截器(Interceptor) 1443.6.4 对象模板的内置字段(Internal Field) 1753.6.5 函数模板的继承(Inherit) 1833.6.6 小结 1883.6.7 参考资料 1893.7 常用数据类型 1893.7.1 基值(Value) 1893.7.2 字符串(String) 1943.7.3 数值类型 1963.7.4 布尔类型(Boolean) 1963.7.5 对象(Object) 1963.7.6 函数(Function) 2003.7.7 数组(Array) 2023.7.8 JSON 解析器 2033.7.9 函数回调信息(Function Callback Info) 2033.7.10 函数返回值(Return Value) 2043.7.11 隔离实例(Isolate) 2043.7.12 小结 2053.7.13 参考资料 2063.8 异常机制 2063.8.1 try-catch 2063.8.2 抛出异常 2093.8.3 异常生成类(Exception) 2113.8.4 小结 2113.8.5 参考资料 2114 C++ 扩展实战初探 2124.1 binding.gyp 2124.1.1 惊鸿一瞥 2134.1.2 binding.gyp 基础结构 2134.1.3 GYP 文件 2144.1.4 常用字段 2214.1.5 小结 2284.1.6 参考资料 2284.2 牛刀小试 2294.2.1 又是 Hello World 2294.2.2 函数参数 2324.2.3 回调函数 2344.2.4 函数返回 2384.2.5 小结 2394.2.6 参考资料 2404.3 循序渐进 2404.3.1 C++ 与 JavaScript 类封装 2404.3.2 实例化 C++ 类封装对象的函数 2504.3.3 将 C++ 类封装对象传来传去 2534.3.4 进程退出钩子 2554.3.5 小结 2594.3.6 参考资料 2595 Node.js 原生抽象——NAN 2605.1 Node.js 原生模块开发方式的变迁 2605.1.1 以不变应万变 2605.1.2 时代在召唤 2615.1.3 小结 2675.1.4 参考资料 2675.2 基础开发 2675.2.1 什么是 NAN 2675.2.2 安装和配置 2695.2.3 先睹为快——搭上NAN 的快车 2705.2.4 基础帮助函数和宏 2765.2.5 忽略 node_modules 2795.2.6 小结 2795.2.7 参考资料 2805.3 JavaScript 函数 2805.3.1 函数参数类型 2805.3.2 函数声明 2825.3.3 函数设置 2885.3.4 小结 2965.3.5 参考资料 2965.4 常用帮助类与函数 2965.4.1 句柄相关 2965.4.2 创建数据对象 2985.4.3 与数据对象“玩耍” 3005.4.4 封装一个类 3145.4.5 异常处理 3155.4.6 小结 3155.4.7 参考资料 3165.5 NAN 中的异步机制 3165.5.1 Nan::AsyncQueueWorker 3165.5.2 Nan::Callback 3175.5.3 Nan::AsyncWorker 3175.5.4 Nan::AsyncProgressWorker 3235.5.5 小结 3275.5.6 参考资料 3276 异步之旅——libuv 3286.1 基础概念 3296.1.1 事件循环 3306.1.2 句柄(Handle)与请求(Request) 3336.1.3 尝尝甜头 3356.1.4 小结 3406.1.5 参考资料 3406.2 libuv 的跨线程编程基础 3416.2.1 libuv 的线程 3426.2.2 同步原语(Synchronization Primitive) 3476.2.3 工作队列 3556.2.4 小结 3566.2.5 参考资料 3576.3 跨线程通信 3576.3.1 uv_async_t 句柄 3576.3.2 Watchdog 半成品实战解析 3586.3.3 Watchdog 试运行 3676.3.4 小结 3686.3.5 参考资料 3697 实战——文件监视器 3707.1 准备工作 3707.1.1 功能规划 3707.1.2 文件系统监听库——efsw 3737.1.3 小结 3767.1.4 参考资料 3767.2 核心设计 3767.2.1 API 设计 3777.2.2 EFSWCore 的血肉之躯 3777.2.3 EFSWCore 的灵魂 3817.2.4 小结 3857.3 编写JavaScript 类 3867.3.1 类的设计 3867.3.2 核心逻辑 3887.3.3 简单容错 3917.3.4 小结 3937.4 进一步完善 3937.4.1 C++ 代码的完善 3937.4.2 JavaScript 代码的完善 3987.4.3 小结 4008 实战——现有包剖析 4018.1 字符串哈希模块——Bling Hashes 4018.1.1 文件设定 4028.1.2 C++ 源码剖析 4038.1.3 JavaScript 源码剖析 4088.1.4 小结 4098.1.5 参考资料 4108.2 类 Proxy 包——Auto Object 4108.2.1 Proxy 4108.2.2 Auto Object 使用范例 4128.2.3 代码剖析 4158.2.4 小结 4248.2.5 参考资料 4249 N-API——下一代 Node.js C++ 扩展开发方式 4259.1 浅尝辄止 4269.1.1 实现一个 Echo 函数 4269.1.2 尝试运行 N-API 扩展 4309.1.3 向下兼容 4319.1.4 N-API Package——C++ 封装 4339.1.5 小结 4339.1.6 参考资料 4339.2 基本数据类型与错误处理 4339.2.1 基本数据类型 4339.2.2 与作用域及生命周期相关的数据类型 4359.2.3 回调数据类型 4389.2.4 错误处理 4399.2.5 模块注册 4419.2.6 小结 4429.2.7 参考资料 4429.3 对象与函数 4429.3.1 对象 4429.3.2 函数 4489.3.3 类的封装 4539.3.4 小结 4559.3.5 参考资料 455 阅读原文 GYP介绍: Node.js本机插件构建工具使用技巧
8月 01 CSS样式线性过渡 CSS | 阅读次数 CSS背景色线性过渡 background: linear-gradient(top,#434345,#2f3032); 123background-image: -webkit-linear-gradient(top, #f6f6c8, #71fafe);-webkit-background-clip: text;-webkit-text-fill-color: transparent;
8月 01 元素换行间隙-font-size HTML | 阅读次数 元素换行间距-font-size因为 元素换行 以及 继承 font-size 导致 元素之间产生间隙。 解决办法: font-size: 0;
7月 31 Node-HTTPClient HTTP | 阅读次数 Node-HTTPClientThe leanest and most handsome HTTP client in the Nodelands. —— Needle 笔记待整理