-
require() 源码解读
2009年,Node.js 项目诞生,所有模块一律为 CommonJS 格式。 时至今日,Node.js 的模块仓库 npmjs.com ,已经存放了15万个模块,其中绝大部分都是 CommonJS 格式。 这种格式的核心就是 require 语句,模块通过它加载。学习 Node.js ,必学如何使用 require 语句。本文通过源码分析,详细介绍 require 语句的内部运行机制,帮你理解 Node.js 的模块机制。 一、require() 的基本用法 分析源码之前,先介绍 require...
-
在PHP语言中使用JSON
目前,JSON已经成为最流行的数据交换格式之一,各大网站的API几乎都支持它。 我写过一篇《数据类型和JSON格式》,探讨它的设计思想。今天,我想总结一下PHP语言对它的支持,这是开发互联网应用程序(特别是编写API)必须了解的知识。 从5.2版本开始,PHP原生提供json_encode()和json_decode()函数,前者用于编码,后者用于解码。 一、json_encode() 该函数主要用来将数组和对象,转换为json格式。先看一个数组转换的例子: $arr = array ('a'=&...
-
浏览器加载 CommonJS 模块的原理与实现
就在这个周末,npm 超过了 cpan ,成为地球上最大的软件模块仓库。 npm 的模块都是 JavaScript 语言写的,但浏览器用不了,因为不支持 CommonJS 格式。要想让浏览器用上这些模块,必须转换格式。 本文介绍浏览器加载 CommonJS 的原理,并且给出一种非常简单的实现。 一、原理 浏览器不兼容CommonJS的根本原因,在于缺少四个Node.js环境的变量。 module exports require global 只要能够提供这四个变量,浏览器就...
-
Google短网址的API
2009年底,Google发布了短网址服务goo.gl。 Google声称: "......(这是)互联网上最稳定、最安全、最快速的短网址服务。" 有人做了比较,证明确实如此。 从上图可以看到,goo.gl的响应和跳转时间是最短的。 除了速度快,goo.gl还提供详细的点击统计。比如,Yahoo首页的短网址是http://goo.gl/QuXj,那么它的统计数据就在http://goo.gl/info/QuXj。加上后缀".qr",还能得到这个网址的二维条形码,Yahoo的就是http://go...
-
Node.js 命令行程序开发教程
一种编程语言是否易用,很大程度上,取决于开发命令行程序的能力。 Node.js 作为目前最热门的开发工具之一,怎样使用它开发命令行程序,是 Web 开发者应该掌握的技能。 最近,Npm的网志有一组系列文章,我觉得写得非常好。下面就是我在它的基础上扩展的教程,应该是目前最好的解决方案了。 一、可执行脚本 我们从最简单的讲起。 首先,使用 JavaScript 语言,写一个可执行脚本 hello 。 #!/usr/bin/env node console.log('hello world');...
-
HTTPS的七个误解(译文)
开发网页的时候,往往需要观察HTTP通信。 我使用的工具主要有两个,在Firefox中是Firebug,在IE中是Fiddler。但是,一直听别人说,付费软件HttpWatch是这方面最好的工具。 前几天,HttpWatch的官方网志刊登了一篇好文章,澄清了一些HTTPS协议容易产生误解的地方。学习之后,我增长了不少网页加密通信的知识。 我觉得这篇文章很实用,值得留作参考,就翻译了出来。 ============================================== HTTPS的七个误...
-
代码覆盖率工具 Istanbul 入门教程
测试的时候,我们常常关心,是否所有代码都测试到了。 这个指标就叫做"代码覆盖率"(code coverage)。它有四个测量维度。 行覆盖率(line coverage):是否每一行都执行了? 函数覆盖率(function coverage):是否每个函数都调用了? 分支覆盖率(branch coverage):是否每个if代码块都执行了? 语句覆盖率(statement coverage):是否每个语句都执行了? Istanbul 是 JavaScript 程序的代码覆盖率工具,本文...
-
ES6 的功能侦测库 ES-Checker
两周前,《ECMAScript国际标准(第6版)》正式通过,下一代 JavaScript 语言定案。 ECMAScript 6(以下简称 ES6)总共新增了20多项重大的语言特性。各种浏览器和 Node.js 都积极支持,但还有不少功能没实现。 上个周末,我读到了 Kyle Simpson 的文章《ES6: Features By Testing》,发现他开发了一组测试,可以侦测运行环境支持哪些 ES6 的功能。 我就在他的基础上 ,写了功能侦测库 ES-Checker ,用于查看 ES6 的支持情况。...
-
Dropbox的成本估算
两周前,云存储网站Dropbox宣布,用户总数达到了2500万。 这个数字令人印象深刻,因为一年半前,它的用户总数已经是300万了。短短18个月,在一个这样大的基数上,继续扩张八倍多,真可谓势头惊人。 惊叹之余,许多人很好奇,Dropbox到底花了多少钱,才能够服务这么多用户?因为除了付费用户以外,它没有其他收入来源。相反地,每新增一个注册用户,它就必须向他免费提供存储空间。只有当用户占用的空间超过2GB时,才需要付费:每月9.99美元(50GB)或者19.99美元(100GB)。 那么,为了支撑2...
最新留言
说:asdasd
2023-05-26 10:48:03说:I
2023-04-07 09:22:25说:2366
2023-03-30 09:40:21说:1
2023-03-30 09:40:16说:6
2023-03-03 17:48:00说:发的太多人
2023-02-27 15:34:13说:1
2023-02-02 19:12:01说:我靠
2023-01-26 10:55:41