Skip to content

Commit d84e277

Browse files
committed
2022-11-24-code-commit
1 parent f91daac commit d84e277

4 files changed

Lines changed: 300 additions & 8 deletions

File tree

README.md

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@
1717
<center><img width="400px" src="./src/.vuepress/public/logo.png"></center>
1818

1919
## 🔖 目录
20+
- [📖 JavaPark | Java 自学指南](#-javapark--java-自学指南)
21+
- [🔖 目录](#-目录)
2022
- [简介](#简介)
2123
- [Java](#java)
2224
- [Java 菜鸟入门](#java-菜鸟入门)
@@ -30,7 +32,7 @@
3032
- [Spring Boot 基础教程](#spring-boot-基础教程)
3133
- [HTML 教程](#html-教程)
3234
- [JS 教程](#js-教程)
33-
- [Vue3 笔记](#vue3-笔记)
35+
- [Vue3-笔记](#vue3-笔记)
3436
- [Nginx 教程](#nginx-教程)
3537
- [面试宝典](#面试宝典)
3638
- [计算机基础](#计算机基础)
@@ -44,15 +46,14 @@
4446
- [博客搭建](#博客搭建)
4547
- [效率提升](#效率提升)
4648
- [资源推荐](#资源推荐)
47-
- [Linux 教程](#linux-教程)
48-
- [macOS 教程](#macos-教程)
4949
- [Windows 教程](#windows-教程)
50+
- [macOS 教程](#macos-教程)
51+
- [Linux 教程](#linux-教程)
5052
- [考试打怪](#考试打怪)
5153
- [软件设计师](#软件设计师)
5254
- [与我联系](#与我联系)
5355
- [加群交流](#加群交流)
5456
- [公众号『村雨遥』](#公众号村雨遥)
55-
5657
- [转载分享](#转载分享)
5758
- [Star 趋势图](#star-趋势图)
5859

@@ -211,7 +212,8 @@
211212
5. [IDEA 教程:不得不知的实用小技巧](src/md/dev-tools/idea/2022-02-05-idea-tips.md)
212213
6. [IDEA 教程:创建 Java 入门应用](src/md/dev-tools/idea/2022-02-06-java-quick-start-with-idea.md)
213214
7. [IDEA 教程:连接 MySQL 失败解决方案](src/md/dev-tools/idea/2022-02-07-connect-mysql-fail.md)
214-
8. [IDEA 教程:Tomcat 控制台乱码解决方法](src/md/dev-tools/idea/2022-02-08-tomcat-console-error-code.md)
215+
8. [IDEA 教程:IDEA 代码提交前流程及提交日志模板化](src/md/dev-tools/idea/2022-11-24-code-commit.md)
216+
9. [IDEA 教程:Tomcat 控制台乱码解决方法](src/md/dev-tools/idea/2022-02-08-tomcat-console-error-code.md)
215217

216218
## 效率工具
217219

Lines changed: 290 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,290 @@
1+
---
2+
title: IDEA 代码提交前流程及提交日志模板化
3+
date: 2022-11-24
4+
isOriginal: true
5+
order: 31
6+
category:
7+
- IDEA 教程
8+
---
9+
10+
作者:村雨遥
11+
12+
博客:[JavaPark](https://cunyu1943.github.io/JavaPark)
13+
14+
原文:https://mp.weixin.qq.com/s/Mhc7tygE6Fl5_3h8mz7A9g
15+
16+
> 吾生也有涯,而知也无涯。
17+
---
18+
19+
## 前言
20+
21+
在开发大型项目时,通常都是由团队来进行开发。此时,每个人有每个人的代码编写风格和提交习惯,如果放任自由发挥,那么代码质量和代码提交日志就难免风格各异,导致项目代码质量难以保持统一。针对这一问题,往往公司在以项目组进行开发时,在进入正式编码前,都会制定一个标准的流程,用来规范代码提交前的流程,同时对提交日志进行规范化。从而最大程度上保持项目的代码风格统一,提高代码可读性。
22+
23+
以下就给大家介绍一下最常见的代码提交前的规范化流程,以及如何模板化我们的代码提交日志。
24+
25+
## 代码提交前检查流程
26+
27+
### 推荐插件
28+
29+
#### p3c
30+
31+
- **下载地址**
32+
33+
> https://plugins.jetbrains.com/plugin/10046-alibaba-java-coding-guidelines/versions
34+
35+
- **安装及使用**
36+
37+
> https://github.com/alibaba/p3c/wiki/IDEA%E6%8F%92%E4%BB%B6%E4%BD%BF%E7%94%A8%E6%96%87%E6%A1%A3
38+
39+
#### SonarLint
40+
41+
- **下载地址**
42+
43+
> https://plugins.jetbrains.com/plugin/7973-sonarlint/versions
44+
45+
- **安装及使用**
46+
47+
> https://www.cnblogs.com/cocoxu1992/p/11336723.html
48+
49+
50+
51+
### 提交前的配置项
52+
53+
![提交前的配置](https://img-blog.csdnimg.cn/fcb9af8780484cab9a63310e7d00c06d.png)
54+
55+
#### Alibaba Code Guidelines
56+
57+
安装 `p3c` 插件后,才会有该选项。在提交代码改动之前,如果勾选此选项,则会去扫描代码中不符合 `p3c` 规则中的代码,然后弹窗提示存在可疑代码,此时可以到控制台查看存疑的代码。然后只需要根据控制台中提示的去修改代码即可。
58+
59+
- 代码存疑弹窗
60+
![](https://img-blog.csdnimg.cn/125e2dac822d41639a28a5776dd7ba12.png)
61+
- 控制台中存疑的代码提示
62+
![](https://img-blog.csdnimg.cn/6f7bec02753d4cbba1b651411ea8c79a.png)
63+
64+
#### Reformat code
65+
66+
提交前格式化代码,假设我们在代码中写了如下代码:
67+
68+
```java
69+
int a=3;
70+
```
71+
72+
如果我们在提交前勾选了此选项,提交时 `IDEA` 就会自动对此行代码进行格式化,变成以下的格式,从而大大提高代码可读性。
73+
74+
```java
75+
int a = 3;
76+
```
77+
78+
#### Rearrange code
79+
80+
重新编排代码,IntelliJ IDEA 支持各种复杂的编排设置选项,当我们在 IDEA 中设置好了编码功能之后,这里就可以尝试勾选这个进行自动编排。不过一般没有去做特定的编码功能设置,因此建议不勾选。
81+
82+
#### Optimize imports
83+
84+
优化导包(删除无用的导包)。假如在写代码时一开始引入了 `Scanner` 包,但后续又没有用到,此时勾选此选项 `IDEA` 就会自动将引入的 `Scanner` 包删除。
85+
86+
- 勾选前
87+
88+
```java
89+
package com.demo;
90+
91+
import java.util.Scanner;
92+
93+
public class Main {
94+
public static void main(String[] args) {
95+
System.out.println("Hello World!");
96+
}
97+
}
98+
```
99+
100+
- 勾选后
101+
102+
```java
103+
package com.demo;
104+
105+
public class Main {
106+
public static void main(String[] args) {
107+
System.out.println("Hello World!");
108+
}
109+
}
110+
```
111+
112+
#### Analyze code
113+
114+
勾选该选项后,`IDEA` 会用默认的配置文件去扫描我们所写代码的质量。如果扫描发现问题,则会弹出以下类似的弹窗,此时只要点击 `Review` 就可以对代码中存在问题的地方进行 `Review`,根据所给提示对代码进行修改。
115+
![](https://img-blog.csdnimg.cn/8a087da5e21e41d695a5e0d587ffda72.png)
116+
117+
![](https://img-blog.csdnimg.cn/ba6e3073308b4c5782cb6b6a67299ee4.png)
118+
119+
#### Check TODO
120+
121+
检查代码中存在 `@todo` 注解的地方并给出提示。一般在代码中添加 `@todo` 表示此时代码中还有未完成的功能,此时可以提醒你去补全还未完成的功能代码。
122+
123+
```java
124+
public class Main {
125+
public static void main(String[] args) {
126+
System.out.println("Hello World!");
127+
//@todo
128+
}
129+
}
130+
```
131+
132+
如果我们新增的代码如上,此时如果在提交点前勾选 `Check TODO` 选项,就会弹窗提示。
133+
134+
![](https://img-blog.csdnimg.cn/c4753c81e46245b0906ecbdbf110dac9.png)
135+
136+
此时点击 `Review` 就可以去查看对应分析结果,然后去找到对应 `todo` 所在的代码对它进行补充。
137+
![](https://img-blog.csdnimg.cn/9d9981a80f674fa78093c04f6592c797.png)
138+
139+
#### Cleanup
140+
141+
清除下版本控制系统,去掉一些版本控制系统的错误信息,主要针对 SVN,Git 不适用,一般建议不勾选。
142+
143+
#### Update copyright
144+
145+
如果代码需要版权标识时,需要提前在 `IDEA` 中配置相关版权信息。配置的流程 `settings->Editor->copyright->copyright profiles`,然后添加类似于以下的版权信息:
146+
147+
```java
148+
Copyright(c)2002-2022, xxx 有限公司
149+
项目名称:$project.name
150+
文件名称:$file.fileName
151+
Date:$today
152+
Author:xxx
153+
```
154+
155+
配置完成后,当提交你的代码更改时,勾选该选项可以检查更新版权,这样提交后更改的文件将有它们的版权更新。
156+
157+
#### Perform SonarLint analysis
158+
159+
安装 `SonarLint` 插件后才会有的选项。勾选该选项后,`SonarLint` 会对代码进行检查,发现代码中的一些 bug、漏洞、异味。然后根据控制台中的提示信息对代码进行修改后再次提交,能够一定程度上提高代码质量。
160+
161+
```java
162+
public class Main {
163+
public static void main(String[] args) {
164+
System.out.println("Hello World!");
165+
System.out.println("demo");
166+
int a;
167+
boolean flag = false;
168+
//@todo
169+
}
170+
}
171+
172+
```
173+
![](https://img-blog.csdnimg.cn/cd721721a8ae49f29a62f187d61b7cac.png)
174+
![](https://img-blog.csdnimg.cn/78ad273a718b4258b02b0e280c514ba5.png)
175+
176+
## 提交日志模板化(Git Commit Template)
177+
178+
### 概述
179+
180+
通过使用该插件,能够规范在使用 `IDEA` 提交代码时的注释说明。通过模板化后的日志,便于快速查找,回溯之前的工作。
181+
182+
### 下载安装
183+
184+
1. **下载地址**
185+
186+
> https://plugins.jetbrains.com/plugin/9861-git-commit-template/versions
187+
188+
2. **安装**
189+
190+
> https://blog.csdn.net/m0_46636892/article/details/122116712
191+
192+
### 使用教程
193+
194+
#### 提交信息的模板
195+
196+
```
197+
<type 类型>(<scope 可选作用域>): <subject 描述>
198+
// 空行
199+
<body 可选的正文>
200+
// 空行
201+
<footer 可选的脚注>
202+
```
203+
204+
主要分为三部分:
205+
206+
- Head(`<type 类型>(<scope 可选作用域>): <subject 描述>`
207+
- Body(`<body 可选的正文>`
208+
- Footer(`<footer 可选的脚注>`
209+
210+
#### Head 参数说明
211+
212+
1. **type(必填)**
213+
214+
| 类型 | 英文 | 中文说明 |
215+
| ---------- | :------------------------------------------------------------------------------------------------------ | ---------------------------------------------- |
216+
| `feat` | `A new feature` | 新功能 |
217+
| `fix` | `A bug fix` | `bug` 修复 |
218+
| `docs` | `Documention only` | 文档注释 |
219+
| `style` | `Changes that do not affect the meaning of the code(white-space、formatting、missing semi-colons、etc)` | 不影响代码运行的变动(格式化、去空格等) |
220+
| `refactor` | `A code change that neither fixes a bug nor adds a feature` | 重构、优化(既不增加新功能,也不是修复 `bug`|
221+
| `perf` | `A code change that improves performance` | 性能优化 |
222+
| `test` | `Adding missing tests or correcting existing tests` | 增加测试 |
223+
| `build` | `Changes that affect the build system or external dependencies` | 影响生成构建或外部依赖项的更改 |
224+
| `ci` | `Changes to our CI configuration files and scripts` | 对配置项配置文件和脚本的更改 |
225+
| `chore` | `Other changes that don't modify src or test files` | 其他不影响源码和测试的改动 |
226+
| `revert` | `Reverts a previous commit` | 回退版本 |
227+
228+
2. **scope(可选)**
229+
230+
用户说明此次提交所影响的范围,常见的有数据层、控制层、视图层等,这个需要根据自己的项目来具体定义。
231+
232+
3. **subject(必填)**
233+
234+
此次提交的概括,一般建议不超过 50 字,结尾不加任何标点符号。
235+
236+
#### Body 参数说明
237+
238+
对此次提交的详细描述,可以分为多行,每行建议控制在 72 个字以内,以条目的形式给出,范例如下:
239+
240+
```
241+
- 修复 bug1
242+
- 修复 bug2
243+
```
244+
245+
#### Footer 参数说明
246+
247+
主要用于两种情况:
248+
249+
1. 不兼容的变动,对应具体使用部分图中的 `Breaking changes`.
250+
2. 关闭 `Issue`,对应具体使用部分图中的 `Closed issues`.
251+
252+
#### 具体使用
253+
254+
1. 安装完成后,在代码提交界面会有以下图标,点击进行参数配置。
255+
256+
![](https://img-blog.csdnimg.cn/05b8d9da6c2543f7b5715b5b8b2c43c7.png)
257+
258+
259+
260+
261+
262+
2. 根据自己的需求进行相关配置。
263+
264+
![](https://img-blog.csdnimg.cn/3f00fe384f24410881842d8e05579ca9.png)
265+
266+
![](https://img-blog.csdnimg.cn/5608cf18f6434a369fcde51bb1f44235.png)
267+
268+
269+
270+
271+
3. 完成配置之后,点击右下角的 `ok`,就会自动根据模板生成提交的具体信息,最后进行提交即可,一个自动生成的具体示例如下:
272+
273+
274+
```java
275+
fix(改动生效的范围): 代码改动的简述
276+
277+
代码改动的具体描述1
278+
279+
BREAKING CHANGE: 不兼容的变更
280+
281+
Closes 关闭的issue
282+
```
283+
284+
285+
![](https://img-blog.csdnimg.cn/2bc745e949704c7483e8b3d0079fae99.png)
286+
## 总结
287+
288+
可能屏幕前的你所在的项目组并没有这么多的流程和提交规范,但养成良好的编码习惯总归是好的。代码不仅仅是写给自己看的,一个高手不仅仅是能够实现复杂的功能,能把代码编写得能让人看着简洁清爽也是一种艺术。
289+
290+
好了,今天的文章到此就结束了,感谢大家赏脸阅读。对于文中如果有描述不清的地方,或者有什么建议我改进的建议,欢迎与我讨论交流。

src/md/dev-tools/idea/README.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,4 +23,5 @@ category:
2323
5. [IDEA 教程:不得不知的实用小技巧](2022-02-05-idea-tips.md)
2424
6. [IDEA 教程:创建 Java 入门应用](2022-02-06-java-quick-start-with-idea.md)
2525
7. [IDEA 教程:连接 MySQL 失败解决方案](2022-02-07-connect-mysql-fail.md)
26-
8. [IDEA 教程:Tomcat 控制台乱码解决方法](2022-02-08-tomcat-console-error-code.md)
26+
8. [IDEA 教程:IDEA 代码提交前流程及提交日志模板化](2022-11-24-code-commit.md)
27+
9. [IDEA 教程:Tomcat 控制台乱码解决方法](2022-02-08-tomcat-console-error-code.md)

src/md/java/js/Untitled.md

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,8 @@
11
---
22
title: JS 教程「11」:DOM 节点
3-
icon: javascript
43
isOriginal: true
54
date: 2022-04-24 16:15:00
6-
tag: JavaScript
5+
order: 1
76
index: false
87
category: JavaScript 教程
98
---

0 commit comments

Comments
 (0)