🏠 首页 攻略 程序员必装的7个效率工具,少加班不是梦

程序员必装的7个效率工具,少加班不是梦

每天写代码、调bug、搞部署,累得半死还没效率?这7个效率工具涵盖终端加速、数据转换、代码审查,帮你每天省下2小时,告别无效加班。

上周跟一个做了五年后端的朋友吃饭,他吐槽说每天加班到九点,改bug、写接口、部署上线,忙得脚不沾地。

我问他一天写多少行代码。他说大概五十行。

我说那你每天另外四个小时在干嘛?

他说翻日志、查配置、调API、等构建……全是等。

我听完沉默了三秒,然后把我用的工具清单甩给了他。

今天这篇就是那份清单的完整版。七个工具,全是免费开源的,不用花钱,装上就能用。


一、fzf + fd:让文件搜索从分钟变成秒

你项目里有上万个文件,要找某个配置项在哪。用IDE的全局搜索?打开就要十秒。用find命令?跑完黄花菜都凉了。

fdfzf 组合一下,情况完全不同。

fd是Rust写的文件搜索工具,速度比find快很多。fzf是模糊搜索工具,能交互式的筛选结果。

# 搜索所有Python文件
fd "\.py$"

# 模糊搜索文件名
fd "config"

# 配合fzf,交互式选择
fd | fzf

# 搜索文件内容并预览
rg "TODO" | fzf --preview "head -20 {}"

装好之后,我在项目里找文件基本不超过三秒。以前翻半天找不到的东西,现在敲几个字母就出来了。

这两个工具的navbox上都有对应的工具介绍。fd文件搜索fzf模糊搜索 的详细用法可以参考站内指南。


二、jq:命令行里的JSON手术刀

API返回了一大坨JSON,你要找里面某个字段的值。复制出来用格式化插件?太慢了。

jq是命令行里的JSON处理工具,一行命令就能切开、过滤、转换JSON数据。

# 格式化JSON
curl https://api.example.com/users | jq '.'

# 提取特定字段
curl https://api.example.com/users | jq '.[] | {name, email}'

# 过滤条件
jq '.users[] | select(.role == "admin")' data.json

# 把JSON数组转成CSV
jq -r '.[] | [.id, .name, .email] | @csv' users.json

我调试API的时候,jq几乎是标配。curl拿回来什么乱七八糟的数据,jq一管道过去,干净利索。

navbox上有专门的 JSON Path Finder 工具,支持在线测试JSONPath表达式。跟jq配合使用,效率更高。


三、tmux:远程开发的防弹衣

SSH连到服务器,跑着训练任务或者部署脚本。突然网络断了。

恭喜你,全部重来。

tmux解决了这个问题。它是一个终端复用工具,会话独立于网络连接存在。断线了?重新连上去,attach回来,一切照旧。

# 创建新会话
tmux new -s train

# 分割窗口
Ctrl+b % (垂直分割)
Ctrl+b " (水平分割)

# 分离但不关闭
Ctrl+b d

# 重新连接
tmux attach -t train

我跑模型训练的时候基本都挂着tmux。有时候一个任务跑两天,中间断网三次都没事。


四、Docker Compose Lint:配置文件的体检医生

docker-compose.yml写了几百行,跑起来报错。你一行行翻,翻到怀疑人生。

docker-compose-lint是一个专门检查compose文件格式的工具。它能发现缩进错误、变量引用问题、端口冲突这些肉眼看不到的bug。

# 检查compose文件
docker compose lint docker-compose.yml

# 修复建议
docker compose lint --fix docker-compose.yml

我有一次在compose文件里写错了环境变量名,服务死活起不来。lint工具直接标出了错误行,改完秒过。

navbox上的 Docker Compose Lint 指南 有详细的配置说明和常见错误排查。


五、Git Hooks自动化:把重复劳动交给机器

git hook是git在特定操作时触发的脚本。pre-commit钩子可以在你提交代码前自动运行检查。

# 创建pre-commit钩子
cat > .git/hooks/pre-commit << 'EOF'
#!/bin/bash
echo "运行代码检查..."
flake8 src/
mypy src/
echo "检查通过!"
EOF
chmod +x .git/hooks/pre-commit

有了这个,每次提交代码之前会自动运行flake8和mypy。格式不对、类型不匹配,根本提交不了。

配合CI流水线,双重保险。以前代码review时被挑出来的格式问题,现在在本地就拦截了。

navbox上的 Git Hooks自动化指南 详细介绍了各种hook的配置方法和实战案例。


六、cron表达式速查:定时任务的翻译官

crontab表达式长什么样?0 2 * * 1-5。什么意思?凌晨两点,周一到周五。

记不住?正常,这东西反人类。

我用navbox上的 Cron表达式解析器 在线工具。输入表达式,立刻告诉你含义。反过来也行,选好时间规则,自动生成表达式。

# 每天凌晨3点备份
0 3 * * * /usr/local/bin/backup.sh

# 每小时第15分钟清理缓存
15 * * * * /usr/local/bin/clear-cache.sh

# 每周日凌晨1点重启服务
0 1 * * 0 /usr/local/bin/restart.sh

我把常用的几条存成笔记,需要的时候直接复制粘贴。省得每次去查文档。


七、环境变量管理:别再硬编码密码了

你代码里有没有写过这种语句?

API_KEY = "sk-1234567890abcdef"
DB_PASSWORD = "mypassword123"

有?赶紧删了。

环境变量是更安全、更灵活的管理方式。把敏感信息放到环境变量里,代码只读变量不写死值。

# 设置环境变量
export API_KEY="sk-1234567890abcdef"
export DB_PASSWORD="mypassword123"

# 在Python中读取
import os
api_key = os.environ["API_KEY"]

配合 .env 文件和 python-dotenv 库,开发环境和管理员生产环境可以完全隔离。

navbox上的 环境变量详解 有完整的配置指南和安全最佳实践。


把这些工具串起来

单独用一个工具,效率提升有限。把它们串成工作流,效果就完全不同了。

举个例子:

  1. 改完代码,git commit触发pre-commit钩子自动检查
  2. 检查通过后,用fd+fzf快速定位要部署的配置文件
  3. 用jq验证配置文件格式
  4. 提交后,cron定时任务触发部署脚本
  5. 部署过程挂在tmux里,不怕断网
  6. 部署完成,查看日志确认状态

一套流程下来,基本不需要人盯着。

我以前也以为效率提升靠的是写更快的代码。后来发现,真正的效率来自减少等待时间。等构建、等搜索、等部署——把这些时间省下来,一天多出两个小时不是梦。


行动建议

不要一口气全装上。挑一个你最痛的痛点开始:

  • 文件搜索慢 → 装fd + fzf
  • API调试烦 → 学jq
  • 远程开发怕断 → 用tmux
  • 配置老出错 → 搞docker-compose-lint
  • 部署手动操作多 → 配git hooks
  • 定时任务记不住 → 用cron解析器
  • 密码管理不安全 → 迁移到环境变量

先解决一个问题,再解决下一个。一个月下来,你会发现自己少加了很多班。

你平时最耗时间的开发环节是什么?评论区说说,我看看哪个工具能帮上忙。