Taobao FED

主页

Rax 系列教程(native 扫盲)

引子Rax 天生就是一个跨容器的解决方案,这让我们不必单独了解 iOS 和 安卓背后做了什么,让我们的开发变得很省心。但真实情况是我们的业务往往同时跑在 web 和 native 两端,web 我们轻车熟路是前端天生的优势,native 对很多人来说就会有些陌生,native 上出现的各种问题用 web 的路子去解释往往会解释不通。据 2017 年底粗略统计 Rax 的用户 70% 是前端同学,

实现一个 JavaScriptCore 的 debugger —— iOS 篇

JSC 的 debugger 是个神奇的东西,在网上资料甚少,几乎完全搜索不到,尤其是 iOS 上,OC 接口没有暴露任何 debugger 信息。 不过好在 JSC 是开源的,通过分析源代码可以找到 JSC::Debugger 这个抽象类,我们继承这个抽象类,然后实现掉虚函数,创建实例并且把它挂载到 global object 即可开启 debug 能力了。 思路是简单的,在 iOS 设备上,

Rax 系列教程(上手)

引子这篇文章针对初学 Rax 的同学,主要介绍 Rax 是什么,开发体验的梳理,以及遇到 Rax 的开发问题如何寻求解决。本文配合 Rax 的 0.5 发布版本推出,结合新版 Rax 对于旧版的教程内容做出部分修正。 1、什么是 Rax Rax 是一个源自淘宝的开源项目 https://github.com/alibaba/rax 作为 Weex 的上层 DSL 在集团内有广泛的应用。 除了跨

构筑未来数据网 - 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