我的2026年配置
Source: Dev.to
请提供您希望翻译的具体文本内容,我将为您翻译成简体中文并保持原有的格式。
Contexto
我一直想做这种风格的内容,但由于冒名综合症和时间不足的混合原因,我从未敢尝试。过去一年里,我一直在向 Light‑it 的同事们分享我的工作流程小技巧,收到了很好的反馈,所以我认为这是一个继续探索的好机会。
Mindset
我喜欢拥有既美观又高效的 setup,两者同等重要。我选择的所有工具都是为了优化我的工作流程,让使用它们变得愉快。我认为每个人一天开始时都有一定的心理电量 🔋,随着我们处理工作中的各种任务,这块电量会逐渐消耗;因此,维护好我们的电池是我的首要任务。
如果我们的工作是解决问题 A,那么所有不直接涉及 A 的事情都是噪音,需要被优化和最小化。
这将是我在选择工具时的 north‑star 🧭。
我的工具
-
硬件 – 我使用 MacBook Pro 14” (2024) M4 Pro, 24 GB RAM。它在性能、电池续航和产品质量上堪称战斗坦克。我推荐它。
-
主题 – 我在 IDE(PHPStorm 和 DataGrip)、终端(iTerm)以及 VSCode 中配置了 TokyoDark。我喜欢所有代码相关的界面使用相同的配色方案,不受程序限制。
-
字体 – 我在所有地方都使用 JetBrains Mono Nerd Fonts。
1. PHPStorm
存在一场关于使用哪款 IDE 的永恒争论,每个人都为自己的 IDE 辩护不已,因此我不会打开“PHPStorm 更好还是 VSCode 更好?”的讨论。对我而言,关键是要熟练掌握自己选择的工具。你喜欢使用 vim 并装满插件作为代码编辑器吗?那你必须成为 vim 的高手。
无论使用什么工具,都必须:
- 深入了解主要快捷键,并能够轻松在代码中导航。
- 如果你在侧边栏中搜索文件,这不行。
- 如果没有 “转到定义” / “查找用法”,这不行。
- 如果没有利用框架优势(在我这里是 Laravel)的自动补全,这不行。
- 如果 IDE 内没有正确的类型推断或读取,这不行。
- 没有一个体面的重构系统(例如 “重命名”、 “提取接口方法”、 “实现接口的所有方法”)这不行。
无论你使用 VSCode、Vim、Cursor、JetBrains 系列 IDE 还是其他任何工具,拥有一个调优好的 IDE 能让你保持高节奏和高速工作是至关重要的。
为什么选择 PHPStorm
PHPStorm 是围绕 PHP 构建的 IDE,能够与该语言完美配合。在其最重要的特性中,我特别强调:
-
针对 Laravel 的精准自动补全
PHPStorm 不仅补全方法和属性,还能检测路由、配置、工厂、事件、策略、测试、迁移和助手函数。它就像在你编码时拥有整个项目的地图。 -
原生集成测试与覆盖率
可以直接在 IDE 中运行单个测试或完整套件,实时查看覆盖率。编写代码与测试的流程流畅且无摩擦。 -
不会破坏任何东西的重构
重命名类、移动文件、提取接口或方法时无需担心会把一切弄坏。IDE 能理解代码之间的关系,并安全地完成更改。 -
永不失手的上下文搜索
能快速找到类、方法、使用、定义或覆盖,而不浪费时间。搜索不局限于文件名或字面文本:它能理解代码流并解析动态关系,甚至在宏添加的方法等高级场景中也能工作。
2. DataGrip
在我的项目中使用 PostgreSQL,因此我的 IDE 必须针对该 DBMS 进行优化。大多数同事使用 TablePlus 或 DBeaver,虽然两者都能满足基本需求,但我认为它们缺少 DataGrip 所具备的一些实用功能,这些功能可以加速数据库的浏览。
-
TablePlus 明显的限制是一次只能打开两个表,而且缺少某些特性,例如在 UI 中 查看在物化视图上创建的索引。在中等规模的项目中,任何人都不应该使用免费版的 TablePlus。
-
DBeaver 运行良好,但给我的感觉比较粗糙:快捷键不够直观,导航和查找信息比较费劲。我认识的同事中有些人已经是 DBeaver 的高手,而且它是免费且开源的。
为什么我选择 DataGrip?
- 它使用与 PHPStorm 相同的快捷键。
- Data Extractor 可以根据需要格式化数据,无论是导出还是转换为特定格式,以便在后续查询中继续使用。

- 批量数据编辑器 能够快速编辑大批量记录。
3. iTerm + Zsh + Zplug(含多个插件)
终端是开发者工具箱中最未被充分利用的工具之一。我指的并不仅仅是安装 iTerm 或 Warp 并使用好看的配色方案,而是 优化 shell 的使用,通过额外的软件来减轻工作负担。
- iTerm 具备多窗口、即时搜索以及对字体连字的支持。
- Zsh 作为交互式 shell,提供高级补全和智能历史记录。
- Zplug 用于快速、模块化地管理插件。
我使用的插件
| Plugin | 功能 |
|---|---|
zsh-autosuggestions | 基于历史记录的实时建议。 |
zsh-syntax-highlighting | 在输入命令时高亮语法。 |
zsh-completions | 补全外部工具的命令(如 docker、kubectl 等)。 |
powerlevel10k | 高度可配置且快速的提示符。 |
fzf | 模糊查找器,用于搜索文件、历史记录和进程。 |
gitfast | Git 的别名和快速补全。 |
zsh-history-substring-search | 对历史记录的增量子串搜索。 |
通过这种组合,终端不再只是一个文本窗口,而是一个 生产力中心,我可以在其中快速运行脚本、检查日志和执行查询,而不会浪费时间。
结论
一个经过深思熟虑的 setup — 强大的硬件、统一的主题、易读的排版和调校好的工具 — 不仅提升工作空间的美感,而且 提升精神能量,让人能够专注于解决真实问题而不受干扰。如果你仍然没有为你的工具设定 north‑star,可以先定义哪些功能对你的工作流是必不可少的,然后从那里开始构建。加油编码!
终端工具
Shell
我的基础工具
| 工具 | 描述 | 链接 |
|---|---|---|
| Zoxide | 智能替代 cd 的工具。学习我们的文件夹,并允许使用少量字符进行导航(z )。 | |
| fzf | 模糊查找器。浏览命令历史(通过 Cmd + R 访问),并快速搜索 SSH 隧道或冗长的 git 命令。 | |
| eza | 带颜色和图标的 ls。 | |
| bat | 带语法高亮和颜色的 cat。 | |
| ripgrep (rg) | 用 Rust 编写的 grep 替代品。 | |
| fd | 用 Rust 编写的 find 替代品。 | |
| Tmux | 终端复用器。 |
有了这些,我已经拥有一个体面的终端。
4. Todoist
作为 Staff Engineer,我的工作不仅仅是编程;我还必须为多个利益相关者执行各种任务:向客户发送报告、完成文档、进行评估、维护、提供反馈等。
Todoist 帮助我把日常的混乱转化为 tasks 和 reminders,以便之后处理。我尽可能遵循 GTD 方法论 。
5. ChatGPT y Claude Code
目前这两款 LLM 工具是我唯一付费使用的:
-
ChatGPT 我把它当作“架构伙伴”:验证想法、询问最佳实践、寻找替代方案、讨论实现和设计模式、寻找示例、文献、摘要文本、准备邮件、工单、细化需求等。我使用 Senior Software Engineer Assistance 模型 (),效果非常好。
-
Claude Code 我用它来编写代码、获取需求、排除 bug、从代码生成文档、发现漏洞以及搭建前端页面。尚未尝试它的多代理功能;这将是我在 2026 年要探索的下一个方向。
我试过 Cursor,感觉尚可,但我不愿为了拥有一个内置 AI 的编辑器而放弃 PHPStorm 与 Laravel 的深度集成。希望 JetBrains 的 IDE 能尽快加入 AI 工具,这样我就可以在不更换工具的情况下将其加入我的工作环境。更换 IDE 的成本和学习曲线都非常高,不能轻易决定。
6. SSH
使用 SSH 的 config 文件是绝对必要的():
- 我不需要记住每台服务器的 IP、用户名以及对应的私钥。
- 它是可移植的:迁移到另一台机器时,只需备份
~/.ssh文件夹(其中包括config和所有私钥)。 - 使用 SSH 隧道工作要容易得多,因为命令更简短,易于记忆和复现。
7. Zen Browser
Vengo de Arc y, después de que sus dueños anunciaron su abandono, migré a Zen (). Considero que tener un navegador con organización de pestañas en columna es más ordenado y cómodo cuando se manejan muchas pestañas simultáneamente; simplemente me resulta más fácil encontrar lo que necesito.
结论
归根结底,工具本身并不会让你变得更好,但糟糕的工具绝对会拖慢你的进度。正如一位大师级厨师精通刀具和火焰,我们作为软件专业人士,也必须对日常使用的工具拥有高度的掌握,无论我们选择了哪一种。
为了什么? 为了能够把我们的脑力和资源专注于要解决的问题,而不是花30 分钟思考如何将SQL表导出为CSV,或是有多少类实现了我们正在查看的接口。