-
Docker Compose 单机部署后端服务实践
Docker Compose 单机部署后端服务实践对于中小型项目,单台服务器加 Docker Compose 是很实用的部署方式。它比裸机部署更容易管理依赖,比 Kubernetes 简单很多,适合个人项目、内部系统、小型 API 服务。 本文以一个... -
Nginx 反向代理后端 API 服务完整配置指南
Nginx 反向代理后端 API 服务完整配置指南后端服务通常不会直接暴露给公网用户,而是放在 Nginx 后面。Nginx 负责监听 80/443 端口、处理域名、转发请求、设置超时、限制上传大小,并统一管理访问日志。 本文以一个运行在 ... -
Linux systemd 服务部署与守护进程管理指南
Linux systemd 服务部署与守护进程管理指南很多后端服务最终都会以一个长期运行的进程部署在 Linux 服务器上。直接用 nohup 或 screen 虽然能跑起来,但在自动重启、日志管理、开机启动、优雅停止这些方面都不够规范。 syste... -
FFmpeg 视频切片 m3u8 与合并 MP4 常用命令
FFmpeg 视频切片 m3u8 与合并 MP4 常用命令FFmpeg 做视频切片和合并非常方便。 常见场景: MP4 切成 HLS 生成 m3u8 生成 .ts 分片 把 m3u8 合并回 MP4 把多个 MP4 合并成一个 一、安装 FF... -
SQLite 开启 WAL 模式提高并发读写能力
SQLite 开启 WAL 模式提高并发读写能力SQLite 默认就很好用。 但如果你的程序有较多并发读写,就应该了解: 1WAL 模式 WAL 全称: 1Write-Ahead Logging 简单理解: 1写入先进入 WAL 日志文件,读请求... -
本地搭建 Hono + D1 + Vue3 + TailwindCSS 并发布到 Cloudflare Workers
本地搭建 Hono + D1 + Vue3 + TailwindCSS 并发布到 Cloudflare Workers本文从零开始搭一个小项目: 1234Vue3 + TailwindCSS 前端Hono APICloudflare D1 数据库Cl... -
本地搭建合规换脸实验服务:Python API 接口完整教程
本地搭建合规换脸实验服务:Python API 接口完整教程先说明一点: 1换脸、人脸替换、人脸生成这类技术,只应该用于本人或明确授权的素材。 我不会写“支持 NSFW 换脸”的教程。 原因很简单:这类能力很容易被用于非自愿色情深度伪造,风险太高,... -
一文精通 Codex 的使用:从安装、插件、自动化到分支合并
一文精通 Codex 的使用:从安装、插件、自动化到分支合并Codex 不是一个简单的“代码补全工具”。 更准确地说: 1Codex 是一个可以读代码、改代码、跑命令、做验证、写文档、做自动化任务的 AI 编程代理。 如果你只让它写几行函数,那当然... -
Go 静态二进制构建与部署
Go 静态二进制构建与部署Go 的一个重要优势是部署简单。很多服务可以编译成一个二进制文件,上传到服务器后直接运行,不需要在目标机器安装完整运行时。 一、本地构建1go build -o myapp ./cmd/server 生成的 myapp ... -
Go HTTP 服务优雅关闭实践
Go HTTP 服务优雅关闭实践服务发布、容器重启、机器维护时,进程通常会收到退出信号。如果直接退出,正在处理的请求可能中断。优雅关闭可以让服务停止接收新请求,同时等待已有请求完成。 一、创建 Server1234server := &ht... -
Go database/sql 数据库访问入门
Go database/sql 数据库访问入门Go 标准库的 database/sql 提供了统一的数据库访问接口。它不绑定具体数据库,需要配合 MySQL、PostgreSQL、SQLite 等驱动使用。 一、打开连接池12345db,... -
Go Modules 依赖管理基础
Go Modules 依赖管理基础Go Modules 是 Go 官方依赖管理方案。现代 Go 项目基本都使用 go.mod 和 go.sum 管理模块路径、版本和校验信息。 一、初始化模块1go mod init example.com/myap... -
Go 表格驱动测试写法入门
Go 表格驱动测试写法入门Go 标准库内置测试框架。表格驱动测试是 Go 项目里非常常见的写法,适合用一组输入输出覆盖多个边界场景。 一、普通测试12345678910func Add(a, b int) int { return ... -
Go 错误处理实践指南
Go 错误处理实践指南Go 的错误处理很直接:函数返回 error,调用方检查它。虽然代码看起来比异常啰嗦,但可读性和控制力都很好。 一、基本写法12345file, err := os.Open("config.yaml")i... -
使用 Go 标准库编写 HTTP 服务
使用 Go 标准库编写 HTTP 服务Go 标准库自带强大的 HTTP 能力。对于很多小型 API、内部服务和健康检查接口,不引入 Web 框架也能写得很清楚。 一、最小服务1234567891011121314package mainimport... -
Go 接口设计的几个实用原则
Go 接口设计的几个实用原则Go 的接口是隐式实现的。一个类型只要拥有接口要求的方法,就自动实现了这个接口。这让 Go 的抽象非常轻量,但也容易被过度使用。 一、小接口更好维护Go 标准库里有很多小接口,比如: 123type Reader int... -
Go Context 超时、取消与请求链路控制
Go Context 超时、取消与请求链路控制context.Context 是 Go 后端开发里非常重要的工具。它可以在请求链路中传递取消信号、超时时间和少量请求级数据。 一、为什么需要 Context假设一个 HTTP 请求触发了数据库查询、远... -
Go Goroutine 与 Channel 并发入门
Go Goroutine 与 Channel 并发入门Go 的并发模型非常轻量。goroutine 负责并发执行,channel 负责协程之间通信。掌握这两个概念,就能写出很多实用的并发程序。 一、启动 goroutine1234567891011... -
Rust 与 WebAssembly 前端高性能场景入门
Rust 与 WebAssembly 前端高性能场景入门WebAssembly 让浏览器可以运行接近原生性能的代码。Rust 因为没有 GC、性能稳定、工具链成熟,常被用来编写前端中的高性能模块。 一、适合使用 WASM 的场景不是所有前端逻辑都适... -
Rust 并发编程中的 Channel、Mutex 与 Arc
Rust 并发编程中的 Channel、Mutex 与 ArcRust 的并发模型很有辨识度:它不只是提供线程 API,还通过类型系统限制危险的数据共享方式。常见并发工具主要有 Channel、Mutex 和 Arc。 一、线程基础12345678... -
Rust 单元测试与集成测试实践
Rust 单元测试与集成测试实践Rust 的测试能力由 Cargo 原生提供,不需要额外搭框架。只要项目结构合理,就可以很自然地写单元测试、集成测试和文档测试。 一、单元测试单元测试通常写在同一个文件中: 12345678910111213pub ... -
Rust Serde 处理 JSON 与配置文件
Rust Serde 处理 JSON 与配置文件Serde 是 Rust 生态中最常用的序列化和反序列化库。无论是处理 HTTP JSON、读取配置文件,还是保存本地数据,Serde 都是绕不开的基础工具。 一、添加依赖123[dependenci... -
使用 Rust Axum 构建 Web API
使用 Rust Axum 构建 Web APIAxum 是 Tokio 生态里的 Web 框架,设计简洁,和 Tower、Hyper 集成紧密。它适合构建高性能 API 服务,也适合学习 Rust 后端开发的基本模式。 一、添加依赖1234[dep... -
使用 Rust 和 Clap 编写命令行工具
使用 Rust 和 Clap 编写命令行工具Rust 很适合写命令行工具:启动快、部署简单、类型安全、跨平台表现稳定。配合 Clap,可以快速构建参数清晰、帮助信息完善的 CLI。 一、安装依赖12[dependencies]clap = ...