围绕真实项目里常见的 Liquibase(XML)反模式,按问题整理我目前更倾向采用的一些做法:schema 归属、master changelog 组织、changeSet ID 命名、XSD 版本、初始化策略、expand-and-contract、大表 DDL、K8s lock、回滚 / tag、context / labels、Testcontainers 验证与 CI 检查。
REST API 版本管理:四种常见策略、Spring Boot 4 原生支持与一些陷阱
四种常见的 REST API 版本管理策略各有代价,Spring Boot 4 的原生支持进来之后,跟历史实现方案怎么取舍、哪些坑容易踩到,得重新对一遍。
ADR 与 Service Catalog:我在架构治理里反复用到的两类文档
微服务规模增大后我开始补的两类结构化文档,问答体:ADR 记下为什么这样选,catalog-info.yaml 记下这是什么、归谁、依赖什么。
shop-starter-http-client 接入:跑通第一个 @HttpExchange 客户端
Step-by-step 指南,按这套步骤通常可以在 Spring Boot 3.5 BFF 工程里跑起第一个 @HttpExchange 出站客户端。
Homelab 消息通知:Alertmanager 通过 Gotify 推送告警
在 Homelab K3s 集群中,通过部署 alertmanager_gotify_bridge 将 Prometheus Alertmanager 的告警推送到 Gotify,实现自托管消息通知。记录从 Vault 存储 Token、ESO 同步 Secret、到 Alertmanager 路由配置的完整步骤。
API 与 event contract 兼容性保障:工具机制与正确用法
API 与 event contract 的兼容性保障按问答拆开:BFF 对外用 oasdiff 守 OpenAPI spec,内部 BFF 到 MS、MS 到 MS 用 JSON Schema 快照补 japicmp 的盲区,Kafka 事件再加 per-event schemaVersion。
ArgoCD 应用组织方式的选择和权衡:App-of-Apps 与 ApplicationSet 的实践对比
对比 ArgoCD 两种应用组织方式,App-of-Apps 和 ApplicationSet,在三个真实项目里的实践。按场景(单人多集群异构、团队多环境同构、混合需求)给出取舍建议和决策框架。
压测中副本数怎么都上不去:一次 ArgoCD selfHeal 与 HPA 抢 spec.replicas 的排查
压测时副本数在 3 和 5 之间反复抖动,查到是 ArgoCD selfHeal 在和 HPA 抢 spec.replicas。记录这次排查的证据链、修复方式,以及引出的几个扩缩容问题。
用 gws 给 Python 脚本提供 Google OAuth 凭据时的一些注意点
用 gws 给 Python 脚本提供 Google OAuth 凭据有两处要手动对齐:登录时用 –readonly 或 –scopes 限定授权范围,导出凭据后在 google-auth 里显式传入 scopes,否则会撞 invalid_scope。
同时用 Claude Code、Copilot、Qwen、Codex,个人 skill 该怎么组织?
一篇问题驱动的笔记:从多 agent 工作流为什么会变乱开始,拆开 always-on 规则和 skill 的边界、Claude Code 的 skill 加载时机、跨 agent 共享源文件的取舍,以及每家 agent 的落地方式。