Go语言技术文章
-
给 JTable 加双击打开详情时,别直接把 getSelectedRow 当成业务行号。用 MouseAdapter 判断双击和左键,用 rowAtPoint 排除空白区域,再把视图行转换为模型行,排序和筛选后仍能打开正确记录。135 收藏 -
Go 服务渲染首屏时,直接把 json.Marshal 结果转成 template.JS 很容易越过 html/template 的安全边界。更稳的做法是把结构体直接放在 script 的 JavaScript 值位置,让 html/template 按上下文生成安全 JSON;少量字段则用 data-* 属性。177 收藏 -
浏览器会在请求中带上 Sec-Fetch-Site 等 Fetch Metadata。用一层 Go 中间件先区分 same-origin、cross-site 和缺失请求头,再与 CSRF、Origin 校验配合,可以为敏感接口补上一道跨站访问边界。349 收藏 -
科技周边 · 人工智能 | 1个月前 | 安全 · oauth · 人工智能 · mcp · 工具调用 · MCP 401 MCP 403 MCP OAuth mcp resource_metadata MCP scope MCP token audience
远程 MCP 服务的工具调用返回 401 或 403,通常不是模型没有找到工具,而是授权发现、scope 或 token audience 没有和目标 MCP 资源对齐。本文按响应状态、WWW-Authenticate、Protected Resource Metadata 和 resource 参数逐步定位,并给出最小核对清单。443 收藏 -
文章 · python教程 | 1个月前 | 并发编程 · python · 多线程 · asyncio · 多进程 · queue.Queue Python并发 Python任务队列 asyncio.Queue multiprocessing.Queue
Python 里同样叫 Queue 的对象,其实服务于线程、协程和进程三种完全不同的边界。本文从任务在哪儿运行、满队列怎么背压、完成状态怎么收尾三个维度,比较 queue.Queue、asyncio.Queue 与 multiprocessing.Queue,并给出可直接核对的最小示例。165 收藏 -
Golang · Go问答 | 1个月前 | 云原生 · golang · 性能优化 · kubernetes · HPA · Go HPA不扩容 Kubernetes HPA CPU resources requests HPA并发指标 Go服务扩缩容
Go 服务部署到 Kubernetes 后,HPA 没有按预期扩容,常见原因不是 HPA 失效,而是 CPU 利用率与 requests 的关系、业务真实瓶颈和缩放行为没有对齐。本文用最小 HPA 配置说明何时选 CPU、何时考虑并发或队列指标,以及如何避免扩缩容抖动。111 收藏 -
Golang · Go问答 | 1个月前 | golang · 消息队列 · 性能优化 · websocket · 高并发 · Go WebSocket广播 Go慢客户端 WebSocket发送队列 Go Hub分片 WebSocket背压
Go WebSocket 广播卡顿,常常不是 CPU 不够,而是一条慢连接把广播路径堵住了。本文从一个房间广播现场出发,说明为什么要给每个客户端独立发送队列、如何确定队列满时的业务策略,以及何时需要按房间分片 Hub,并给出可观测的检查项。146 收藏 -
数据库 · Redis | 1个月前 | Redis · 安全配置 · 数据库运维 · ACL · 网络隔离 · Redis公网暴露 Redis protected-mode Redis ACL Redis安全配置 Redis审计
Redis 被直接暴露在公网,靠一个密码或 protected-mode 都不够。更稳妥的方案是让端口只对可信应用网络开放,再用 ACL 分配最小命令和 key 权限、启用所需的传输保护并保留配置审计。本文按 Redis 官方安全文档梳理风险和可验证的检查顺序。364 收藏 -
Golang · Go问答 | 1个月前 | 性能排查 · net/http · HTTP客户端 · Go问答 · 连接复用 · 连接复用 keep-alive http.Transport Response.Body Go HTTP Client
Go 服务的请求量并不高,客户端却不断新建 TCP 连接时,先看 Response.Body 是否在所有分支读到 EOF 并关闭。Go 官方文档说明,Body 未同时读完和关闭时,底层 Transport 可能无法复用持久连接。本文从一次连接数异常的现场出发,给出定位、修复和边界判断。241 收藏 -
腾讯文档 App 适合需要多人同步修改、分享链接和整理轻量协作资料的场景。它是否适合长期使用,不能只看“可多人协作”:应先核对文档权限、多端同步、免费与应用内购买标记,以及团队的资料规则。本文按腾讯文档官网与 Apple 中国区 App Store 公开信息,整理一套中立的判断方法。259 收藏 -
Go 服务出现 too many open files 时,先不要只把 ulimit 调大。更可靠的处理顺序是确认 FD 是否持续增长、按类型定位 HTTP 响应体/文件/SQL Rows 的释放缺口、在小流量修复后观察 FD 回落,再决定是否需要调整进程限额。文章给出可直接照着做的线上判断、代码修复、回退和告警检查。115 收藏 -
Golang · Go问答 | 1个月前 | time.Parse · 时间处理 · Go问答 · Go基础 · 日期解析 · Go 日期解析 time.Parse YYYY-MM-DD 2006-01-02
Go 的 time.Parse 不认识 YYYY-MM-DD 这类常见日期格式符,它用 2006-01-02 这组参考时刻来描述布局。文章从解析失败的报错入手,给出最小修复、UTC 与业务时区的边界、ParseError 的定位字段和可回归的日期测试,避免日期字段在接口或报表中悄悄偏移。443 收藏 -
Golang · Go问答 | 1个月前 | HTTP · ResponseWriter · net/http · Go问答 · 后端排错 · Go WriteHeader ResponseWriter HTTP 状态码 superfluous response.WriteHeader
Go 服务日志出现 superfluous response.WriteHeader,通常不是框架故障,而是同一个请求路径已经写出最终状态码,后续分支又继续写了一次。文章用一个订单创建接口复现问题,解释 Write 与 WriteHeader 的先后边界,并给出 return 收口、响应助手分层和 httptest 回归检查的最小修复方案。258 收藏 -
Golang · Go教程 | 1个月前 | 前端开发 · Go教程 · html/template · 网页模板 · 导航 · Go html/template CurrentPath 导航高亮 template.FuncMap Go网页模板
Go 服务端渲染页面时,导航高亮经常被写成散落在多个页面里的条件判断。文章给出 CurrentPath、NavItem 与 template.FuncMap 的最小组合:路由层传入页面状态,模板负责循环和 class 条件,CSS 只认 is-active,从而让新增菜单和单元测试都更轻松。409 收藏 -
文章 · python教程 | 1个月前 | 命令行 · 异常处理 · Input · Python教程 · ValueError · 命令行交互 ValueError Python input int 输入校验 EOFError
Python 的 input 总会返回字符串,直接交给 int 转换时,空值、字母和终端输入结束都会让交互变得难用。文章从用户实际输入出发,给出循环校验、范围限制、退出命令和 EOFError 边界的最小实现,并附上核对清单。458 收藏