最新 | 最热门 | 最高评价

+0  从Java和JavaScript来学习Haskell和Groovy(汇总)

Tag: Programming Paradigm | Recommended | Groovy | Haskell | Java | JavaScript
四火 发于 2015年07月24日 08:09 | 点击: 2054 | 展开摘要
这是这个系列的最后一篇,从编程范型的角度概览,前面几篇的链接在文章后半部分有汇总。

我在之前已经介绍过编程范型的概念,而事实上,我们到现在为止,纠结在这四门迥异的语言上面,浅看是各种语言特性,深看就是编程范型和思维方法。

下面这张“神图”来自于这里,可以说是对于范型和语言归类的概览,从左往右从更强的声明式向着更弱的声明式发展;依据状态分为Unnamed state(串行或并发,包含逻辑式和函数式这几种分类)、Nondet. state(所谓的不确定性状态)和Named s

查看全文: http://www.udpwork.com/item/14427.html

+0  从Java和JavaScript来学习Haskell和Groovy(DSL)

Tag: Programming Paradigm | Groovy | Haskell | Java | JavaScript
四火 发于 2015年07月13日 01:03 | 点击: 2123 | 展开摘要
这是《从Java和JavaScript来学习Haskell和Groovy》系列的第四篇。

首先来理解DSL。

DSL(Domain Specific Language)指的是一定应用领域内的计算机语言,它可以不强大,它可以只能在一定的领域内生效(和GPL相比,GPL是General Purpose Language),表达仅限于该领域,但是它对于特定领域简洁、清晰,包含针对特定领域的优化。

当我们面对各种各样的特定需求的时候,一个通用的语言往往不能高效地提供解决问题的路

查看全文: http://www.udpwork.com/item/14396.html

+0  ES6 的功能侦测库 ES-Checker

Tag: JavaScript
阮一峰 发于 2015年06月30日 20:56 | 点击: 1489 | 展开摘要
两周前,《ECMAScript国际标准(第6版)》正式通过,下一代 JavaScript 语言定案。

ECMAScript 6(以下简称 ES6)总共新增了20多项重大的语言特性。各种浏览器和 Node.js 都积极支持,但还有不少功能没实现。

上个周末,我读到了 Kyle Simpson 的文章《ES6: Features By Testing》,发现他开发了一组测试,可以侦测运行环境支持哪些 ES6 的功能。

我就在他的基础上 ,写了功能侦测库 ES-Checker

查看全文: http://www.udpwork.com/item/14347.html

+0  从Java和JavaScript来学习Haskell和Groovy(元编程)

Tag: Programming Paradigm | Groovy | Haskell | Java | JavaScript
四火 发于 2015年06月26日 08:16 | 点击: 2001 | 展开摘要
本篇文章的话题是元编程。首先来认识元编程,我在第一篇《引子》里面已经介绍:元编程,指的是在运行时改变“类”的定义,例如访问、增加或修改等等。一言以蔽之,就是“用程序来写程序”。在第二篇的《类型系统》里面已经借由继承和接口的实现,介绍了一些利用元编程特性来增加或改变子类行为的方法。回顾语言发展的长河,其实是经历了一个从“对象 -> 类 -> 元类”到“对象 -> 原型”的发展过程的。所以,无论是类,还是元类,这样的概念其实都不是非有不可的,只是因为我们思考的习

查看全文: http://www.udpwork.com/item/14335.html

+0  代码覆盖率工具 Istanbul 入门教程

Tag: JavaScript
阮一峰 发于 2015年06月08日 09:16 | 点击: 2048 | 展开摘要
测试的时候,我们常常关心,是否所有代码都测试到了。

这个指标就叫做"代码覆盖率"(code coverage)。它有四个测量维度。

行覆盖率(line coverage):是否每一行都执行了?

函数覆盖率(function coverage):是否每个函数都调用了?

分支覆盖率(branch coverage):是否每个if代码块都执行了?

语句覆盖率(statement coverage):是否每个语句都执行了?

Istanbul 是 JavaScript 程序

查看全文: http://www.udpwork.com/item/14288.html

+0  Node.js 命令行程序开发教程

Tag: JavaScript
阮一峰 发于 2015年05月26日 09:53 | 点击: 1941 | 展开摘要
一种编程语言是否易用,很大程度上,取决于开发命令行程序的能力。

Node.js 作为目前最热门的开发工具之一,怎样使用它开发命令行程序,是 Web 开发者应该掌握的技能。

最近,Npm的网志有一组系列文章,我觉得写得非常好。下面就是我在它的基础上扩展的教程,应该是目前最好的解决方案了。

一、可执行脚本

我们从最简单的讲起。

首先,使用 JavaScript 语言,写一个可执行脚本 hello 。

#!/usr/bin/env node
console.log('h

查看全文: http://www.udpwork.com/item/14235.html

+0  浏览器加载 CommonJS 模块的原理与实现

Tag: JavaScript
阮一峰 发于 2015年05月23日 09:32 | 点击: 1802 | 展开摘要
就在这个周末,npm 超过了 cpan ,成为地球上最大的软件模块仓库。

npm 的模块都是 JavaScript 语言写的,但浏览器用不了,因为不支持 CommonJS 格式。要想让浏览器用上这些模块,必须转换格式。

本文介绍浏览器加载 CommonJS 的原理,并且给出一种非常简单的实现。

一、原理

浏览器不兼容CommonJS的根本原因,在于缺少四个Node.js环境的变量。

module

exports

require

global

只要能够提供这四

查看全文: http://www.udpwork.com/item/14229.html

+0  require() 源码解读

Tag: JavaScript
阮一峰 发于 2015年05月20日 11:15 | 点击: 1686 | 展开摘要
2009年,Node.js 项目诞生,所有模块一律为 CommonJS 格式。

时至今日,Node.js 的模块仓库 npmjs.com ,已经存放了15万个模块,其中绝大部分都是 CommonJS 格式。

这种格式的核心就是 require 语句,模块通过它加载。学习 Node.js ,必学如何使用 require 语句。本文通过源码分析,详细介绍 require 语句的内部运行机制,帮你理解 Node.js 的模块机制。

一、require() 的基本用法

分析源

查看全文: http://www.udpwork.com/item/14223.html

+0  async 函数的含义和用法

Tag: JavaScript
阮一峰 发于 2015年05月11日 10:38 | 点击: 2004 | 展开摘要
本文是《深入掌握 ECMAScript 6 异步编程》系列文章的最后一篇。

Generator函数的含义与用法

Thunk函数的含义与用法

co函数库的含义与用法

async函数的含义与用法

一、终极解决

异步操作是 JavaScript 编程的麻烦事,麻烦到一直有人提出各种各样的方案,试图解决这个问题。

从最早的回调函数,到 Promise 对象,再到 Generator 函数,每次都有所改进,但又让人觉得不彻底。它们都有额外的复杂性,都需要理解抽象的底层运行

查看全文: http://www.udpwork.com/item/14196.html

+0  co 函数库的含义和用法

Tag: JavaScript
阮一峰 发于 2015年05月06日 11:37 | 点击: 1813 | 展开摘要
进入正文之前,先插播一条消息。

我七年前翻译的《软件随想录》再版了(京东链接)。这次是《Joel论软件》两卷同时再版,第一卷是新译本,第二卷是我翻译的。

本书的作者是著名程序员、StackOverflow的创始人 Joel Splosky。我觉得,它是软件项目管理的最好读物之一,推荐阅读。

========================================

以下是《深入掌握 ECMAScript 6 异步编程》系列文章的第三篇。

Generator

查看全文: http://www.udpwork.com/item/14185.html

+0  Thunk 函数的含义和用法

Tag: JavaScript
阮一峰 发于 2015年05月01日 09:42 | 点击: 1880 | 展开摘要
本文是《深入掌握 ECMAScript 6 异步编程》系列文章的第二篇。

Generator函数的含义与用法

Thunk函数的含义与用法

co函数库的含义与用法

async函数的含义与用法

一、参数的求值策略

Thunk函数早在上个世纪60年代就诞生了。

那时,编程语言刚刚起步,计算机学家还在研究,编译器怎么写比较好。一个争论的焦点是"求值策略",即函数的参数到底应该何时求值。

var x = 1;

function f(m){
return m * 2

查看全文: http://www.udpwork.com/item/14169.html

+0  Generator 函数的含义与用法

Tag: JavaScript
阮一峰 发于 2015年04月24日 10:27 | 点击: 2148 | 展开摘要
本文是《深入掌握 ECMAScript 6 异步编程》系列文章的第一篇。

Generator函数的含义与用法

Thunk函数的含义与用法

co函数库的含义与用法

async函数的含义与用法

异步编程对 JavaScript 语言太重要。JavaScript 只有一根线程,如果没有异步编程,根本没法用,非卡死不可。

以前,异步编程的方法,大概有下面四种。

回调函数

事件监听

发布/订阅

Promise 对象

ECMAScript 6 (简称 ES6 )作为

查看全文: http://www.udpwork.com/item/14107.html
|<<<2345678>>>| 一共22页, 254条记录