Taobao FED

分类:Node.js

新版卖家中心 Bigpipe 实践(二)

自从上次通过 新版卖家中心 Bigpipe 实践(一) 阐述了 Bigpipe 实现思路和原理之后,一转眼春天就来了。而整个实践过程,从开始冬天迎着冷风前行,到现在逐渐回暖。其中感受和收获良多,和大家分享下。代码偏多,请自带编译器。 核心问题一切技术的产生或者使用都是为了解决问题,所以开始前,看下要解决的问题: 同步加载首屏模块,服务端各个模块并行生成内容,客户端渲染内容依赖于最后一个内容的生

如何优雅的在 koa 中处理错误

软件开发时,有 80% 的代码在处理各种错误。 ——某著名开发者 想让自己的代码健壮,错误处理是必不可少的。这篇文章将主要介绍 koa 框架中错误处理的实现(其实主要是 co 的实现),使用 koa 框架开发 web 应用时进行错误处理的一些方法。 基础在 Node.js 中,错误处理的方法主要有下面几种: 和其他同步语言类似的 throw / try / catch 方法 callbac

深入理解 GraphQL

0.引子通过上一篇文章我们对 GraphQL 有了基础的了解。我们知道 GraphQL 使用 Schema 来描述数据,并通过制定和实现 GraphQL 规范定义了支持 Schema 查询的 DSQL (Domain Specific Query Language,领域特定查询语言)。Schema 帮助将复杂的业务模型数据抽象拆分成细粒度的基础数据结构,而 DSQL 的实现则赋予了前端开发者自由

进程间通信的另类实现

背景Node.js 内置的进程间通信使用非常简单,但也有一定的局限性,只能在父子进程间通信。下面是官方文档给的一个例子。 首先是父进程的 parent.js : 12345678const cp = require('child_process');const n = cp.fork(`${__dirname}/sub.js`);n.on('me

前端也应该了解点 docker 知识:docker 架构(上)

上一篇文章 前端也应该了解点 docker 知识:docker 的理念与场景 介绍了 docker 的一些理念,以及在前端方面可能的应用场景,本篇我们梳理一下 docker 的架构。 话说,我们团队的小明同学看了上篇文章之后,很是激动,迫不及待的想尝试下 docker ,然后按照网上一些教程跑出来了一个 “Hello world” ,激动的差点把鼠标给扔了。如果小明的故事到这里,那就不是我们团

前端也应该了解点 docker 知识:docker 的理念与场景

我觉着你是看了题目点进来的。前端和 docker 这俩八竿子打不着的有毛关系?那接下来我们就扯一扯,看看能不能把它俩扯一块。 首先得达成共识,现在的前端已经不是以前的狭义的前端,如果指狭义的前端,那真是半毛钱关系都没有。但你我不可否认的是,现在是大前端的时代。什么是大前端,详细的应该大老板来给解释下,但是这里还是简单的去说一下: 前端有了 Node.js,扩展到了服务端的边界,未来有更多的可能

记一次 Node.js 应用内存暴涨分析

起因之前 TMS 在运行时 CPU 中占用率和内存占用一直很高,导致应用运行状态不是很良好,需要频繁重启。经过排查,找出了部分原因: 使用的 html-minifier 模块有问题,如果输入的内容是一个有错误的 HTML 结构,会使解析进入死循环,导致 CPU 占用率 100%。 在使用 vm 模块时,使用姿势错误,导致内存占用无法释放,使内存占用暴涨。 第一个问题我们今天不予讨论,主要

让我们谈谈「生产环境中的 Node.js」- Node 地下铁第 1 次线下沙龙总结

1 月 9 日下午,Node 地下铁第 1 次线下沙龙在北京京仪大酒店举行,当天也是难得的好天气。 本次沙龙邀请到了 4 位线上 Node.js 大规模应用设计以及性能调优的核心工程师,共同就「生产环境中的 Node.js」这一主题进行分享。 感谢各位同学的参与,13 点半签到,很快会议厅就被挤满了,对那些全场站在后排听完分享的同学表示抱歉~ 分享Node.js 助力淘宝大促活动峰值 4 万 Q

找回 Node.js 里面那些遗失的 ES6 特性

由于 Babel,WebPack, React 技术的流行, 小明同学已经开始在前端代码里面用上了 ECMAScript 2015 (以下称 ES6 ) 的众多特性。import, export, class, arrow function, let const 等等关键词甚至都已经开始变成小明的肌肉记忆。 但是等等,对于小明这样既写 React 又写 Node.js 的的人来说,又有点分裂了。

Node.js 源站应用稳定性保障

源站与 CDN源站是 CDN 技术中的一部分,是发布内容的原始站点。CDN 负责承载流量的部分称做缓存服务器,而缓存服务器自身不生产内容,需要从源站获取原始内容。Dragonfly 作为淘宝内容管理系统(CMS)的源站,渲染并为缓存服务器提供了所有的页面内容。 Dragonfly 使用 Node.js 开发,稳定性保障是一边实践探索、一边总结经验。现在来回顾,稳定性保障涉及了 Dragonfly