老张的工具箱 2025——完整开发环境配置
老张的工具箱 2025——完整开发环境配置
适读人群:想优化开发环境的工程师 | 阅读时长:约15分钟 | 核心价值:老张的完整开发环境,硬件到软件到 AI 工具,有配置细节,不是广告
前两周有个读者问我:你平时开发用的是什么环境?看你文章里偶尔提到 Cursor、Claude Code,能不能完整写一篇?
这个需求很合理。工程师的开发环境是个非常个人化的东西,每个人用几年之后都有一套自己的配置,但很少有人系统地写出来。我今天就把我的完整开发环境写出来,从硬件到软件到 AI 工具,有细节,有配置,不是广告。
硬件配置
主力机:MacBook Pro 14 寸,M3 Pro,36GB 内存
选 36GB 内存不是因为钱多,是有具体原因:本地跑 7B-13B 的模型需要内存,用 Ollama 跑 Qwen2.5-14B 大概需要 12-14GB 显存,同时开着 IntelliJ IDEA + Chrome + 终端,16GB 内存会很憋,36GB 够用有余。
M3 Pro 的统一内存架构对 LLM 本地推理非常有利,同等内存下推理速度比 Intel 时代快太多。如果预算有限选 M3 基础款 + 16GB,日常开发没问题,只是跑本地大模型体验差一些。
外接显示器:LG 27 寸 4K(27UP850-W)
没什么特别的,这块屏就是合适的尺寸、够清楚、不反光,用了两年没觉得有什么问题。我不是多显示器党,一块外接 + MacBook 屏幕两块就够用了。
外接显示器接 MacBook 用的 USB-C 直连,同时充电,省了一根线。
外设:键盘 + 鼠标
键盘用 Keychron K3 Pro,矮轴版,青轴(家里没人就用青轴,爽)。在公司用红轴(怕吵到同事)。
鼠标用罗技 MX Master 3S,侧滑轮对代码编辑和 Markdown 写作时的文档滚动效率提升有实际帮助。
核心开发工具
IntelliJ IDEA Ultimate
Java/Kotlin 开发主力 IDE,没有竞争。每年续费,觉得值。几个我觉得重要的配置:
- 内存分配调到 4096MB(默认 750MB 太小):在
Help > Change Memory Settings里改 - 关掉不用的插件(减少 IDE 启动时间和运行时内存占用):Settings > Plugins,把你没用的全 disable
- 代码风格统一用 EditorConfig,每个项目根目录放
.editorconfig,避免团队间格式冲突 - Live Templates 是被低估的功能,把你常用的代码片段做成模板,比代码生成 AI 更快
VS Code
Python 项目、脚本、配置文件的主力编辑器。我不用 VS Code 写 Java,那个体验没法跟 IDEA 比。但写 Python 的时候 VS Code + Pylance 很流畅。
必装插件:
- Python(官方)+ Pylance(类型推断比官方插件强)
- GitLens(git blame 内嵌显示,代码审查时有用)
- Error Lens(错误直接显示在代码行尾,不用移到错误行才看到提示)
- REST Client(直接在
.http文件里写 API 测试请求,比 Postman 轻量)
Cursor
AI 代码编辑器,基于 VS Code 魔改,集成了非常好的 AI 辅助编写体验。我主要用它做:AI 辅助写 Python 代码(AI 功能比 VS Code + Copilot 的集成体验好很多)、快速原型开发、写 Shell 脚本。
Cursor 最好用的功能是 Composer(现在叫 Agent 模式):描述你想要什么,它能在多个文件之间协调修改,实现一个功能。对于我这种经常在不熟悉的库上做实验的人,效率提升很明显。
但有一个判断:Cursor 不能替代 IntelliJ IDEA 做 Java 开发。Java 生态的语义理解、重构、调试,IDEA 的深度支持是 Cursor 没法比的。用哪个,按语言和任务类型来定。
终端和命令行配置
终端:iTerm2 + Oh My Zsh
macOS 原生终端够用,但 iTerm2 的分屏、主题、搜索功能明显好很多,推荐换。
Oh My Zsh 的核心价值在插件:
git插件:大量 git 命令缩写,gst=git status,gco=git checkout,glog打出漂亮的 git logzsh-autosuggestions:命令历史自动补全,按右箭头接受建议,减少重复敲命令的次数zsh-syntax-highlighting:命令实时高亮,输错命令立刻变红色,很直观
.zshrc 里我加了几个常用 alias:
# 常用目录跳转
alias proj="cd ~/Documents/projects"
alias dl="cd ~/Downloads"
# Docker 常用操作
alias dps="docker ps"
alias dlog="docker logs -f"
# 快速启动常用服务
alias start-redis="docker run -d -p 6379:6379 redis:alpine"
alias start-pg="docker run -d -p 5432:5432 -e POSTGRES_PASSWORD=dev postgres:16"
# Git 快捷操作
alias gs="git status"
alias gl="git log --oneline --graph --decorate -15"
alias gaa="git add -A"包管理:Homebrew + mise(版本管理)
Homebrew 没什么可说的,macOS 开发标配。
mise(原 rtx,asdf 的替代品)用来管理多版本 Python、Node.js。不同项目需要不同 Python 版本的时候,mise use python@3.11 在项目根目录设定版本,切换无感知,比 pyenv 更好用。
AI 工具配置
Claude Code(主力 AI 编程工具)
命令行 AI 编程助手,接入 Claude API。我日常最高频用的 AI 工具。
用法:在项目根目录直接运行 claude,然后用自然语言描述任务,可以读写代码文件、执行命令、做 Code Review。
几个我真实用起来有价值的场景:
- 快速生成测试用例:描述一个方法的功能,让它生成完整的 JUnit 测试,通常质量比较好
- 解释复杂的旧代码:把一段看不懂的代码贴进去,让它解释每一行在做什么
- 写 Bash 脚本:我不擅长 Shell,复杂一点的脚本让 Claude Code 写,比查文档快
Ollama(本地模型运行)
本地跑 LLM 的工具,两条命令装好,零配置。
我常驻跑的模型:
qwen2.5:14b:中文理解和生成质量好,日常问答主力deepseek-coder-v2:16b:代码相关任务,本地跑不用出流量nomic-embed-text:本地生成 embeddings,RAG 项目开发调试用
Ollama 的 REST API 和 OpenAI 格式兼容,基本上把接口 URL 改成 http://localhost:11434 就能接入任何支持 OpenAI SDK 的代码,不需要改逻辑。
Open WebUI(Ollama 的 Web 界面)
给 Ollama 加一个好看的 Web 界面,Docker 一行启动:
docker run -d \
-p 3000:8080 \
-v open-webui:/app/backend/data \
-e OLLAMA_BASE_URL=http://host.docker.internal:11434 \
--name open-webui \
ghcr.io/open-webui/open-webui:main访问 http://localhost:3000,可以同时接入本地 Ollama 模型和配置好的远程 API(OpenAI、Anthropic 等)。
效率工具
Raycast(替代 Spotlight)
macOS 启动器,我用来:快速打开应用(比 Spotlight 快)、计算器(直接在搜索框里算)、剪贴板历史(记录最近 50 条复制内容,经常需要)、自定义快捷命令(按 ⌘ + Space 然后输入命令前缀)。
免费版足够用,Pro 版我没开,不需要。
Rectangle(窗口管理)
macOS 不自带好的窗口吸附功能,Rectangle 补上了这个缺口。用快捷键把窗口吸附到半屏、四分之一屏。开发的时候左边代码、右边浏览器或终端,快捷键秒切,不用用鼠标拖窗口大小。
Notion(笔记 + 知识管理)
我用 Notion 记技术笔记、管理文章选题、记项目进度。核心用法很简单:一个"技术笔记"数据库,每篇记录有标签(语言、框架、主题),搜索用。不需要什么花哨的功能。
Notion 的缺点是重,打开慢。如果只需要轻量笔记,Obsidian 是更好的选择。
常用命令备忘
几个我真实高频用的命令,新人可以直接拿去用:
# 查看端口占用
lsof -i :8080
# 快速查看 JSON 格式化
cat response.json | python3 -m json.tool
# 统计代码行数(排除 node_modules 和 .git)
find . -name "*.java" -not -path "*/node_modules/*" | xargs wc -l
# 查看 Docker 容器日志并实时跟踪
docker logs -f --tail 100 container_name
# 批量 kill 某个端口的进程
lsof -ti :8080 | xargs kill -9
# 查看 Maven 依赖树(找冲突用)
mvn dependency:tree | grep -A5 "CONFLICT"
# Python 快速起一个 HTTP 文件服务器
python3 -m http.server 8000工具本身是次要的,重要的是找到适合自己工作流的组合。我的这套配置是两年逐渐演化出来的,肯定不适合所有人。
如果你有用得很好、觉得比我的方案更好的工具,欢迎在评论区告诉我,我会认真看的。
