/images/avatar.png

从 V8 优化看高效 JavaScript【译】

文本翻译自: https://blog.logrocket.com/how-javascript-works-optimizing-the-v8-compiler-for-efficiency


理解 JavaScript 是如何工作的对于编写高效的 JS 大有帮助。

V8 执行 JS 分为三个阶段:

  • 源代码转换为 AST 抽象语法树。
  • 语法树转换为字节码:这个过程由 V8 的 Ignition 完成,2017年之前是没有的。
  • 字节码编译成机器码:由 V8 的编译器 TurboFan 来完成。

第一个阶段并不是文本的讨论范围,第二三阶段对于编写优化 JS 有直接影响。

微服务互通的桥梁: gRPC 入门示例

RPC 是什么?Remote Procedure Call ,远程过程调用,一种通信协议。你可以理解为,在某台机器上调用另外一台机器上的服务或方法。

应用服务对外可以提供 REST 接口以供进行服务的调用,那么对于分布式系统内部的微服务之间的相互调用呢?REST 的方式仍然可行,但是效率不高,因此 RPC 出现了。

为什么你应该使用 Go module proxy

自从 Go v1.11 版本之后 Go modules 成了官方的包管理方式,与此同时还有一个 Go module proxy ,它到底是个什么东西?顾名思义,其实就是个代理,所有的模块和依赖库都可以从这个代理上下载。

Dockerfile 最佳实践

Dockerfile 是用来构建 docker 镜像的配置文件,语法简单上手容易,你可以很轻松的就编写一个能正常使用的 Dockerfile ,但是它很有可能还不够好,本文将会从细节上介绍一些 tips 助你实现最佳实践。

Let's Encrypt 配置 HTTPS 免费泛域名证书

想要使用 HTTPS ,你必须先拥有权威 CA(证书签发机构)签发的证书(对于自签名的证书,浏览器是不认账的)。Let’s Encrypt 就是一家权威的 CA 证书签发机构,你可以向他申请免费的证书(一般商业证书的价格比较贵)。

流平台 Kafka

简介

Kafka 作为一个分布式的流平台,正在大数据相关领域得到越来越广泛的应用,本文将会介绍 kafka 的相关内容。

流平台如 kafka 具备三大关键能力:

  • 发布和订阅消息流,类似于消息队列。
  • 以容错的方式存储消息流。
  • 实时处理消息流。

kafka 通常应用于两大类应用:

使用 Puppeteer 构建自动化端到端测试

端到端测试指的是将系统作为一个黑盒,模拟正常用户行为,跨越从前端到后端整个软件系统,是一种全局性的整体测试。

来看本文的示例:

你在视频中看到的所有操作全部都是由程序自动完成的,就像真实的用户一样,通过这种自动化的方式可以很好的提升我们的测试效率从而保证交付的质量。

图像相似性:哈希和特征

引言

如何判断图像的相似性?

直接比较图像内容的 md5 值肯定是不行的,md5 的方式只能判断像素级别完全一致。图像的基本单元是像素,如果两张图像完全相同,那么图像内容的 md5 值一定相同,然而一旦小部分像素发生变化,比如经过缩放、水印、噪声等处理,那么它们的 md5 值就会天差地别。