基础知识 进程和线程 进程是程序在操作系统中的一次执行过程,系统进行资源分配和调度的一个独立单位。 线程是进程的一个执行实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。 一个进程可以创建和撤销多个线程;同一个进程中的多个线程之间可以并发执行。 并发和并行 并发主要由切换时间
Getting Started mkdir helloworld cd helloworld 使用go mod init 模块名来管理依赖,模块名随便起一个就行,目录下就会有一个go.mod文件 写了一个 hello.go文件后 go run .运行程序 go run会自动寻找程序入口,即 标记为p
简介 Gorm 是 Go 语言的一个强大且易用的 ORM(对象关系映射)库,用于简化与关系型数据库的交互。支持主流数据库, 扩展性强,支持自定义钩子和插件。 模型定义:支持通过结构体定义数据库表模型。 CRUD 操作:简化常见的数据库操作,如创建、读取、更新和删除。 查询构建:支持链式查询方法和原生
TCP、扫描器、代理 本章内容: 学习 go 中的基本 TCP 通信 如何构建并发的、经过适当控制的端口扫描器 创建用于端口转发的TCP 代理 重新创建Netcat 的“安全巨洞”功能 TCP 的握手机制 三次握手:客户端发 syn 数据包——服务器以 syn-ack 进行响应——客户端发送 ACK
高质量编程和性能调优实战 如何编写简洁清晰的代码 常用 go 语言程序优化手段 go 程序性能分析工具 工作中性能优化的原则和流程 编程规范 代码格式: 可以使用官方工具 go fmt 自动格式化,或者使用 go imports 工具,该工具就是 gofmt+依赖包自动管理,能够自动增删依赖包
包管理 每个包一般都定义了一个不同的名字空间用于它内部的每个标识符的访问。每个名字空间关联到一个特定的包 每个包还通过控制包内名字的可见性和是否导出来实现封装特性。通过限制包成员的可见性并隐藏包 API 的具体实现,将允许包的维护者在不影响外部包用户的前提下调整包的内部实现。通过限制包内变量的可见性
1 方法 1.1 为结构体类型声明方法 Go 没有类。不过可以为结构体类型定义方法。方法就是一类带特殊的 接收者 参数的函数。方法接收者在它自己的参数列表内,位于 func 关键字和方法名之间。 接收者最好选择简短的名字,最常用的就是类型名称的首字母,如 Vertex 中的 v。 能够为不同类型
go 官方教程 https://tour.go-zh.org/list 一、入门 go 是编译型语言,源文件总是按 UTF-8 编码 $ go run helloworld.go #对以.go 为后缀的源文件进行编译、链接,运行生成的可执行文件。 $ go build helloworld.g
测试 测试分为三种类型: 回归测试 集成测试 单元测试 单元测试 覆盖率最大,且成本最低 回归测试反之 单元测试 规则: 测试文件以 _test.go 结尾 测试函数命名以
其他
网络安全
后端
前端
常用工具链
计算机基础
测试
Python
折腾日记
数据库
C/C++
算法
大模型技术
Linux
Golang
Java