程序员茄子
全部
编程
代码
资讯
案例
综合
联系我们
软件定制开发/软件按需定制 技术文章 · 第10页
php
mysql
shell
go
vue
css
api接口对接
支付接口对接
CLOSED ≠ MERGED:GitHub 关闭语义里两处会静默失效的地方
编程
CLOSED ≠ MERGED:GitHub 关闭语义里两处会静默失效的地方
2026-10-30 00:03:34
GitHub 把 PR 的 CLOSED 和 MERGED 分成两个互斥终态,但 REST 的 state=closed 会把已合并的 PR 一并返回;PR 描述里的 closing keywords 又只在目标分支是默认分支时才解析。本文给出两处的判断字段、统计口径偏差,以及直接可跑的 curl / GraphQL 查询。
CLOSED
GitHub
API
PullRequestState
state_reason
Issues
Element-Plus-X:给 Vue 3 + Element Plus 补一套 AI 聊天组件,以及 useXStream 的 SSE 解析细节
代码
Element-Plus-X:给 Vue 3 + Element Plus 补一套 AI 聊天组件,以及 useXStream 的 SSE 解析细节
2026-10-29 21:31:45
Element-Plus-X 是基于 Vue 3 + Element Plus 的 AI 组件库,提供 BubbleList、XSender、ThoughtChain 等对话组件,以及 useXStream 流式请求 hook。本文按组件清单、安装方式、useXStream 的 startStream/cancel/data 签名与 SSE 默认解析规则(\n\n 分条、data: 前缀、[DONE] 兜底)梳理接入要点,并记录协议支持与 CDN 引入两条已知边界。
Vue
3
Element
Plus
AI
组件
SSE
流式请求
Vue 3 纯前端 PDF 工具站上线:8 个坑,从 80MB 白屏到只收录首页
案例
Vue 3 纯前端 PDF 工具站上线:8 个坑,从 80MB 白屏到只收录首页
2026-10-29 21:31:13
一个纯浏览器端 Vue 3 PDF 工具站的上线复盘:pdf-lib 处理 80MB 文件白屏、Web Worker 结构化克隆比主线程还慢、批量进度条在 ZIP 阶段撒谎,以及 Playwright 预渲染后 canonical 仍指向首页、Cloudflare Pages 308 导致 Googlebot 报错的排查过程,附可直接复用的代码。
Vue
3
pdf-lib
Web
Worker
预渲染
SEO
Go 1.28 提案:freegc、M-local storage、SIMD 与 Wasm 栈切换的进度
编程
Go 1.28 提案:freegc、M-local storage、SIMD 与 Wasm 栈切换的进度
2026-10-29 21:10:19
Go 1.28 的提案清单里,影响运行时的是编译器插入 runtime.free 的 freegc 实验(默认 16 字节阈值)和 sync 的 M-local 分片计数;另有 SIMD 的 archsimd 与可移植 simd 包进度、Wasm 栈切换只有约 20% 原生性能的现状。全部仍是提案。
Go
运行时
性能
Kubernetes 1.35 升级前要处理的四件事:cgroup v1 会让 kubelet 直接起不来
综合
Kubernetes 1.35 升级前要处理的四件事:cgroup v1 会让 kubelet 直接起不来
2026-10-29 21:09:16
Kubernetes 1.35 把 cgroup v1 支持删了,老发行版节点上 kubelet 直接起不来;ipvs 模式弃用改打警告,1.35 也是最后一个支持 containerd v1.x 的版本。附节点侧检查命令与 containerd 2.0 迁移路径。
Kubernetes
运维
升级
Redis 8.4.6 安全修复:ACL 键校验绕过与恶意 RDB 的 RCE 路径
综合
Redis 8.4.6 安全修复:ACL 键校验绕过与恶意 RDB 的 RCE 路径
2026-10-29 21:08:15
Redis 8.4.6 是安全更新:ACL 对 SORT/GEORADIUS/XREAD 的键校验可能与实际访问的键不一致(#15478),EVAL 参数个数错误时 argv 越界(#14847),恶意 RDB 里的 SLOT_INFO 可致内存破坏直至 RCE。附多租户加固清单与升级检查顺序。
Redis
安全
运维
PostgreSQL 18.6 的 output_plugin_libraries 白名单:第三方逻辑解码插件被挡掉,pg_upgrade --check 会先失败
综合
PostgreSQL 18.6 的 output_plugin_libraries 白名单:第三方逻辑解码插件被挡掉,pg_upgrade --check 会先失败
2026-10-29 21:05:49
18.6 引入 output_plugin_libraries 白名单(CVE-2026-6471),默认只放行 pgoutput 与 test_decoding,wal2json、postgres-decoderbufs 等要显式加;pg_upgrade --check 在 17+ 迁移前会先失败。附查 slot 插件、ALTER SYSTEM 与 reload 的顺序。
PostgreSQL
数据库
运维
Laravel 12 → 13 升级:几处不报错却会出事的改动
编程
Laravel 12 → 13 升级:几处不报错却会出事的改动
2026-10-29 21:03:38
Laravel 13 官方说破坏性变更很少,但 CSRF 中间件改名后测试里的 withoutMiddleware 会静默失效,cache 的 serializable_classes 默认 false 让存对象的缓存读不出,session serialization 改 json 会让所有在线会话失效。逐条给取舍和升级检查顺序。
PHP
Laravel
升级
PHP 8.6 批量弃用:31 项通过、4 项被否,先 grep 那几个保留标识符
编程
PHP 8.6 批量弃用:31 项通过、4 项被否,先 grep 那几个保留标识符
2026-10-29 21:02:35
PHP 8.6 的 35 张弃用选票投完:31 项通过、4 项被否。is/let/readonly/namespace 成为新保留标识符(Hamcrest 的 is() 也在其中),finally 里 return、SplFileObject CSV 方法、mysqli_get_charset 等在列;文末给出按类别拆开的 grep 排查命令。
PHP
升级
兼容性
Go 1.28 HTTP/2 parking 实测:5000 个空闲连接少 5000 个 goroutine,RSS 降 85–93 MiB
编程
Go 1.28 HTTP/2 parking 实测:5000 个空闲连接少 5000 个 goroutine,RSS 降 85–93 MiB
2026-10-29 21:01:45
Go 1.28 给 HTTP/2 server 加了 serveLoop parking:没活干的连接不再独占 goroutine。用同一份 1.28 二进制开关 parking 对照,5000 个空闲连接下少 5000 个 goroutine、少约 78 MiB 栈、RSS 降 85–93 MiB;文中给出完整 benchmark 参数与作者自己标明的局限。
Go
HTTP
2
性能优化
内存
Vite 8 升级核对清单:CJS default 导入和 browser/module 嗅探会先坏
编程
Vite 8 升级核对清单:CJS default 导入和 browser/module 嗅探会先坏
2026-10-29 20:04:53
Vite 8 用 Rolldown + Oxc 取代 esbuild + Rollup,升级真正花时间的是语义变化:CJS 的 default 导入统一成一套规则(以前 dev 和 build 判断条件不同)、browser/module 字段的内容嗅探被移除、manualChunks 对象形式与 watch.chokidar 失效。按「哪类项目会先坏」列出核对项,含配置改名映射、没有等价物的 esbuild 选项、build() 抛 BundleError 等,以及先用 rolldown-vite 隔离问题的迁移路径。
Vite
Rolldown
前端构建
升级迁移
Vue
PHP 8.6 改了 session 三个默认值:跨站 POST 的登录和支付回跳会先挂
编程
PHP 8.6 改了 session 三个默认值:跨站 POST 的登录和支付回跳会先挂
2026-10-29 20:01:15
PHP 8.6 把 session.use_strict_mode、cookie_httponly、cookie_samesite 三个默认值一次全改,调用点没有任何提示:自定义 save handler 丢 id、前端 JS 读不到 session cookie、跨站 POST(支付回跳、OAuth 回调)收不到 cookie。附 8.5/8.6 ini 对照、显式写回 SameSite=None + cookie_secure 的迁移写法,以及 DOM 属性反射、array_intersect 转换顺序、SplFileObject CSV escape 三处静默变化。实测基线 8.6.0RC3,GA 计划 2026-11-19。
PHP
session
安全默认值
升级迁移
支付接口
抖音支付回调验签一直 false:Byte-* 头和 Douyinpay-* 头是两套体系
代码
抖音支付回调验签一直 false:Byte-* 头和 Douyinpay-* 头是两套体系
2026-10-29 09:03:14
抖音的回调有两套验签体系:小程序开放平台交易系统用 Byte-Timestamp/Byte-Nonce-Str/Byte-Signature,抖音支付用 Douyinpay-* 且要按证书序列号匹配。本文给出两套对照表、三行待验签串与 openssl 手工验证、官方 Java 示例里 replaceAll 吃掉空格的坑、msg 二次 JSON.parse、应答与重试语义、回调地址配置规则,以及代理吃掉扩展头的排查。
抖音支付
回调验签
接口对接
排障
支付渠道
微信虚拟支付报 -15005/-15006:先分清 signature 和 paySig,再查 signData 序列化
代码
微信虚拟支付报 -15005/-15006:先分清 signature 和 paySig,再查 signData 序列化
2026-10-29 09:01:23
小程序调 wx.requestVirtualPayment 返回 -15005 SIGNATURE_INVALID 或 -15006 PAY_SIG_INVALID 时,很多人对着同一份签名反复改算法。本文拆开两份签名的密钥与待签字符串,给出 session_key 刷新、AppKey 与 env 配对、json_encode 转义与前端二次 stringify 导致字符串不一致的排查路径,附 Node/PHP 实现与参数层错误码速查。
微信支付
小程序
虚拟支付
签名排障
接口对接
Pelican 4.12 升级前要核对的事:Python 3.11 成硬门槛,Pygments 上界放到 2.20
编程
Pelican 4.12 升级前要核对的事:Python 3.11 成硬门槛,Pygments 上界放到 2.20
2026-10-29 00:04:41
Pelican 4.12.0 升级核对清单:requires-python 提到 3.11、Docutils 0.22+、Pygments 上界从 2.19 放宽到 2.20;FEED_DOMAIN 回退 SITEURL、category/tag feed 标题改用 slug、摘要不再带 TOC、IGNORE_FILES 默认递归忽略隐藏文件、SOURCE_DATE_EPOCH 决定年份等会在 CI diff 里冒出来的行为变更。
Pelican
静态站点生成器
Python
Markdown
依赖管理
加密字段要支持子串搜索:trigram 盲索引能救 LIKE,但两个汉字搜不到
编程
加密字段要支持子串搜索:trigram 盲索引能救 LIKE,但两个汉字搜不到
2026-10-29 00:04:28
加密字段上 LIKE '%kw%' 查不了,整值 HMAC 盲索引只解决等值。这篇把子串检索这一层拆开:trigram 写窗口 + HMAC-SHA256 截断 128 位存 token 表、域分离前缀、Exact/Prefix(n)/Ngram(n) 三种形态的取舍、"'abcd' 与 'cdef' 共享 'bcd'" 这类假阳性为什么在密文侧消不掉、短于 3 字符直接跳过索引、异步重建带来的几分钟滞后、多 key 轮换时的双算,以及中文场景 n=3 失效要换 bigram 的代价。
盲索引
加密字段
可搜索加密
HMAC
trigram
MySQL
PHP
Go
advisory lock 的两套键空间和 40P01:bigint 与 (int4,int4) 不互通,死锁要从 pg_locks 反查
编程
advisory lock 的两套键空间和 40P01:bigint 与 (int4,int4) 不互通,死锁要从 pg_locks 反查
2026-10-29 00:03:51
PostgreSQL 咨询锁的 bigint 与 (int4,int4) 两套键空间并不互通,混用等于两把锁;给出 pg_locks 里 classid/objid 按无符号反解 key 的写法、40P01 死锁的复现与定位查询,并对照 MySQL GET_LOCK 只有会话级、死锁错误不回滚事务的差异。
advisorylock
advisory-lock
PostgreSQL
MySQL
咨询锁
pg_locks
PDO 连 MySQL 默认是模拟预处理:prepare 不报 1146,LIMIT '10' 却报 1064
编程
PDO 连 MySQL 默认是模拟预处理:prepare 不报 1146,LIMIT '10' 却报 1064
2026-10-29 00:03:49
PDO_MYSQL 默认用模拟预处理:prepare() 不与服务器通信,所以表不存在要到 execute 才报 1146;execute([10]) 拼成 LIMIT '10' 直接 1064。整理四个可复现差异(校验时点、LIMIT 绑定、同名命名参数 HY093、N 前缀失效)、用 Com_stmt_* 计数器确认是否真的走了原生预处理,以及 PHP 8.4 占位符解析器与 8.5 常量迁移。
PHP
PDO
MySQL
prepared-statement
预处理语句
pytest 8.x 升 9.0/9.1:TOML 配置二选一、strict 连带开四项,autouse fixture 会跑两次
编程
pytest 8.x 升 9.0/9.1:TOML 配置二选一、strict 连带开四项,autouse fixture 会跑两次
2026-10-29 00:03:39
pytest 8.x 升 9.0/9.1 的实际迁移记录:原生 [tool.pytest] 与 [tool.pytest.ini_options] 不能共存,strict 总开关连带四项严格检查、9.0 还静默忽略 addopts 里的 --strict-markers,PytestRemovedIn9Warning 默认变 error 且 9.1 删类,--doctest-modules 下模块内联 autouse fixture 可能执行两次,参数重叠去重与 CI 判定变化,以及 9.0.3 修的 CVE-2025-71176。
pytest
Python
单元测试
CI
Python测试
ingestr 把 MySQL 订单表按天搬进 DuckDB:默认 replace 和增量策略的取舍
编程
ingestr 把 MySQL 订单表按天搬进 DuckDB:默认 replace 和增量策略的取舍
2026-10-28 21:32:18
ingestr 用一条命令在 MySQL/Postgres/DuckDB/BigQuery 之间搬表。默认策略是 replace(整表替换),按天对接要显式用 delete+insert 并给出区间键;merge 在 ClickHouse、DynamoDB 等目标端没有 SQL match 条件,不接受 incremental-predicate。含并行抽取、脱敏、schema 契约与 FSL 许可证边界。
ingestr
数据同步
增量加载
MySQL
DuckDB
CLI
用 tbls 把数据库文档纳入 CI:diff、lint 与覆盖率的实际用法
编程
用 tbls 把数据库文档纳入 CI:diff、lint 与覆盖率的实际用法
2026-10-28 21:31:29
tbls 是 Go 写的单二进制工具,从 MySQL/PG 的活库生成 Markdown schema 文档。本文给最小 .tbls.yml、tbls diff 只比 Markdown 的坑(列顺序、--force 不删旧表文件)、lint 规则与 coverage 的真实适用边界,以及在 CI 里当 schema 漂移守门员的接法。
tbls
数据库文档
CI
schema
MySQL
PostgreSQL
Go
Node.js 26 转入 Active LTS:26.11.0 的服务端新 API 与 26.12.1 的四个 High 修复
代码
Node.js 26 转入 Active LTS:26.11.0 的服务端新 API 与 26.12.1 的四个 High 修复
2026-10-28 21:07:50
Node.js 26 从 2026-10-28 起转为 Active LTS,24.x 已进维护期。26.11.0 新增 Buffer.isLatin1、Buffer.stringLength、http 头校验 API 与 http2 connectionWindowSize;26.12.1 修复 TLS/DNS/brotli 四个 High,同时影响 22.23.4 与 24.22.1。
Node.js
LTS
安全更新
后端
Redis 8.4 原子槽迁移:CLUSTER MIGRATION 与 CLUSTER SLOT-STATS 实操
综合
Redis 8.4 原子槽迁移:CLUSTER MIGRATION 与 CLUSTER SLOT-STATS 实操
2026-10-28 21:07:50
Redis 8.4 的 CLUSTER MIGRATION 把槽与数据合并成一次原子操作,消掉迁移期间的不可用窗口;CLUSTER SLOT-STATS 能按槽看 key 数、CPU 与网络 I/O。文中给出迁移步骤、校验与回滚思路,并说明迁移中 FT/TS 聚合查询为何会返回部分结果或重复。
Redis
集群
运维
槽迁移
Go 1.27 给具体方法加类型参数:List.Map 链式转换,以及它不会触碰的接口
编程
Go 1.27 给具体方法加类型参数:List.Map 链式转换,以及它不会触碰的接口
2026-10-28 21:06:19
Go 1.27 允许具体方法声明类型参数,List.Map 这类链式转换不用再写成包级泛型函数,也能用 List[int].Map[int] 转回函数式调用。但它不参与接口实现,接口方法依旧不能带类型参数;文章讲清背后的实例化与分离编译限制。
Go
泛型
语言特性
大家都在搜索什么?
devops
易支付
一个官网+多少钱
统一接受回调
统一回调
python
sub
node
宝塔日志
mysql
shell
ElasticSearch
css
vue
api接口对接
2025
支付接口对接
go
php
php回调
上一页
1
…
7
8
9
10
11
12
13
…
349
下一页
共 349 页
到第
页
确定