你好,欢迎来到我的博客 👋 Good morning, and in case I don't see ya, good afternoon, good evening, and good night! 2018-01-01 默认分类
Debian/Ubuntu系统服务管理指南:systemctl深度解析 该文章详述了`systemd`与`systemctl`在Debian/Ubuntu系统中的基础与高级应用,包括其演变、核心架构、服务生命周期管理、系统状态查询、Target管理、日志管理等。文章还对比了Debian与Ubuntu在服务名称和配置文件路径上的差异,并提供了自定义服务、定时任务以及应急模式恢复的实例。此外,还探讨了常见错误代码解析、调试技巧及性能优化建议,旨在帮助用户更好地管理VPS上 2025-03-02 服务器 #vps
学习碎笔-创建一个golang Web项目 这篇文章提供了一个类似于备忘录的指南,帮助用户初始化一个Golang Web项目。文章首先提醒读者参考时需谨慎,因为部分流程可能不够规范。接着,详细介绍了如何通过创建项目文件夹并初始化Go模块来启动项目,使用了`mkdir`和`go mod init`等命令。该指南旨在为初学者提供简洁的项目初始化步骤,便于快速上手。 2025-03-02
学习碎笔-关于gRPC gRPC是由Google开发的高性能、跨语言的远程过程调用(RPC)框架,基于HTTP/2和Protocol Buffers实现。其核心特性包括多语言支持、高效传输、流式通信和强类型约束。在Golang中使用gRPC需安装`protoc`编译器和`grpc-go`库,通过Protobuf定义服务接口并生成代码。gRPC支持单向和双向流通信,适用于实时数据传输场景,如斐波那契数列生成。通过Go语言示 2025-02-20 Golang #gRPC#gin#Golang#微服务
学习碎笔-Golang中的init( )函数 Go语言中的`init()`函数用于程序初始化,具有自动执行、无参数和返回值的特性,可在同一包内定义多个并按代码出现顺序执行。其初始化流程遵循全局变量→包`init()`→`main()`的顺序,依赖包的`init()`优先执行。典型应用包括初始化全局变量、注册组件、执行预处理任务及单次初始化保证。需注意避免滥用导致的代码可读性下降,依赖包顺序需显式控制,且不支持错误返回,只能通过panic处 2025-02-19 Golang
学习碎笔-gin框架起步 该示例演示了使用Golang的Gin框架快速构建Web服务的过程,通过创建默认路由引擎、定义GET请求处理函数并启动服务,实现基础API接口开发。代码解析重点包括路由初始化时自动加载的日志与异常恢复中间件,以及利用gin.H简化JSON响应构建的实践技巧。框架设计强调高频场景的极简实现,通过类型别名gin.H提供强类型校验和代码精简优势,相比原生map减少23%字符冗余。扩展功能涵盖路由分组、 2025-02-18 Golang #Golang#gin
学习碎笔-go.sum文件有什么作用 go.sum文件是Go Modules的核心安全机制,通过记录所有依赖模块(直接、间接及依赖树各层)的SHA-256哈希值,确保依赖内容的完整性与一致性。其自动生成于执行go mod tidy、go get等命令时,并在每次构建时严格校验哈希匹配,防止恶意篡改、意外版本替换及不完整下载。文件每行包含模块路径、版本及哈希标识,同时保留历史版本哈希以实现兼容。与go.mod仅声明直接依赖不同,go 2025-02-18 Golang #Golang
学习碎笔-Golang的包管理逻辑 Go与Python在包管理机制上呈现显著差异:Go内置的Go Modules采用项目级版本隔离,通过go.mod/go.sum实现精确语义版本控制与哈希校验,依赖存储于全局路径并支持自动更新策略;Python依赖第三方pip与内置venv组合,通过虚拟环境完全隔离,使用requirements.txt/Pipfile进行宽松版本管理,需手动切换环境。Go强调自动化集成(如依赖解析、安全校验), 2025-02-17 Golang #Golang
学习碎笔-Golang中的"类" 学习碎笔-Golang中的"类" 在 Go 语言中,没有传统面向对象编程中的 “类”(class) 概念,但可以通过 结构体(struct) 和 < 2025-02-16 Golang #Golang
学习碎笔-Golang中的接口 学习碎笔-Golang中的接口 在 Go 语言中,接口(interface) 是类型系统的核心设计之一,它通过定义行为契约来实现多态性和 2025-02-16 Golang #Golang