阅读源码时:idea中如何使用todo标记、活动模板 (史上最全)

文章很长,而且持续更新,建议收藏起来,慢慢读!疯狂创客圈总目录 博客园版 为您奉上珍贵的学习资源 :

  • 免费赠送 :《尼恩Java面试宝典》持续更新+ 史上最全 + 面试必备 2000页+ 面试必备 + 大厂必备 +涨薪必备
  • 免费赠送 经典图书:《Java高并发核心编程(卷1)加强版》 面试必备 + 大厂必备 +涨薪必备 加尼恩免费领
  • 免费赠送 经典图书:《Java高并发核心编程(卷2)加强版》 面试必备 + 大厂必备 +涨薪必备 加尼恩免费领
  • 免费赠送 经典图书:《Java高并发核心编程(卷3)加强版》 面试必备 + 大厂必备 +涨薪必备 加尼恩免费领
  • 免费赠送 经典图书:《尼恩Java面试宝典 V11》 面试必备 + 大厂必备 +涨薪必备 加尼恩免费领
  • 免费赠送 资源宝库: Java 必备 百度网盘资源大合集 价值>10000元 加尼恩领取

接下来,尼恩要带大家 穿透式 、起底式的 学习 caffeine 的源码和架构

caffeine 的源码 特别复杂, 所以要用到下面的技巧

1:使用todo标记快速梳理和定位核心流程

在日常开发中,使用todo标记能够让我们快速定位到未完成开发内容代码上,提高开发效率。

在阅读 源码时, 比如阅读 超级牛逼的 组件 caffeine 的源码时,

可以 先 梳理一下 核心流程 , 然后 使用todo标快速梳理和定位核心流程

在代码中编写一个TODO标记

// TODO 标记内容,这里只要是有TODO这个关键词,idea的TODO菜单就能查找到该标记。

阅读源码时:idea中如何使用todo标记、活动模板 (史上最全)_第1张图片

关于 本文的代码,和技术问题, 请来尼恩 发起的3高架构社群 疯狂创客圈 社群交流 ,

自定义一个TODO标签,并设置TODO过滤器

在多人开发时,大家都可能编写TODO标签,用于 标记 没有完成的 任务

为了快速找到源码中的 核心流程,可以借助TODO标签 来完成

然后, 在梳理 一个场景的代码,或者梳理一个流程中的代码时,

此时,你就要自定义一个TODO标签, 然后 ,在 导航 同一个流程的代码时, 使用一个和这个TODO标签相关的,一个特定的过滤器来筛选。

关于 本文的代码,和技术问题, 请来尼恩 发起的3高架构社群 疯狂创客圈 社群交流 ,

自定义TODO标签的过滤器

设置TODO过滤器

在多人开发时,大家都可能编写TODO标签,

为了在TODO中快速查找自己的标签,那么你就要自定义一个TODO标签,使用过滤器来筛选。

首先添加todo 的 文本匹配模式 和过滤器

以下设置,在idea的seting–>editor-》TODO中

阅读源码时:idea中如何使用todo标记、活动模板 (史上最全)_第2张图片

editor-》TODO中

阅读源码时:idea中如何使用todo标记、活动模板 (史上最全)_第3张图片

或者自己在TODO菜单窗口的filter中选择edit filters进行设置

阅读源码时:idea中如何使用todo标记、活动模板 (史上最全)_第4张图片

阅读源码时:idea中如何使用todo标记、活动模板 (史上最全)_第5张图片

edit filters

阅读源码时:idea中如何使用todo标记、活动模板 (史上最全)_第6张图片

关于 本文的代码,和技术问题, 请来尼恩 发起的3高架构社群 疯狂创客圈 社群交流 ,

定义过滤 pattens 模式

在这里,你可以设置是否忽略大小,字体、颜色等等

阅读源码时:idea中如何使用todo标记、活动模板 (史上最全)_第7张图片

pattens 模式 , 它就是两个正则表达式,

"正则中“\b”是元字符代表着单词的开头或结尾,也就是单词的分界处。

\b是正则表达式规定的一个特殊代码(好吧,某些人叫它元字符,metacharacter),代表着单词的开头或结尾,也就是单词的分界处。

虽然通常英文的单词是由空格,标点符号或者换行来分隔的,但是\b并不匹配这些单词分隔字符中的任何一个,它只匹配一个位置”

\btodo 高并发读的关键代码\b.

该表达式单纯表达的意思就是匹配 :

todo 高并发读的关键代码.*

关于 本文的代码,和技术问题, 请来尼恩 发起的3高架构社群 疯狂创客圈 社群交流 ,

添加过滤器

阅读源码时:idea中如何使用todo标记、活动模板 (史上最全)_第8张图片

关于 本文的代码,和技术问题, 请来尼恩 发起的3高架构社群 疯狂创客圈 社群交流 ,

使用todo的过滤器

写的TODO标签

先在代码中,自己写的TODO标签了

阅读源码时:idea中如何使用todo标记、活动模板 (史上最全)_第9张图片

添加过滤器

阅读源码时:idea中如何使用todo标记、活动模板 (史上最全)_第10张图片

关于 本文的代码,和技术问题, 请来尼恩 发起的3高架构社群 疯狂创客圈 社群交流 ,

阅读源码时:idea中如何使用todo标记、活动模板 (史上最全)_第11张图片

关于 本文的代码,和技术问题, 请来尼恩 发起的3高架构社群 疯狂创客圈 社群交流 ,

然后你就可以在TODO的filter中选择自己的标签,就可以筛选了

阅读源码时:idea中如何使用todo标记、活动模板 (史上最全)_第12张图片

阿里巴巴手册中关于TODO 标记的编写指南

【参考】特殊注释标记,请注明标记人与标记时间。

注意及时处理这些标记,通过标记扫描, 经常清理此类标记。

线上故障有时候就是来源于这些标记处的代码。

1) 待办事宜(TODO):( 标记人,标记时间,[预计处理时间]) 表示需要实现,但目前还未实现的功能。

这实际上是一个 Javadoc 的标签,目前的 Javadoc 还没有实现,但已经被广泛使用。

只能应用于类,接口和方法(因为它是一个 Javadoc 标签)。

2) 错误,不能工作(FIXME):

(标记人,标记时间,[预计处理时间]) 在注释中用 FIXME 标记某代码是错误的,而且不能工作,需要及时纠正的情况

关于 本文的代码,和技术问题, 请来尼恩 发起的3高架构社群 疯狂创客圈 社群交流 ,

2 自定义代码活动模板

为了方便打出TODO,可以编写一个live Templater,快速打出TODO-wn类似的标签

创建todo 的代码模板

按照下图创建模板,内容如下,这里创建的是 tdgbfd 生成模板,

阅读源码时:idea中如何使用todo标记、活动模板 (史上最全)_第13张图片

使用自带函数赋值

这里的$DATE$使用edit variables调用自带函数赋值,还可以使用好多其他函数,如date()……等等。

阅读源码时:idea中如何使用todo标记、活动模板 (史上最全)_第14张图片

关于 本文的代码,和技术问题, 请来尼恩 发起的3高架构社群 疯狂创客圈 社群交流 ,

3:使用UML查看类的关系

生产UML图

阅读源码时:idea中如何使用todo标记、活动模板 (史上最全)_第15张图片

查看 父子继承关系

阅读源码时:idea中如何使用todo标记、活动模板 (史上最全)_第16张图片

关于 本文的代码,和技术问题, 请来尼恩 发起的3高架构社群 疯狂创客圈 社群交流 ,

参考文献

  1. 疯狂创客圈 JAVA 高并发 总目录
    https://www.cnblogs.com/crazymakercircle/p/9904544.html
    ThreadLocal(史上最全)
    https://www.cnblogs.com/crazymakercircle/p/14491965.html
  2. 3000页《尼恩 Java 面试宝典 》的 35个面试专题 :
    https://www.cnblogs.com/crazymakercircle/p/13917138.html
  3. 价值10W的架构师知识图谱
    https://www.processon.com/view/link/60fb9421637689719d246739

4、架构师哲学
https://www.processon.com/view/link/616f801963768961e9d9aec8

5、尼恩 3高架构知识宇宙
https://www.processon.com/view/link/635097d2e0b34d40be778ab4

Kotlin 1.4 现已发布,专注于质量和性能 – Kotlin Blog | JetBrains .Kotlin官网.2020-08-17[引用日期2020-08-29]

6 Kotlin Programming Language .Kotlin[引用日期2018-02-02]

7 基于JVM的编程语言 Kotlin .开源社区网[引用日期2012-08-16]

8 IDEA下搭建Kotlin环境 .CSDN[引用日期2020-07-09]

9 Eclipse下搭建Kotlin开发环境 .CSDN.2016-02-18[引用日期2017-11-15]

10 Kotlin Programming Language .Kotlin语言官网[引用日期2021-02-22]

https://www.zhangshilong.cn/work/24556.html

https://blog.csdn.net/qq_41895810/article/details/120042035

https://blog.csdn.net/shuair/article/details/107319204

https://www.cnblogs.com/albertdale/p/14939529.html

https://blog.csdn.net/ywb201314/article/details/125716928

https://blog.csdn.net/qq_23085893/article/details/79633934

你可能感兴趣的:(java,intellij-idea,java,ide)