希曼日记

基础篇:通过软件提高开发效率

约 2 分钟873 字

本文是全栈电商微服务从 0 到 1 再到 10 系列的第 2 篇。上一篇:基础篇:提高物理层面开发效率;下一篇:基础设施篇:Spegel 镜像 P2P 分发。

上一篇把机器、屏幕和键盘理顺了,这一篇讲软件:先选一个顺手的终端,再装两个后面会反复用到的辅助工具。语言运行时(Golang、Node.js、pnpm)单独放在下一篇。

终端工具

只要工作需要接触终端,就值得选一个好的终端工具。三个候选:

工具适合谁
Warp日常本地开发
Termius频繁操作远程服务器
WindTerm另一个可选项

它们内置的功能能明显提高开发效率。一个最常用的例子是标签页切换:本地开发时需要同时启动前端和后端,各开一个标签页,用快捷键在两者之间切换,不用来回找窗口。

辅助工具

下面两个工具都不依赖本地 Docker 环境,安装后即可使用,后续电商篇的镜像和 Kubernetes 清单都会用到。Spegel 属于集群运行阶段的基础设施组件,本文介绍完 crane 后,下一篇单独讨论它如何减少 Kubernetes 节点的重复镜像拉取。

crane:不启动 Docker 守护进程也能操作镜像

crane 的核心能力是在不启动 Docker 守护进程的情况下,直接与远端容器镜像仓库(如 Docker Hub)交互。可以把它理解为一个专门针对容器镜像的「高级文件管理器」。

支持的操作主要有:

  • 拉取与推送(pull、push):在本地和远程仓库之间传输镜像。
  • 复制与打标签(copy、tag):在仓库之间复制镜像,或给镜像添加新标签。
  • 查看与验证(ls、manifest、validate):列出仓库内容,查看或验证镜像元数据(Manifest)。
  • 修改镜像(append、rebase):给现有镜像追加一个文件层,或更换它的基础镜像。

为什么用它:

  • 轻量高效:不依赖本地 Docker 环境,特别适合 CI/CD 等自动化流水线。
  • 功能聚焦:只关注镜像本身的操作,不负责容器运行,处理镜像任务更直接。

kubeconform:提交前校验 Kubernetes 清单

kubeconform 是一个高性能的 Kubernetes 清单(Manifest)校验工具,用于检查 YAML 或 JSON 配置是否符合对应 Kubernetes 版本的 API 规范。它能在配置提交到集群之前,提前发现格式错误、拼写错误或结构问题。

主要特点:

  • 高性能:并行处理多个文件,并缓存下载的 schema。按官方测试,处理大量文件时速度远超前身 kubeval。
  • 支持 CRD:除了 Pod、Deployment 等内置资源,也能校验自定义资源。
  • schema 更新及时:使用一个持续更新的 JSON Schema 仓库,跟得上最新 Kubernetes 版本。
  • 本地与 CI 都能用:本地开发时手动跑,也可以接进 CI/CD 流水线作为代码质量检查的一环。

安装:

Shell
brew install kubeconform

小结

  • 终端:Warp(本地开发)、Termius(远程服务器)或 WindTerm,善用标签页。
  • crane:不启动 Docker 守护进程,直接对远端镜像仓库做拉取、推送、复制、打标签、查看和改层。
  • kubeconform:把 Kubernetes 清单提交到集群前先校验,本地和 CI 都跑。

下一篇安装语言运行时:Golang、用 fnm 管理的 Node.js,以及单独安装的 pnpm。