Go语言技术文章
-
腾讯文档 App 适合需要多人同步修改、分享链接和整理轻量协作资料的场景。它是否适合长期使用,不能只看“可多人协作”:应先核对文档权限、多端同步、免费与应用内购买标记,以及团队的资料规则。本文按腾讯文档官网与 Apple 中国区 App Store 公开信息,整理一套中立的判断方法。259 收藏 -
文章 · linux | 3天前 | Linux · 安全 · 运维 · 服务加固 · Linux服务单元 PrivateTmp NoNewPrivileges ReadWritePaths 服务加固
不少 Linux 服务以专用用户运行,却仍能读写过多宿主机路径。本文围绕只读根、PrivateTmp、NoNewPrivileges 和 ReadWritePaths 收紧写入面,并给出上线前检查与回退方法。259 收藏 -
数据库 · Redis | 2天前 | Redis · 缓存 · go · Redis Cluster · 排错 · Redis Cluster CROSSSLOT Hash Tag MGET CLUSTER KEYSLOT
商品详情页把库存、价格和活动状态合成一次 MGET 后,在 Redis Cluster 里突然报 CROSSSLOT,根因往往不是客户端,而是同一业务实体的 Key 没有落到同一个槽位。本文用 CLUSTER KEYSLOT、Hash Tag 和迁移期检查拆出一条可复查的修复路径。259 收藏 -
Golang · Go问答 | 4天前 | HTTP · ResponseWriter · net/http · Go问答 · 后端排错 · Go WriteHeader ResponseWriter HTTP 状态码 superfluous response.WriteHeader
Go 服务日志出现 superfluous response.WriteHeader,通常不是框架故障,而是同一个请求路径已经写出最终状态码,后续分支又继续写了一次。文章用一个订单创建接口复现问题,解释 Write 与 WriteHeader 的先后边界,并给出 return 收口、响应助手分层和 httptest 回归检查的最小修复方案。258 收藏 -
关闭 SSH 密码登录前,最怕的是把自己锁在服务器外。本文从资产、入口和回退路径出发,配置 PermitRootLogin、PasswordAuthentication、AllowUsers,并用 sshd -t 和双会话验证降低误操作风险。257 收藏 -
文件下载接口不能只判断文件是否存在,还要校验当前用户是否拥有资源、链接是否过期以及访问是否留痕。本文用 PHP 构建一条资源归属校验、短时签名和审计日志连贯的下载链路,并给出回归检查与回滚边界。257 收藏 -
文章 · php教程 | 1天前 | nginx · PHP · 运维 · php-fpm · 部署优化 · 进程池 · php-fpm 进程池 PHP教程 pm.max_children 多站点部署 慢请求隔离
多个 PHP 站点共用一个 PHP-FPM 进程池时,一个慢接口就可能挤占所有工作进程。本文用订单站和报表站的部署场景,比较独立进程池、并发预算、慢日志与灰度回滚的落地做法。256 收藏 -
部署一个很小的 Go Web 服务时,模板和静态文件常常成为额外的发布物。本文从零搭建一个使用 embed.FS 的小项目,把页面与资源编译进单一二进制,并说明目录、路由、验收和更新边界。255 收藏 -
Go 服务突然出现 too many open files,先别急着把 ulimit 调大。更可靠的顺序是确认进程 FD 是否持续增长,区分网络连接、日志文件和管道,再用 /proc、lsof 与 Go pprof 找到没有关闭的资源,修复后复查增长曲线,必要时保留可回退的上限变更。255 收藏 -
Go 1.24 新增 os.Root,用于把文件操作限制在指定目录内。本文从不可信压缩包和上传文件的落盘链路出发,说明 os.OpenRoot、Root.Create 的用法、适用边界和迁移检查点。251 收藏 -
Go 1.23 支持对特定函数类型使用 for range。文章给出 iter.Seq 的最小写法,解释 yield 返回 false 的停止契约、三种允许签名、go.mod 版本边界和面向旧工具链的采用建议。251 收藏 -
Go 服务重新发布后,用户仍拿到旧 JS 或旧 CSS,通常不是浏览器“没刷新”,而是入口 HTML 与带指纹资源用了同一套缓存策略。本文用 Cache-Control、ETag 和文件名指纹拆出一套可验证的静态资源发布方式。251 收藏 -
Redis 7.0 起,EXPIRE 可用 NX、XX、GT、LT 为过期时间加条件。NX 只给没有 TTL 的 key 首次设置过期,XX 只更新已有 TTL 的 key,GT 只允许延长,LT 只允许缩短。它们互斥;TTL 返回 -1 表示 key 存在但没有过期时间,-2 表示 key 不存在。把条件写清楚,才能避免续期任务意外把缓存窗口改乱。250 收藏 -
从 Vite 7 升级到 Vite 8 时,先核对浏览器目标和旧配置,再分别检查 Rolldown、Oxc 与 CommonJS 导入边界,最后用构建产物和关键页面完成回归。248 收藏 -
文章 · java教程 | 3天前 | Record · Java教程 · 防御式拷贝 · List.copyOf · Arrays.copyOf · 不可变性 · arrays.copyof 可变集合 Java record List.copyOf 防御式拷贝 数组克隆
Java record 没有 setter,并不表示放进 record 的 List、数组或可变对象不会在别处被改动。订单入参一旦把调用方集合或签名数组的引用直接保存,接口进入服务层后仍可能出现内容漂移。用 List.copyOf 固定集合结构、对数组在构造器和访问器两端复制,再用一段小检查覆盖输入侧与输出侧,就能把 record 的边界写得更可靠。247 收藏