代码改变世界

学习RxJS:Cycle.js

2016-06-16 23:16 by 莫耶, 811 阅读, 收藏, 编辑
摘要: Cycle.js 是一个极简的JavaScript框架(核心部分加上注释125行),提供了一种函数式,响应式的人机交互接口。在这个交互模型中,人机之间的信息流互为输出输出,构成一个循环,也即 Cycle这一命名所指,框架的Logo更是以莫比乌斯环贴切的描述了这个循环。阅读全文

学习RxJS: 导入

2016-05-31 23:04 by 莫耶, 982 阅读, 收藏, 编辑
摘要: 知道有 ReactiveX 这么一回事, 源于一位巨硬铁粉的安利演示:Reactive LINQ 加持的C#,简洁且颇具表达力;随后,便是万众瞩目的 Angular 2,这货的标配大礼包里就有RxJS,比比皆是的 api.invocation.map(...).subscribe(fn, fn, fn) 片断,让jQuery青年们一头雾水阅读全文

[Node.js] Node.js项目的持续集成

2016-03-04 09:27 by 莫耶, 321 阅读, 收藏, 编辑
摘要: 本文仅是简单介绍了持续集成的概念,以及如何快速构建Jenkis + Nodejs + Github 的持续集成环境。但Jenkins 的功能远不至文中所述的这些,Jenkins 还有详尽的日志处理和持续集成构建状等功能。抛砖引玉,愿能与大家一起继续探索。阅读全文

[Node.js] 使用node-forge保障Javascript应用的传输安全

2015-12-19 01:04 by 莫耶, 434 阅读, 收藏, 编辑
摘要: 本文提供了一种纯Javascript应用间的TSL思路:基于node-forge实现,基于RSA+AES的混合加解密方案。阅读全文

[Node.js] 对称加密、公钥加密和RSA

2015-06-14 13:38 by 莫耶, 1613 阅读, 收藏, 编辑
摘要: 通过比较,我们知道:RSA 比 AES 更难破解,因为它不需要担心密钥在传递过程中有泄露,只存在暴力破解一种可能;AES的优势是以分组为轮,加解密速度非常快,一般而言,AES 速度上数百倍于 RSA。所以在实际应用中,我们会混合应用AES和RSA。阅读全文

[Node.js] DSL in action

2015-05-30 20:46 by 莫耶, 605 阅读, 收藏, 编辑
摘要: DSL,即 domain-specific language ,是指和业务域模型相关的语言,粗糙的说法:行(业黑)话。关于什么是DSL,见仁见智,比如我认为SQL是一种DSL,有人却认为不是。在这里,我用javascript实现了一个类SQL语法查询JSON对象的DSL。阅读全文

[Node.js] 使用TypeScript编写Node项目

2015-04-25 19:59 by 莫耶, 3569 阅读, 收藏, 编辑
摘要: TypeScript 是巨硬推出的JavaScript转译语言。 TS的特点是提供 类、接口以及泛型等一系列概念,协助开发者在编译时就定位出一些传统JavaScript项目的运行时错误,实现即巨硬所谓的"Robust components"(此外,值得一提的是,TS是大名鼎鼎的 Anders Hejlsberg 主导的项目。阅读全文

[Node.js] Node.js中的流

2015-03-29 01:08 by 莫耶, 733 阅读, 收藏, 编辑
摘要: 说到流,就涉及到一个*nix的概念:管道——在*nix中,流在Shell中被实现为可以通过 |(管道符) 进行桥接的数据,一个进程的输出(stdout)可被直接作为下一个进程的输入(stdin)。 在Node中,流(Stream)的概念与之类似,代表一种数据流可供桥接的能力。阅读全文

[Node.js] 基于Socket.IO 的私聊

2015-01-02 21:55 by 莫耶, 1419 阅读, 收藏, 编辑
摘要: Websocket规范面对的问题是:并未被一些普遍使用的浏览器所支持 (如IE10之前的版本);在使用防火墙和代理的环境可能无法创建连接。Socket.IO 封装了一连串后备传输方案:WebSocket/ FlashSocket/ XHR long polling/ XHR multipart streaming/ XHR polling/ JSONP polling/ iframe... 本文要讨论的重点是,结合KOA和Socket.IO 实现通信定位到人。阅读全文

[Node.js] 闭包和高阶函数

2014-12-29 21:40 by 莫耶, 1280 阅读, 收藏, 编辑
摘要: 自由变量是指在函数中使用的,但既不是函数参数也不是函数的局部变量的变量。高阶函数满足:要么接受一个或多个函数作为输入;要么输出一个函数。通过闭包和高阶函数的组合运用,我们可以提炼出这样一种编程模式:通过分离>=2次的参数传递,以最少的代码实现动态的算法生成器。阅读全文