Engineering Notes

孟斌的小站

技术博客与学习记录

共 610 篇文章 标签与分类索引已启用

testify简述

github.com/stretchr/testify 是一个流行的Go语言测试库,它提供了一组丰富的工具和断言函数,使得编写和运行测试变得更加简洁和高效。testify 包含多个子包,每个子包都有特定的功能,例如断言、要求、模拟等。本文将详细介绍 testify 库的使用,包括安装、各个子包的功能和用法等。

go
继续阅读

单元测试

在Go语言中,单元测试是确保代码质量和功能正确性的重要手段。Go语言内置了强大的测试框架,使得编写和运行单元测试变得非常简单。本文将详细介绍如何在Go中进行单元测试,包括测试文件的命名、测试函数的编写、常用的测试工具和技巧等。

go
继续阅读

go实现队列

在Go语言中实现队列可以通过多种方式,最简单和直观的方法是使用切片(Slice)。队列是一种先进先出(FIFO)的数据结构,主要操作包括入队(Enqueue)和出队(Dequeue)。

go
继续阅读

Linux进程

Linux进程是系统中正在运行的程序的实例。每个进程都有一个唯一的进程标识符(PID),并且拥有自己的地址空间、内存、数据栈以及其他用于跟踪执行状态的属性。进程可以创建其他进程,被创建的进程称为子进程,创建它们的进程称为父进程。这种关系形成了一个进程树。

继续阅读

僵尸进程

僵尸进程是指已经完成执行(终止)但仍然在操作系统的进程表中占有一个位置的进程。这种进程已经停止运行,不再占用系统资源,如CPU时间,但它仍然保留了一些信息,如进程ID、终止状态、运行时间等,等待父进程读取。在大多数操作系统中,当一个进程结束时,它会发送一个退出状态给它的父进程,然后进入僵尸状态。

继续阅读

使用联合索引优化查询效率

在数据库设计和查询优化中,联合索引是一个强大的工具,它可以显著提高数据检索的速度。然而,要充分利用联合索引的优势,我们需要理解它们是如何影响查询效率的。本文将探讨联合索引的工作原理以及如何使用它们来优化查询。

继续阅读

GMP模型

GMP模型概述

GMP模型是Go语言的并发调度模型,它是由Goroutine、M(OS线程)和P(处理器)三个主要组件构成的。这个模型是Go运行时(runtime)用来调度Goroutines执行的机制,它允许数以万计的Goroutines能够在有限数量的线程上高效运行。下面是GMP模型各个组件的详细说明:

go
继续阅读

Solidity:ERC20

简介

ERC20是以太坊区块链上的一个标准,用于创建和发行智能合约,实现代币化的应用。它定义了一组通用的接口,使得开发者可以创建和使用代币,而不需要了解底层区块链技术的细节。以下是ERC20标准中的主要接口及其含义:

继续阅读