可观测学堂

可观测问答

聚焦概念、架构、排障、价格与选型,一篇解决一个明确问题。

测试检测与质量验证插画
技术指南

pytest 如何找出跑得慢的测试

pytest --durations=N 列出最慢的 N 个测试阶段,--durations=0 配合 --durations-min=0 显示全部阶段耗时。配合 --durations-min 设阈值、pytest-xdist 并行提速,本文给出完整的慢测试排查方案。

应用程序模块协作插画
技术指南

Matplotlib 如何把图例放到图表外面

plt.legend(loc='upper left', bbox_to_anchor=(1, 1)) 把图例放到绘图区右侧外部;配合 tight_layout 或 subplots_adjust 防止图例被裁掉。附右侧、下方两种常用布局代码。

版本分支与历史整合插画
技术指南

Git 分离 HEAD(detached HEAD)状态如何与 master/origin 同步

detached HEAD 下做了改动先 git switch -c 新分支 保存成果,再切回 master 合并;没做改动直接 git switch master 即可。本文覆盖三种意图的完整操作。

加密网络与通信桥梁插画
技术指南

如何减少 TIME_WAIT 状态的 TCP 连接数

TIME_WAIT 是正常的 TCP 状态。先核对连接失败、端口范围和短连接速率,再通过连接池与 Keep-Alive 优化;不要把 tcp_fin_timeout 当作 TIME_WAIT 超时参数。

版本分支与历史整合插画
技术指南

如何删除 Git 仓库的远程 origin

git remote remove origin 删除远程关联,只影响远程指针不动本地提交。附重命名、改 URL、重新添加的配套命令与常见场景。

版本分支与历史整合插画
技术指南

Git 如何把文件恢复到指定的历史版本

用 git restore --source 指定历史提交恢复单文件;加 --staged --worktree 可同时更新暂存区与工作区。说明与 checkout、revert 的区别及如何撤销恢复。

测试检测与质量验证插画
技术指南

pytest 如何在所有测试类之前运行一次方法

用 scope="session" 的 fixture 复用会话级初始化;默认首次被依赖时执行,autouse 可让可见测试自动依赖。参数化和 xdist worker 需要额外区分。

应用程序模块协作插画
技术指南

如何查看已暂存(staged)的改动

git diff --cached(等价 --staged)查看暂存区与上次提交的差异;--stat 看摘要。提交前养成检查暂存内容的习惯,附配套命令。

版本分支与历史整合插画
技术指南

Git 命令如何指定使用哪个 SSH 私钥

四种方式:GIT_SSH_COMMAND 临时指定、~/.ssh/config 按 Host 配置(推荐)、ssh-add 进代理、core.sshCommand 按仓库配置。多账号/多密钥场景一文搞定。

版本分支与历史整合插画
技术指南

如何撤销 git pull,回到之前的状态

先确认 pull 是 merge 还是 rebase,以及是否仍在进行。用 reflog 核对 pull 前提交并备份;ORIG_HEAD 可能被覆盖,reset --hard 会丢失未提交改动。

应用程序模块协作插画
技术指南

如何把 package.json 所有依赖更新到最新版本

用 npm-check-updates:npx npm-check-updates -u 更新 package.json 版本号到最新,再 npm install 安装。跨大版本升级可能破坏兼容性,务必分批升级+跑测试。附 npm update 与 ncu 的区别。

应用程序模块协作插画
技术指南

Java 线程池中如何正确使用 MDC

Java 线程池中的 MDC 不会可靠地自动传播。提交前捕获快照,执行前设置或清空,finally 恢复原上下文,避免复用线程及 CallerRunsPolicy 下的上下文污染。