基础篇:通过软件提高开发效率
上次读到 0%
本文是全栈电商微服务从 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 流水线作为代码质量检查的一环。
安装:
brew install kubeconform小结
- 终端:Warp(本地开发)、Termius(远程服务器)或 WindTerm,善用标签页。
- crane:不启动 Docker 守护进程,直接对远端镜像仓库做拉取、推送、复制、打标签、查看和改层。
- kubeconform:把 Kubernetes 清单提交到集群前先校验,本地和 CI 都跑。
下一篇安装语言运行时:Golang、用 fnm 管理的 Node.js,以及单独安装的 pnpm。