主题
界面
主题
效率工具的价值公式 ✓✓:
价值 = 省下的时间 × 使用频率
· 快捷键(每天几百次)→ 最高 ROI ✓✓✓ · 酷炫插件(每月一次)→ 几乎为零 ✗
★ 所以本节的顺序是:快捷键 → 调试技巧 → 少量插件 ✓
| 快捷键 | 用途 | 频率 |
|---|---|---|
Shift Shift ★★★ | 搜任何东西(类/文件/符号/设置) | 每天几十次 ✓✓✓ |
Ctrl+Alt+L | 格式化 | 每天 ✓✓ |
Alt+Enter | 快速修复/意图(导包、纠错)★★★ | 每天几十次 ✓✓✓ |
Ctrl+Alt+V | 提取变量 | 每天 ✓✓ |
Ctrl+Alt+M | 提取方法(重构第一步)✓ | 每天 ✓ |
Shift+F6 | 重命名(全项目安全重命名)★★★ | 每天 ✓✓ |
Ctrl+B | 跳到定义 | 每天几十次 ✓✓✓ |
Alt+F7 | 找引用 | 每天 ✓ |
F2 | 跳到下一个错误 | 每天 ✓✓ |
Ctrl+E | 最近文件 | 每天 ✓✓ |
★★ 学习方法 ✓✓:一次只练一个,用一周形成肌肉记忆,再练下一个 ✓ (一次背十个 = 一个也记不住 ✗)
| 技巧 | 场景 | 本项目的例子 |
|---|---|---|
| 条件断点 ★★★ | 只在特定条件下停下 | 「只在 orderId=9527 时断住」(右键断点 → Condition)✓✓ |
| Evaluate Expression ★★★ | 断点处试算表达式 | 停在 borrow() 里,试算 rules.getMaxBorrowPerReader() ✓✓ |
| 多线程断点 ★★★ | 只挂起某个线程 | 并发测试里观察"第几个线程拿到锁"(断点选 Thread 模式)✓✓ |
★ 调试的最高原则 ✓✓✓:
先用日志/测试缩小范围,再用断点看细节 ✓
不要一上来就单步 ✗ —— 单步的视野太小 ✗✓
| 插件 | 价值 |
|---|---|
| Lombok 支持 ★★ | 用 Lombok 才需要(本项目用 record,非必需)✓ |
| .ignore ★ | .gitignore 语法提示 ✓ |
| Maven Helper ★★ | 可视化看依赖冲突(对应 dependency:tree)✓✓ |
| Translation | 读英文文档/报错 ✓ |
★ 插件的取舍 ✓✓:装之前问"我每周会用它几次?" ✓ (用不了的插件 = 干扰 + 启动变慢 ✗)
★ 本项目真实用过的重构 ✓:
| 重构 | 场景 |
|---|---|
| 提取方法 ★★★ | BorrowService.borrow() 里的校验段抽成私有方法 ✓ |
| 重命名 ★★★ | markReturned 语义化命名(Shift+F6 全项目安全改)✓ |
| 内联变量 ★★ | 消灭只有一次使用的中间变量 ✓ |
| 移动类/改包 ★★ | 模块化整理 ✓ |
★ 重构的保障是测试 ✓✓✓:没有测试的重构是赌博 ✗✗ (本项目 172 个测试就是重构的安全网 ✓)
在 BorrowService.borrow() 的库存扣减行打断点
→ 右键断点 → Condition: bookId == 3
→ 只在"抢书 3"时停(书 3 只有 1 本,最容易复现库存不足)✓✓编译错误:cannot find symbol: method isBlank
→ 光标放上去 → Alt+Enter → 导入/建议修复 ✓✗ 插件冲突、启动慢、快捷键被占用 —— 效率为负 ✗✗本项目的开发过程就是效率工具的实测样本 ✓:
| 场景 | 用了什么 |
|---|---|
编译错误定位(如 -parameters 那次) | F2 跳错误 + Alt+Enter 修复建议 ✓ |
| 跨 24 个模块找符号 | Shift Shift / Ctrl+B ✓ |
| 并发测试调试 | 条件断点(只在特定线程停)✓ |
Shift Shift 替代 ✓;| # | 错误 | 说明 |
|---|---|---|
| 1 | 一次学一堆快捷键 ✗ | 记不住 ✓✓ |
| 2 | 一进调试就单步 ✗✗ | 视野太小 ✓✓ |
| 3 | 无测试就大重构 ✗✗✗ | 赌博 ✓✓✓ |
| 4 | 插件越装越多 ✗ | 负收益 ✓ |
Shift Shift + Alt+Enter + Ctrl+B ✓✓;验收方式:一周后不查资料能说出十个快捷键中的八个。
扩展任务:配置 Live Template(如 testl 展开成一个 JUnit 测试骨架)✓✓ —— 它是"把你的惯用代码模式沉淀进 IDE" ★★
Shift Shift / Alt+Enter / Ctrl+B / Shift+F6 / Ctrl+Alt+L ✓暂无