程序员茄子
全部
编程
代码
资讯
案例
综合
联系我们
编程
php
mysql
shell
go
vue
css
api接口对接
支付接口对接
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
运行时
性能
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
安全默认值
升级迁移
支付接口
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
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
泛型
语言特性
PHP 8.6 ext/uri 新增两个 Builder:先建后校验,不必再先有合法 URI
编程
PHP 8.6 ext/uri 新增两个 Builder:先建后校验,不必再先有合法 URI
2026-10-28 21:06:19
PHP 8.6 的 ext/uri 补上了 UriBuilder 与 UrlBuilder,把「每改一个组件就新建对象」和「必须先有合法 URI」两个问题一起解掉,校验分单组件与整体两层。同时新增 UriType 与 HostType 枚举,WHATWG 侧还能识别 127.1、0x7f.0x0.0x0.0x1 这类 IPv4 写法。
PHP
URI
RFC3986
WHATWG
Bash 5.3:不再 fork 的命令替换 ${ cmd; } 与 ${|cmd;}
编程
Bash 5.3:不再 fork 的命令替换 ${ cmd; } 与 ${|cmd;}
2026-10-28 21:04:52
Bash 5.3 新增 ${ cmd; } 与 ${|cmd;} 两种命令替换,在当前 shell 执行、不 fork 子进程,副作用可见;后者从 REPLY 取结果。文章给出与 $(...) 的对照示例、版本检测写法,以及 GLOBSORT、BASH_MONOSECONDS、compgen -V 等对脚本有用的改动。
Bash
Shell
脚本
Linux
MySQL 8.4.13 与 9.7.4:版本号变四段,InnoDB 变严的行大小校验回退了
编程
MySQL 8.4.13 与 9.7.4:版本号变四段,InnoDB 变严的行大小校验回退了
2026-10-28 21:03:21
MySQL 8.4.13 与 9.7.4 引入四段版本号 VERSION_WITH_UPDATE(),但 VERSION() 仍是三段语义;9.7.4 还把此前变严的 InnoDB 行大小校验回退,只有 ALGORITHM=INSTANT 继续严格。另附 hypergraph optimizer 改错行、index_merge_union 返回空集的回归点与升级检查清单。
MySQL
InnoDB
版本升级
运维
PostgreSQL 19 RC1 升级前要测的事——REPACK 的锁、plan advice 的边界、默认值变化
编程
PostgreSQL 19 RC1 升级前要测的事——REPACK 的锁、plan advice 的边界、默认值变化
2026-10-28 20:01:49
PostgreSQL 19 RC1 已出,GA 计划 11 月 19 日。这篇按升级实际会遇到的问题整理:REPACK CONCURRENTLY 结尾仍要 ACCESS EXCLUSIVE 锁、pg_plan_advice 只是约束不是提速、autovacuum 并行与 pg_stat_autovacuum_scores 打分、序列同步要求 publisher 也是 19,以及 JIT 默认关闭、btree_gist inet/cidr 索引会被 pg_upgrade 拒绝等默认值变化。
PostgreSQL
数据库升级
运维
复制
MySQL 9.7 升级前先清账号:native_password 在 9.0 就没了,原地回滚也不行
编程
MySQL 9.7 升级前先清账号:native_password 在 9.0 就没了,原地回滚也不行
2026-10-28 00:05:38
8.4 升 9.7 最常见的翻车不在服务器启动,而在账号:mysql_native_password 从 9.0.0 起已从服务端移除,hash 无法换算只能重设密码,JDBC/Go 非 TLS 连接还要处理公钥交换。同时 9.7 降回 8.4 只支持逻辑导出或复制回滚,不能原地换二进制,给升级前的检查清单与回滚约束。
MySQL9.7
MySQL
认证插件
caching_sha2_password
LTS升级
数据库迁移
yt-dlp 报 403、只下到音轨、分片超时:从 TLS 指纹到 JS 运行时的分层排查
编程
yt-dlp 报 403、只下到音轨、分片超时:从 TLS 指纹到 JS 运行时的分层排查
2026-10-28 00:04:53
yt-dlp 的报错往往只给结果不给原因。按失败形态分四类排查:403 与 TLS 指纹(curl_cffi impersonation,注意 zipimport 版和 32 位 Windows 版不带它)、缺 JS 运行时导致拿不到高清晰度、ffmpeg 二进制缺失导致无法合流与切片、-N 与 --downloader 的分工,以及 --throttled-rate 与 --retry-sleep 的用法。
下载工具
yt-dlp
ffmpeg
curl
Shell
Argon2id 参数别照抄默认值:64 MiB 乘 40 个 worker 就 OOMKill,PHP 与 Go 的实现差异
编程
Argon2id 参数别照抄默认值:64 MiB 乘 40 个 worker 就 OOMKill,PHP 与 Go 的实现差异
2026-10-28 00:04:46
Argon2id 的 m/t/p 不是填个 19 MiB 就完事:m 是 KiB 且按 worker 数相乘、p 不乘内存,PHP 8.x 默认 64 MiB/t=4 乘上 pm.max_children 就能把容器 OOMKill。含内存预算公式、PHP 与 Go x/crypto/argon2 的实现差异(取整、panic、threads 在 libsodium 下失效、needs_rehash 要传 options)、可跑的 benchmark 脚本与 bcrypt 迁移路径。
密码哈希
Argon2id
PHP
Go
安全
PHPStan 2.2:array{a:int} 开始真的密封,array<string,X> 的键会被收窄成 int|string
编程
PHPStan 2.2:array{a:int} 开始真的密封,array<string,X> 的键会被收窄成 int|string
2026-10-28 00:04:44
PHPStan 2.2(2026-05-28)给数组形状加了未封闭语法 ...,并新增 non-decimal-int-string 类型与 reportUnsafeArrayStringKeyCasting 三档配置,解决「array<string,X> 运行时冒出 int 键」的长期误判。文中给出复现代码、报错原文、交叉运算结果表、bleeding edge 下密封形状的三种拒绝提示与 composer 升级顺序。
PHPStan
PHP
静态分析
数组
类型系统
退出码 0,测试数从 412 掉到 380:skip 为什么不算 PASS
编程
退出码 0,测试数从 412 掉到 380:skip 为什么不算 PASS
2026-10-28 00:03:58
CI 退出码 0、测试数却从 412 掉到 380:skip 被当成了 pass。对照 Go 的 t.Skip 与 go test -skip、PHPUnit 的 markTestSkipped / --fail-on-skipped、pytest 的 skipif 与 xfail strict、node:test、Playwright test.skip、Rust #[ignore],划清「无法执行」与「执行了但坏了」的界线,并给出让 CI 对新增 skip 变红的具体配置。
skip
测试
pytest
PHPUnit
Go
CI
aria2c -x 16 还是单连接:-k 默认 20M,40MiB 以下根本不切分
编程
aria2c -x 16 还是单连接:-k 默认 20M,40MiB 以下根本不切分
2026-10-28 00:03:50
aria2c 传了 -x 16 还是一个连接在跑,通常不是参数写错:-k 默认 20M 意味着 40MiB 以下文件不切分;-x 是每服务器每文件上限(默认 1)、-s 才是分片数(默认 5),只给一个都无效;服务端不回 206 就退回单连接。附 curl -C -、wget -c 的续传前提、wget2 多线程与 yt-dlp 外部下载器用法。
下载工具
aria2
curl
wget
yt-dlp
大家都在搜索什么?
devops
易支付
一个官网+多少钱
统一接受回调
统一回调
python
sub
node
宝塔日志
mysql
shell
ElasticSearch
css
vue
api接口对接
2025
支付接口对接
go
php
php回调
上一页
1
2
3
4
5
6
7
…
292
下一页
共 292 页
到第
页
确定