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

发布于:2025-07-19 ⋅ 阅读:(11) ⋅ 点赞:(0)

前言

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

一、为什么大多数 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_
                  o8888888o
                  88" . "88
                  (| -_- |)
                  O\  =  /O
               ____/`---'\____
             .'  \\|     |//  `.
            /  \\|||  :  |||//  \
           /  _||||| -:- |||||-  \
           |   | \\\  -  /// |   |
           | \_|  ''\---/''  |   |
           \  .-\__  `-`  ___/-. /
         ___`. .'  /--.--\  `. . __
      ."" '<  `.___\_<|>_/___.'  >'"".
     | | :  `- \`.;`\ _ /`;.`/ - ` : | |
     \  \ `-.   \_ __\ /__ _/   .-` /  /
======`-.____`-.___\_____/___.-`____.-'======
                   `=---='
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
            佛祖保佑       永无BUG
*/

网站公告

今日签到

点亮在社区的每一天
去签到