【保姆级喂饭教程】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 个人高优先级过滤器
我们再创建一个满足个人条件的,优先级为P0
和P1
的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
*/