当前位置: 首页 > news >正文

【保姆级喂饭教程】idea开发TODO规范

目录

  • 前言
  • 一、为什么大多数 TODO 都烂尾?
  • 二、TODO规范
    • 1. IDEA 自定义 TODO 模板
      • 1.1 单行TODO注释
      • 1.2 测试
      • 1.3 多行TODO注释
      • 1.4 单行FIXME注释
    • 2. IDEA 自定义过滤器
      • 2.1 个人TODO过滤器
      • 2.2 测试
      • 2.3 个人高优先级过滤器
      • 2.4 测试
  • 后记
  • 参考文献

前言

在进行软件开发过程中,我们经常会遇到需要记录下一些待办事项的情况。这些待办事项可以是代码中的缺陷、优化点、需要添加的功能等。为了更好地组织和管理这些待办事项,我们需要遵循一定的规范来标记和处理它们。

一、为什么大多数 TODO 都烂尾?

常见写法结局
// TODO永远没人修
// TODO 优化性能3 个月后连作者都忘了要干啥
// FIXME 这里会崩上线真的崩了,定位 2h

一句话:没有“详细描述 + 责任人 + 优先级”的 TODO 都是耍流氓。
开个玩笑,只是个人建议。


二、TODO规范

接下来我们通过制定一套TODO规范,使得团队协作更加标准高效。
IDEA官网 TODO comments

1. IDEA 自定义 TODO 模板

1.1 单行TODO注释

点击 File -> Settings
在这里插入图片描述
依次选择 Editor -> Live Templates,点击右边的加号,选择新增一个实时模板
在这里插入图片描述
会自动创建一个 user 分组,然后再创建实时模板
也可以在上一步选择 Template Group 创建一个自定义模板分组,再创建实时模板
在这里插入图片描述
输入模板缩写 td 和描述 Create Single-line TODO comment
输入模板规范,个人推荐格式为 TODO [日期][用户][优先级]: 描述 ,实时模板中通过$$定义变量

// TODO [$DATE$][$USER$][$PRIORITY$]: $DESC$

定义了变量后还需要编写对应的表达式,idea内置了许多函数,点击Expression下面的单元格会显示下拉框按钮

  • 日期选择date()
  • 用户有对应的user(),但这个方法获取的是系统用户名,一般不是想要的,这里通过enum(...)枚举填充用户名,注意用户名要加引号
  • 优先级填入enum("P0","P1","P2","P3","P4"),之后可以通过下拉框挑选,默认值经过测试没有用

优先级选项解释如下,也可以直接按照5级重要性使用

优先级说明重要性
P0当日内完成重要紧急
P1三日内完成重要
P2七日内完成
P3一月内完成
P4未来完成

最后给日期和用户的Skip if defined选项勾上,这样生成模板的时候光标就会自动跳过这两项
在这里插入图片描述

此时模板还不生效,因为没有设置应用范围,点击下方No applicable contexts右边的Define,直接选择Everywhere,之后点击ok
在这里插入图片描述

1.2 测试

简单测试一下,输入td,下面第一行就是,直接回车
在这里插入图片描述
回车后由于前两项设置了跳过,会直接跳到第三项优先级,按上下进行选择,按enter或者tab确认
在这里插入图片描述
由于描述未设置任何函数,直接输入即可,输入后回车完成TODO记录
在这里插入图片描述
在这里插入图片描述

1.3 多行TODO注释

有时候的计划一句话解释不清楚,就需要多行TODO注释了

设置流程相同,只是调整下模板,因为多行注释的第一行TODO需要紧挨着//,不能有空格

模板可根据自己需求进行调整

//TODO [$DATE$][$USER$][$PRIORITY$]: $DESC$
// 需求:$REQUIRE$
// 实现:$CODE$
// 测试:$TEST$
$END$

在这里插入图片描述
还需要打开多行TODO注释设置,打开 Editor -> TODO,勾上Treat indented text on the following lines as part of the same TODO前面的勾选框,点击确定,表示将以下行中的缩进文本视为同一TODO的一部分
在这里插入图片描述

1.4 单行FIXME注释

除了todo,idea中还内置了fixme,用于记录bug,我们也创建一个规范模板

选中td模板,点击右边的复制,即可快速生成同类模板,改下缩写和描述,就可以确定了
在这里插入图片描述
多行FIXME注释有需要自己创建就好了

2. IDEA 自定义过滤器

当不同人员不同等级的TODO变多以后,查找想要的TODO将会变得麻烦,idea中提供了过滤器,帮助我们解决这一问题。

2.1 个人TODO过滤器

打开 Editor -> TODO,刚刚我们在这里设置过多行注释,下面分为两部分,上面是TODO的正则列表,下面是基于正则创建的过滤器,默认有一个基本的匹配所有TODO/FIXME的正则和基于它的过滤器
先创建一个个人正则,这个应用于我上面的规范,如果规范模板调整了,这里的正则也需自行调整

\b(todo|fixme)\b\s*\[[^\[]*\]\[zcy\].*

在这里插入图片描述
正则面板还有很多设置,下面是匹配大小写,默认颜色使用idea内置的,取消勾选可以自己设置背景色、字体色等等

接下来创建对应的过滤器,点击Filters右边的加号,填写过滤器名称,勾选正则,这里可以组合勾选,点击确定
在这里插入图片描述

2.2 测试

插入5条不同等级和用户的todo
在这里插入图片描述
点击下方工具栏的TODO窗口,可以看到5条都在
在这里插入图片描述
点击筛选按钮,切换到默认的myTODO,按理来说应该还是5条吧,可以看到就只剩一条了
在这里插入图片描述
因为idea这里的过滤器是连续过滤,切换到zcy过滤器,可以看到匹配到的4条
相当于myTODO过滤器先把所有的5条都匹配到,zcy过滤器又在此基础上匹配走了4条,下面我们再添加一个更严格的过滤器验证一下
在这里插入图片描述

2.3 个人高优先级过滤器

我们再创建一个满足个人条件的,优先级为P0P1的TODO

\b(todo|fixme)\b\s*\[[^\[]*\]\[zcy\]\[P[01]\].*

同时把myTODO改为更合适的others
在这里插入图片描述

2.4 测试

All
在这里插入图片描述
others
在这里插入图片描述
zcy
在这里插入图片描述
zcy-P0/1
在这里插入图片描述
确实是连续过滤的,大家还有别的需求可以自己编写正则,再自定义过滤器


后记

TODO可以提供我们的开发效率,更快的帮我们找到代码。我们可以使用idea默认的方式。
但是如果想要更加规范的话,我们可以配置一个模板来使用。
当多人开发TODO标记很多的时候,为了方便自己快速找到想要的标记,我们可以配置一个TODO的过滤器来帮助我们筛选标记。

以上就是我关于TODO的总结,希望能帮助到大家!

参考文献

IDEA官网 TODO comments


喜欢的点个关注吧><!祝你永无bug~

/*_ooOoo_o8888888o88" . "88(| -_- |)O\  =  /O____/`---'\____.'  \\|     |//  `./  \\|||  :  |||//  \/  _||||| -:- |||||-  \|   | \\\  -  /// |   || \_|  ''\---/''  |   |\  .-\__  `-`  ___/-. /___`. .'  /--.--\  `. . __."" '<  `.___\_<|>_/___.'  >'"".| | :  `- \`.;`\ _ /`;.`/ - ` : | |\  \ `-.   \_ __\ /__ _/   .-` /  /
======`-.____`-.___\_____/___.-`____.-'======`=---='
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^佛祖保佑       永无BUG
*/
http://www.dtcms.com/a/285173.html

相关文章:

  • 【项目实践08】【事务加锁的问题】
  • 【C++类和对象解密】面向对象编程的核心概念(下)
  • openinstall上线SSL证书服务,开启数字安全新纪元
  • 从现场出发:能源系统中的智能设备与实际落地工具解读
  • 7 基本的空间关系判断
  • Git仓库核心概念与工作流程详解:从入门到精通
  • 「Java案例」递归实现整数的倒置
  • MyBatis-Flex 学习与整理
  • LeNet-5 详解:从理论到实践
  • HTML前端性能优化完整指南
  • LeetCode 234:回文链表
  • 文件类型说明
  • H7-TOOL脱机下载后,自动重连RTT,CAN和串口助手三合一模式方法,方便项目测试(2025-07-16)
  • Spring Boot 分层架构详解:Controller、Service、Mapper...
  • C++网络编程 5.TCP套接字(socket)通信进阶-基于多线程的TCP多客户端通信
  • 鸿蒙状态栏操作
  • 能碳管理平台:企业碳减排解决方案绿色工厂达标工具
  • Trae IDE:打造完美Java开发环境的实战指南
  • 基于深度学习的电信号分类识别与混淆矩阵分析
  • AI 总结工作报告
  • 【人工智能agent】--dify版本更新(通用)
  • 错误经验一:计算两个整数a和b的和
  • Paimon 动态分桶
  • 如何优雅处理 Flowable 工作流的 TaskAlreadyClaimedException?
  • SpringBoot02-application配置文件
  • 行业研究 | 2025金融可观测性实践与趋势洞察报告重磅发布!
  • 数据结构自学Day9: 二叉树的遍历
  • 克鲁斯焊接机器人保护气省气方案
  • JS - - - - - 数组乱序排序「进阶版」
  • c++:类型转换函数