JS运行机制

1 执行模式JS的执行模式是单线程的,当有多个任务时必须排队执行,优点是执行环境简单,缺点是性能低下,当有多个任务时,需要等待上一个任务执行完成才能执行下一个任务, 如果某个任务出现了死循环,那么就会导致程序崩溃。 所以JS出现了同步和异步的概念。

Go GMP 调度模型

1 进程、线程、协程的区别进程:进程是操作系统为应用程序分配资源的最小单元。每个进程有独立的内存空间和状态。 线程:线程是进程中的一个独立执行单元。在 Go 中,一个进程可以启动多个线程,以并行执行任务。

Go 常用命令

1 常用编译参数 参数 说明 -o 指定输出可执行文件名 -v 编译时显示包名,可以理解成输出详细编译信息 -u 不加-u标记,执行 go get 一个已有的代码包,会发现命令什么都不执行。加了-u才会去拉取最新的代码包的最新版本 -race 开启竞态检测 *.go 编译当前目录下的所有go文件,也可以写成 f2.go f2.go … -a 该选项用于强制重新编译所有的依赖项,即使 …

JavaScript heap out of memory

刚在打包项目时执行 yarn run build 时出现了 oom 的情况,具体报错信息如下: 我的环境是 win10 专业版 WSL。 解决办法,设置 export NODE_OPTIONS=--max_old_space_size=4096,设置完之后重新执行 yarn run build 即可。

将google浏览器插件下载到本地

国内的网络太复杂了,在不能访问 google 的情况下,甚至都不能打开网上应用商店,所以我们需要一个方便的方式来下载google浏览器插件并分享 给需要的小伙伴。 我们打开任意一个浏览器插件,如: URL 地址栏中有一串字符串,这是唯一的,通过这个字符串可以获取到插件的下载地址,如:

一致性哈希算法

1 如何分配请求大多数网站背后肯定不是只有一台服务器提供服务,因为单机的并发量和数据量都是有限的,所以都会用多台服务器构成集群来对外提供服务。但是这样的话,问题就来了,现在有那么多个节点(后文统称服务器为节点),要如何分配客户端的请求呢❓

Go 使用原生 Swagger

Swagger 是一个规范且完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。 当通过 Swagger 进行正确定义,用户可以理解远程服务并使用最少实现逻辑与远程服务进行交互。

工作中问题总结

1 缘起那天面试一家公司,面试的人问我工作内容,我说大部分时间就是写业务。好吧,我承认我是个菜鸡。然后他问,找个你工作中遇到的问题和解决的过程来谈一谈。我想了下说,大部分问题 google 下都能解决,没有什么特别复杂的,大部分问题前人都有解决方法,有些问题可能是之前没有接触过,所以花的时间比较长。

nodeJS 调用 C 语言

最近在 node 项目开发中,有个需求是 nodeJS 需要支持调用 C 语言的函数,node-addon-api 可以支持这个需求。 1 开发环境我用的开发环境 docker 起的 code-server 环境,code-server 版本为 code-server:version-v3.11.1 。可以把 code-server 理解成一个在线 vscode 环境,就像 github …

Node-RED 节点开发

1 概述Node-RED 是构建物联网 (IOT,Internet of Things) 应用程序的一个强大工具,其重点是简化代码块的“连接"以执行任务。它使用可视 化编程方法,允许开发人员将预定义的代码块(称为“节点”,Node) 连接起来执行任务。连接的节点,通常是输入节点、处理节点和输出节点的组合,当它们连接在一起时,构成一个“流”(Flows)。

Go 使用 sse

1 SSE 的本质严格地说,HTTP 协议无法做到服务器主动推送信息。但是,有一种变通方法,就是服务器向客户端声明,接下来要发送的是流信息(streaming)。

go 函数式选项模式

Go 语言没有构造函数,一般通过定义 New 函数来充当构造函数。但是,如果结构有较多字段,要初始化这些字段,就有很多种方式,有一种方式被认为是最优雅的,就是函数式选项模式(Functional Options Pattern)。