模块一的《06 | 哪些因素会影响 Node.js 性能?》,我们详细讲解了影响到 Node.js 性能的一些因素,但是在实际开发过程中,我们应该...
系统稳定,如何监控和保护进程安全
在开始本讲之前,我们先了解一个特点,在前端因为某些用户的特殊性,导致的逻辑 Bug 会造成这个用户服务异常,但是在服务端如果没有做好...
为何MC能长期维持高性能读写
内存管理 slab 机制讲完淘汰策略,我们接下来学习内存管理 slab 机制。Mc 内存分配采用 slab 机制,slab 机制可以规避内存碎片,是...
网络安全:常见网络攻击以及防护策略
Node.js 作为后台服务,网络相关的安全措施也非常重要,互联网一些常见的网络攻击策略,我们都应该在框架层面去杜绝。本讲就介绍一些常见...
探究宏任务 & 微任务的运行机制
对 Eventloop 的知识进行了讲解,其中对宏任务和微任务做了简单的铺垫,那么这一讲我们就来深挖一下它背后蕴含的原理。我会先带你分析宏...
探究 JS 常见的 6 种继承方式
我先来简单介绍一下继承的概念。继承是面向对象的,使用这种方式我们可以更好地复用以前的开发代码,缩短开发的周期、提升开发效率。继承在...
数组原理,如何理解 JS 的类数组
其实 JS 中一直存在一种类数组的对象,它们不能直接调用数组的方法,但是又和数组比较类似,在某些特定的编程场景中会出现,这会让很多 ...
释放内存,提升浏览器页面性能
探讨 JS 引擎相关的内容。这个模块是整个课程的最后一个模块,主要围绕 JS 引擎相关的知识来讲解,让你深入了解其底层运行逻辑。这对于...
事件循环,高性能到底是如何做到的
在介绍 Node.js 的应用之前,我们先来讲解下 Node.js 中最基础也是最核心的部分:事件循环的原理。这一部分在面试过程中是必考的点,然...
实现数组扁平化的 6 种方式
来聊聊数组相关的应用——如何实现数组扁平化。数组扁平化在一些多维数组的应用场景中会出现,我将围绕 6 种方式来带你实现它。此外,关...
设计缓存架构时需要考量哪些因素
缓存原理相关的主要知识点就讲完了,接下来会讲到如何引入缓存并进行设计架构,以及在缓存设计架构中的一些关键考量点。缓存的引入及架构设...
如何用 JS 实现各种数组排序
数组排序是你在 JavaScript 的编程过程中经常会遇到的,也是大厂面试中会考察的,尤其是调用 sort 方法,不过今天我们主要围绕数据结构...
如何为社交feed场景设计缓存体系
Feed 流是很多移动互联网系统的重要一环,如微博、微信朋友圈、QQ 好友动态、头条/抖音信息流等。虽然这些产品形态各不相同,但业务处理...
如何为秒杀系统设计缓存体系
互联网电商为了吸引人气,经常会对一些商品进行低价秒杀售卖活动。比如几年前小米的不定期新品发售,又如当前每年定期举行双11、双12中的特...
为海量计数场景设计缓存体系
计数服务在互联网系统中非常常见,用户的关注粉丝数、帖子数、评论数等都需要进行计数存储。计数的存储格式也很简单,key 一般是用户 uid...
完整学习MC协议及优化client访问
异常错误响应接下来,我们来完整学习 Mc 协议。在学习 Mc 协议之前,首先来看看 Mc 处理协议指令,如果发现异常,如何进行异常错误响...
实现一个深浅拷贝
我把深浅拷贝单独作为一讲来专门讲解,是因为在 JavaScript 的编程中经常需要对数据进行复制,什么时候用深拷贝、什么时候用浅拷贝,是开...
实现符合 PromieA+ 规范的 Promie
其实在“14 | 异步编程(中):如何深入理解异步编程的核心 Promise”中,我已经专门介绍了 Promise 的基本原理和使用情况。由于 Pro...
怎样实现 new、apply、call、bind 的底层逻辑
JavaScript 中的 apply、call 和 bind 方法是前端代码开发中相当重要的概念,并且与 this 的指向密切相关。很多人对它们的理解还比...
深入理解异步编程的核心 Promie
其实在 ES6 标准出现之前,社区就最早提出了 Promise 的方案,后随着 ES6 将其加入进去,才统一了其用法,并提供了原生的 Promise ...