Go语言技术文章
-
通过小米应用商店公开产品资料页核对蛙蛙漫画乐园的名称、包名、开发者和版本信息,减少安装同名或来源不明应用的风险。134 收藏 -
Go regexp.FindAllStringSubmatchIndex 返回的是按捕获组编号排列的字节下标对。本文用一个键值文本解析场景说明如何映射整体匹配、命名捕获组、未匹配分支和 UTF-8 边界。134 收藏 -
解释为什么 shell 中执行 ulimit -n 后 systemd 服务仍然受到旧的打开文件数限制,并给出用 LimitNOFILE、/proc//limits 和 prlimit 定位及修复的完整方法。 134 收藏 -
解释 MySQL GROUP BY 执行计划中的 Using temporary,区分临时表提示与磁盘溢出,并从排序组织、联合索引、左前缀和执行计划复查四个方面减少不必要的临时结果整理。134 收藏 -
Go 上传接口要限制请求体,应该在 Handler 入口用 http.MaxBytesReader 包住 r.Body,再用 errors.As 识别 *http.MaxBytesError 并返回 413。本文还区分 Content-Length 预检查与 multipart 的 maxMemory。134 收藏 -
MySQL 分区表查询没走分区裁剪时,先看分区表达式,再用 EXPLAIN 的 partitions 列确认扫描范围,最后把过滤条件改成可被优化器推导的分区键等值或范围。134 收藏 -
Redis 出现 NOPERM 时,先用 ACL WHOAMI 确认连接身份,再用 ACL GETUSER、ACL DRYRUN 和 ACL LOG 区分命令、键模式与认证问题,最后按最小权限修复。134 收藏 -
Go 的接口类型可以参与比较,但接口里装入 slice、map 或 func 等不可比较动态值时,直接比较可能触发 panic。本文用 reflect.Type.Comparable 判断动态类型的类型级条件,再处理 nil、动态类型不同和 NaN 等边界,最后比较反射、泛型约束与业务键设计的适用场景。134 收藏 -
本文以虚构化工厂设备报修场景为测试案例,梳理墨刀AI生成需求文档的覆盖范围、缺口边界与适用场景,为产品等团队提供实操参考。134 收藏 -
PHP CLI 脚本明明抛出了异常,shell 或 CI 却拿到 0,通常不是 PHP 没有报错,而是异常、致命错误和 shutdown 回调被混在了一条观测链里。本文从命令行任务现场出发,拆开 Throwable、register_shutdown_function 与退出码的关系,并给出可复现的日志验收方法。133 收藏 -
sync.Once 只保证初始化逻辑最多执行一次,失败也不会自动重试。通过区分一次性成功初始化、可重试初始化和启动失败退出,避免把错误状态永久缓存进服务进程。133 收藏 -
Go 的 iter.Pull 把 push-style 迭代器变成 next/stop 拉取接口,但提前结束时必须调用 stop 让 yield 协程收尾。本文用资源清理、重复 stop 和测试替身说明它的生命周期与并发边界。133 收藏 -
用一个可运行的曝光实验说明 IntersectionObserver 的 threshold 数组如何触发可见比例回调,并用 Set 做首屏曝光去重,避开重复上报和阈值误判。133 收藏 -
sync.WaitGroup.Go 负责启动任务并等待全部任务结束,但它不会替调用方收集 error。本文用带缓冲结果通道把失败传回主流程,拆开并发收口、首错处理、panic 边界和主 goroutine 的退出时机。133 收藏 -
netip.ParseAddr 返回的 netip.Addr 是值类型,可以用 Compare 做排序和相等判断,但 IPv6 Zone、非法输入和零值仍要单独处理。本文用可运行示例拆开这些边界。133 收藏