我的工作流(2026 版)
用了几年,慢慢收敛到这套。核心原则:能一条命令解决的,绝不三步。
编辑器
Neovim,配 Lua。
为什么不是 VS Code:
- 启动 80ms vs 8s
- 远程 SSH 不用同步文件
- 键盘操作,手不离主键区
配置思路:不装插件套壳,只装解决具体问题的。
必备的也就五个:
| 插件 | 解决什么 |
|---|---|
telescope.nvim | 模糊找文件/内容 |
nvim-lspconfig | 语言服务器 |
gitsigns.nvim | 行内看 diff |
treesitter | 语法高亮 |
oil.nvim | 像编辑文本一样改文件系统 |
终端
Windows Terminal + PowerShell 7(工作机在 Windows) Alacritty + zsh(服务器)
常用别名:
function ll { Get-ChildItem -Force | Format-Table Mode, LastWriteTime, Length, Name }
function gs { git status -sb }
function gd { git diff --stat }
function .. { Set-Location .. }
版本控制
Git,就三条规矩:
- commit 小:一次只改一件事
- message 说清为什么,不是改了什么(diff 里有)
- 分支不超过 3 天,超过就拆
# 我的常用流程
git switch -c feat/xxx
# ... 改代码 ...
git add -p # 逐块确认,避免误提交
git commit -m "feat: 说明为什么这么改"
git push -u origin HEAD
git add -p 是最被低估的命令。逐块 review 自己的改动,能抓到不少手误。
部署
能自动就别手动。
推送 → CI 跑测试 → 构建 → 部署 → 冒烟测试
小项目用 GitHub Actions 就够:
name: deploy
on: { push: { branches: [main] } }
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: npm ci && npm run build
- uses: cloudflare/wrangler-action@v3
with:
apiToken: ${{ secrets.CF_TOKEN }}
笔记
纯 Markdown 文件,存本地,Git 管版本。
notes/
├─ daily/ 每日随手记
├─ howto/ 操作手册
├─ reading/ 读书/文章笔记
└─ drafts/ 没写完的
一条铁律:笔记的源头必须是纯文本文件,不能只存在某个网站里。
原因很简单——网站会倒,SaaS 会涨价,只有 .md 文件二十年都还能打开。
时间管理
不用番茄钟,用时间块:
09:00 - 11:00 深度工作(不看消息)
11:00 - 11:30 处理消息/邮件
11:30 - 12:00 开会
14:00 - 17:00 深度工作
17:00 - 17:30 收尾、写明天的 TODO
核心是保护上午那两小时。 那两小时产出占一天的 70%。
调试
先复现,再定位,最后修。
1. 能稳定复现吗?不能就先造复现条件
2. 缩小范围:二分法,注释掉一半代码看还犯不犯
3. 打印/断点,看真实值不是猜的值
4. 修完写测试,防止回归
最忌讳:没复现就开始改代码。 改完不知道好没好,还引入了新问题。
学新东西
1. 先跑通官方 Quick Start(30 分钟)
2. 做一个最小可用项目(2 小时)
3. 遇到问题时查文档,不查博客
4. 写一篇笔记,用自己的话讲一遍
第 4 步最关键。 写不出来说明没懂。
反模式清单
这些我踩过,现在尽量避开:
| 反模式 | 为什么错 |
|---|---|
| 一次性看完所有文档再动手 | 记不住,且没有上下文 |
| 用最新最酷的技术做生产 | 坑没被踩完,你就是踩坑的人 |
| 为了"以后可能用到"提前抽象 | YAGNI,抽象成本比重复高 |
| 在会议上决定技术方案 | 没写代码就想清楚架构,几乎不可能 |
| 不写测试就重构 | 等于闭眼改电路 |
| 用 GUI 做版本控制 | 学不会 rebase,遇到冲突就抓瞎 |
一条总结
工具是为了减少摩擦,不是为了让你显得专业。
如果你的工作流需要 10 分钟准备才能开始写代码, 那这套工作流就是错的。
我现在从坐下到能写代码:3 秒(终端一直在开,nvim . 就完事)。