Pandora.js 的 Service 机制

作者: 九十 发表于: 2017-12-20
这篇依然是介绍 Pandora.js 的系列文章之一 项目地址:https://github.com/midwayjs/pandora 欢迎社会各界前来 Star ~ 本章主要介绍我们的 Service 机制,是 Pandora.js 对于进程编排的一种高级机制。 Q:为什么要有这种机制?...

管理 Node.js 进程从未如此优雅

作者: 九十 发表于: 2017-12-14
说到 Node.js 的进程模型,脑子里第一个闪现的可能是 Cluster 模块,亦或是 Master / Worker 进程模型,在长期的使用过程中,我们逐渐发现,这样在应用的开发早晚会有局限性,除了不够优雅之外,每次增减进程或者自定义进程都会产生不可预知的问题。 在一些特定的场景下,我们甚...

机器学习,Hello World from Javascript!

作者: 梧忌 发表于: 2017-12-07
导语 JavaScript 适合做机器学习吗?这是一个问号。但每一位开发者都应该了解机器学习解决问题的思维和方法,并思考:它将会给我们的工作带来什么?同样,算法能力可能会是下一阶段工程师的标配。 本文旨在通过讲解识别手写字的处理过程,带读者了解机器学习解决问题的一般过程。本文适合以下背景的读者...

深入理解 Node.js Stream 内部机制

作者: 阎王 发表于: 2017-09-01
相信很多人对 Node.js 的 Stream 已经不陌生了,不论是请求流、响应流、文件流还是 socket 流,这些流的底层都是使用 stream 模块封装的,甚至我们平时用的最多的 console.log 打印日志也使用了它,不信你打开 Node.js runtime 的源码,看看 lib...

GCanvas 渲染引擎介绍

作者: 韦青 发表于: 2017-07-27
GCanvas 已经正式开源,开源官方主页,传送门 GCanvas 提供了一套类似于 H5 Canvas 标准的 JavaScript API。基于这套 API 可以方便的去做图形绘制、动画渲染等,开发的体验与 H5 Canvas 是完全一样的。 GCanvas 介绍 GCanvas发展经历...

LevelDB 实现分析

作者: 胡帅 发表于: 2017-07-05
LevelDB 介绍 LevelDB 是由 Google 开发的 key-value 非关系型数据库存储系统,是基于 LSM(Log-Structured-Merge Tree) 的典型实现,LSM 的原理是:当读写数据库时,首先纪录读写操作到 Op log 文件中,然后再操作内存数据库,当达...

如何实现一个 Git Diff 解析器

作者: 栖邀 发表于: 2017-05-19
代码审阅中一个重要功能是对两个 commit 进行 diff 并展示到页面中,这篇文章将尝试总结其实现过程。 解析 Git Diff 想要展示 diff,首先需要将 Git 提供的 diff 格式解析成结构化数据(比如:JSON)。 基本格式 一个基本的 Git Diff 格式如下: di...

使用 ES decorators 构建一致性 API

作者: 法海 发表于: 2017-04-28
重用和一致性是程序设计中经久不衰的两个课题。在最新的 ES Proposal 中,「decorators 语法」为此带来了一定的便利,并且,很适合应用于大型的类库中。 装饰模式 提到 decorator 大家都不会陌生,即「装饰模式」—— 我们可以在「不侵入原有代码」的情况下,为代码增加一...

「深入实践中的 Node.js」- Node 地下铁第四期南京站线下沙龙总结

作者: 煜宸 发表于: 2017-03-25
前言 获得知识有两种途径。一是学习理论知识;二是实践。二者缺一不可。学习知识固然重要,但最根本的是要把理论的知识和实践结合起来达到学以致用和用以促学的目的,Node.js 从 2009 年至今发展已近 8 年,时光荏苒,回想当初社区生态还不完善时候的捉襟见肘,到现在社区庞大社区完善,为一些企业...

我眼中的 JavaScript 函数式编程

作者: 化辰 发表于: 2017-03-17
JavaScript 函数式编程是一个存在了很久的话题,但似乎从 2016 年开始,它变得越来越火热。这可能是因为 ES6 语法对于函数式编程更为友好,也可能是因为诸如 RxJS (ReactiveX) 等函数式框架的流行。 看过许多关于函数式编程的讲解,但是其中大部分是停留在理论层面,还有一...