Go语言技术文章
-
StampedLock 的乐观读不是无锁读取。本文用一个读多写少的库存快照示例,对比 ReentrantReadWriteLock 与 StampedLock,说明 validate、回退读锁、写锁转换和中断边界,帮助你决定是否值得替换现有锁。264 收藏 -
用 PHP mysqli 把 CSV 导入 MySQL 时,不要一次性读完整文件。本文用分批读取、参数绑定和事务回滚做一个可验收的小工具,并说明内存、重复数据和失败续跑的边界。487 收藏 -
原生 dialog 和 popover 关闭时直接消失,通常不是 opacity 写错,而是 display 的离散切换没有参与过渡。本文用一组不依赖框架的 CSS/HTML 示例,解释 @starting-style、display、overlay 与 transition-behavior 的配合方式,并给出旧浏览器的降级边界。444 收藏 -
Java 25 把紧凑对象头从实验能力变成产品能力,但它不是所有服务都应立即打开的开关。本文用对象数量、堆占用、GC 次数和锁竞争四个观察点,说明它节省了什么、可能影响什么,以及如何在生产环境做小范围验证。394 收藏 -
同一张商品卡片放进主栏、侧栏和弹窗后,不该继续按浏览器窗口宽度硬切布局。用 CSS 容器查询让组件根据自己的可用宽度切换网格、字号和按钮排列,并补上不支持时的降级写法。302 收藏 -
Linux df -h 看着还有空间,服务却报 No space left on device?问题可能不是磁盘容量,而是 inode 已经耗尽。本文用 df -i、find 和小文件统计定位原因,给出可回滚的清理顺序,并用复测确认系统恢复。317 收藏 -
2026年立秋在8月7日20时43分交节。立秋是节气时间点,不等于全国气温当天同步下降,南方和部分高温地区仍可能持续炎热,出行与防暑安排要看当地预报。412 收藏 -
铁路12306候补订单没有固定的兑现时刻,系统会在订单生效后持续尝试,直到用户选择的截止兑现时间;本文结合中国铁路12306官方规则,讲清候补状态在哪里看、截止时间怎么确认、兑现成功或失败后如何处理。273 收藏 -
Webhook 接口只校验一个固定密钥还不够,泄露过的请求可能被再次发送。本文从零做一个 Java 签名校验小服务,用时间戳、HMAC-SHA256 和请求体摘要判断请求是否可信,并用 curl 验收通过、过期和篡改三种结果。215 收藏 -
Java 批量导出订单报表时,直接把查询结果收集到 List 再写 Excel,很容易在大数据量下触发 Full GC 甚至 OOM。本文从一次导出任务的架构改造出发,拆解数据库游标读取、分片文件写入、任务状态保存和 Range 续传的配合方式。200 收藏 -
用 GitHub Desktop 完成一次 Pull Request 前的完整核对:先确认比较分支和改动文件,再预览提交、推送到远端,最后查看 Checks 状态,避免把未同步或未验证的代码直接交给评审。177 收藏 -
前端开发服务器、文件同步工具突然报 ENOSPC,未必是磁盘满了。本文用 inotify 的三个内核限制拆开排查,找到实际占用进程,完成临时调整、持久化和回滚验证。382 收藏 -
支付请求交给 Java CompletableFuture 后,超时不等于扣款失败,直接重试可能造成重复扣款。本文用幂等键、任务状态表、超时收口和延迟重试搭出一条可核对的处理链,并补上失败通知与人工复核边界。352 收藏 -
Python multiprocessing.Pool 在服务停机时如果没有区分 close、terminate 和 join,主进程可能已经退出流程,子进程却仍然占着资源。本文用批处理场景复现停机卡住、按顺序解释三个方法的职责,并给出异常、超时和回滚检查清单。133 收藏 -
Python 服务把日志直接写入网络或磁盘时,慢 I/O 会反过来拖住请求线程。本文用 logging.QueueHandler 和 QueueListener 拆开产生日志与写日志,说明队列满载、异常处理和停机收尾的边界。322 收藏