构筑未来数据网 - Pandora.js 的信息通路

作者: 张挺 发表于: 2018-01-13
上一篇我们介绍了 Pandora.js 度量体系中的 Metrics,通过 Metrics 我们能将应用运行中的数据生成出来,但是有时候我们不仅仅需要这些指标数据,更可能需要信息数据。 这里的指标数据表示数字值,为了和信息数据(字符串)做区分。 所谓的信息数据是什么? 在 Pandora....

跨越时代的度量衡 - Pandora.js 的 Metrics 介绍

作者: 张挺 发表于: 2018-01-06
自秦始皇统一六国,天下归一,推行“一法度衡石丈尺,车同轨 ,书同文”,颁发统一度量衡诏书,制定了一套严格的管理制度,天底下的度量衡就变成了一套。而如今程序世界也是天下分崩离析,不同编程语言各占一隅,不过即使语法不同,但是分分合合,思路终归一致,想要度量代码的心情依旧是一样的。 度量的作用 很...

让进程间通信更容易 - Pandora.js 的 IPC-Hub

作者: 九十 发表于: 2017-12-22
我们前面的两篇介绍了怎么定义多个进程,怎么利用进程这一资源。我们在淘宝业务中也是这样实践的,有一个问题也越发明显,进程间如何通信呢? 起初我们有一个比较简单的 IPC 实现,通过 Domain Socket 进行通信。也是传统的 C/S 架构的,两个进程间进行比较基础的消息通信(比较类似 No...

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...