Taobao FED

主页

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

上一篇我们介绍了 Pandora.js 度量体系中的 Metrics,通过 Metrics 我们能将应用运行中的数据生成出来,但是有时候我们不仅仅需要这些指标数据,更可能需要信息数据。 这里的指标数据表示数字值,为了和信息数据(字符串)做区分。 所谓的信息数据是什么? 在 Pandora.js 中,我们定义为应用的信息聚合,这里分为静态信息和动态信息两种类型,举个例子,应用的应用名,应用启动

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

自秦始皇统一六国,天下归一,推行“一法度衡石丈尺,车同轨 ,书同文”,颁发统一度量衡诏书,制定了一套严格的管理制度,天底下的度量衡就变成了一套。而如今程序世界也是天下分崩离析,不同编程语言各占一隅,不过即使语法不同,但是分分合合,思路终归一致,想要度量代码的心情依旧是一样的。 度量的作用很多同学表示怀疑,为什么要度量? 其实回答很简单,度量就像是身体健康的检查器,就像体检给的报告,没有这份报告,

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

我们前面的两篇介绍了怎么定义多个进程,怎么利用进程这一资源。我们在淘宝业务中也是这样实践的,有一个问题也越发明显,进程间如何通信呢? 起初我们有一个比较简单的 IPC 实现,通过 Domain Socket 进行通信。也是传统的 C/S 架构的,两个进程间进行比较基础的消息通信(比较类似 Node-IPC 这个包)。 不过实在是太基础了,时不时地在想: 在同一台计算机上的同一个语言,为什么要搞

Pandora.js 的 Service 机制

这篇依然是介绍 Pandora.js 的系列文章之一项目地址:https://github.com/midwayjs/pandora 欢迎社会各界前来 Star ~ 本章主要介绍我们的 Service 机制,是 Pandora.js 对于进程编排的一种高级机制。 Q:为什么要有这种机制?A:因为进程是昂贵的,我们需要有一种机制可以管理进程内的启停。 Service 解决什么问题?我们希望

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

说到 Node.js 的进程模型,脑子里第一个闪现的可能是 Cluster 模块,亦或是 Master / Worker 进程模型,在长期的使用过程中,我们逐渐发现,这样在应用的开发早晚会有局限性,除了不够优雅之外,每次增减进程或者自定义进程都会产生不可预知的问题。 在一些特定的场景下,我们甚至在 Master 下面加入了一个 Agent 进程用来运行一些中间件 SDK 。在这些修修补补的过程中

机器学习,Hello World from Javascript!

导语JavaScript 适合做机器学习吗?这是一个问号。但每一位开发者都应该了解机器学习解决问题的思维和方法,并思考:它将会给我们的工作带来什么?同样,算法能力可能会是下一阶段工程师的标配。 本文旨在通过讲解识别手写字的处理过程,带读者了解机器学习解决问题的一般过程。本文适合以下背景的读者阅读: 你不需要具备 Python、C++ 的编程能力:全文使用 JavaScript 作为编程语言,且

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

相信很多人对 Node.js 的 Stream 已经不陌生了,不论是请求流、响应流、文件流还是 socket 流,这些流的底层都是使用 stream 模块封装的,甚至我们平时用的最多的 console.log 打印日志也使用了它,不信你打开 Node.js runtime 的源码,看看 lib/console.js: 12345678910111213function write(ignoreE

GCanvas 渲染引擎介绍

GCanvas 提供了一套类似于 H5 Canvas 标准的 JavaScript API。基于这套 API 可以方便的去做图形绘制、动画渲染等,开发的体验与 H5 Canvas 是完全一样的。 GCanvas 介绍GCanvas发展经历了两个阶段。 第一阶段,2014 年中到 2015 年底,解决 Android 平台 WebView Canvas 渲染性能差的问题。 第二阶段,2016 年

LevelDB 实现分析

LevelDB 介绍LevelDB 是由 Google 开发的 key-value 非关系型数据库存储系统,是基于 LSM(Log-Structured-Merge Tree) 的典型实现,LSM 的原理是:当读写数据库时,首先纪录读写操作到 Op log 文件中,然后再操作内存数据库,当达到 checkpoint 时,则写入磁盘,同时删除相应的 Op log 文件,后续重新生成新的内存文件和

如何实现一个 Git Diff 解析器

代码审阅中一个重要功能是对两个 commit 进行 diff 并展示到页面中,这篇文章将尝试总结其实现过程。 解析 Git Diff想要展示 diff,首先需要将 Git 提供的 diff 格式解析成结构化数据(比如:JSON)。 基本格式一个基本的 Git Diff 格式如下: 12345678910111213diff --git a/f1 b/f1index 6f8a38c..449b07