Go语言技术文章
-
光伏运维项目交接不能只交一份设备台账。本文按项目资料、设备身份、安装调试、运行维护和缺项闭环整理档案清单,帮助双方完成可追溯的现场交接。360 收藏 -
TestMain 适合管理每个包只启动一次的昂贵资源,但不应承载单个用例的可变数据。本文用共享 httptest 服务演示包级生命周期、不可变入口、用例命名空间、t.Cleanup 与退出码处理,让并行测试共享资源而不互相污染。134 收藏 -
Fetch 被取消后,不要只看统一的失败结果。AbortSignal.timeout 会给出 TimeoutError,AbortController 默认产生 AbortError,AbortSignal.any 会保留最先触发的 reason。本文给出可复用封装,并说明网络错误、兼容性、竞态和清理边界。466 收藏 -
Go 测试分层的关键不在测试数量,而在依赖边界:单元测试隔离进程内规则,集成测试验证真实数据库或协议适配,端到端测试确认关键业务链路闭环。本文用订单服务和 Go testing 示例给出判断表、数据清理与失败定位方法。366 收藏 -
eBPF 验证器不仅检查指令数量,还会沿分支模拟寄存器、栈、指针类型和标量范围。宽范围循环、路径相关指针和无法合并的状态会迅速放大验证复杂度。本文从状态空间解释原因并给出排查与收敛方法。189 收藏 -
使用 Go 的 httptest.NewRequest 和 ResponseRecorder,在不启动真实网络服务的情况下测试 HTTP Handler 的状态码、Header、响应体以及成功和错误边界。304 收藏 -
Python 3.10 起可用 @dataclass(slots=True) 自动生成 __slots__,避免每个字段固定的小对象创建实例 __dict__。本文通过完整小项目对比批量实例内存,并说明序列化、继承、动态属性和弱引用的兼容边界。427 收藏 -
Go 并行子测试在旧循环语义下可能让多个闭包读取同一个最终循环项;Go 1.22 已改变按轮变量语义,但 slice、map、指针和外部资源仍可能共享。本文给出兼容写法、深复制与资源隔离方法。205 收藏 -
文章 · java教程 | 2星期前 | 数据校验 · api设计 · Java教程 · 参数校验 Java record API DTO Jakarta Validation 紧凑规范构造器 跨字段校验
Java Record 作为 API DTO 时,不要把所有校验都塞进构造器。本文按字段格式、Record 自身不变量、跨字段业务规则和外部依赖四类边界,说明紧凑规范构造器、Jakarta Validation 与应用服务各自适合承担什么校验。370 收藏 -
Go 表驱动测试的价值不只是少写重复代码,更重要的是把有效输入、边界值和非法输入组织成可定位的子测试。本文用输入分区、语义化命名和 -run 精确重放整理一套实用写法。302 收藏 -
PHP 枚举与数据库状态字段如果同时演进,最容易在重命名、删值和分批发布时产生漂移。本文给出稳定 backed value、集中映射、旧值兼容和分阶段迁移的完整做法。135 收藏 -
从 WaitGroup 计数器、Add、Done 与 Wait 的关系出发,解释负数 panic、Wait 早退和批次复用的边界,并给出稳定的 Go 并发写法。351 收藏 -
Python 3.14 已把自由线程模式推进到官方支持阶段,但扩展能导入不等于真正无 GIL 运行。本文用运行状态、模块声明、共享状态审计、独立 wheel 与并发回归组成一套兼容性评估清单。376 收藏 -
Go 批量任务如果靠定时轮询检查状态,既浪费唤醒次数又难以处理关闭流程。本文用 sync.Cond 把状态检查、等待和批量唤醒组织起来,并说明 Signal、Broadcast 与退出条件的选择。204 收藏 -
sync.Map 主要适合键写入一次后高频读取,或多个 goroutine 各自操作不同键的场景;需要类型安全、同键复合更新、容量计数或一致快照时,普通 map 配合 Mutex/RWMutex 通常更清晰。本文给出判断表、封装写法和上线检查项。235 收藏