Seven's blog

你不会找到路,除非你敢于迷路

0%

前言

IntelliJ IDEA 提供了强大的插件系统,并且有着完善的插件生态。

成千上万追求极致的开发者们为 IDEA 开发了不计其数的插件,可以极大程度地帮助开发者提升开发速度、代码质量、以及开发的舒适度等等。

本文收集了最受开发者喜欢的一些插件,罗列至此,希望能够对你有所帮助。

插件的安装和卸载章节被我放在了文章较后的位置,如果你需要查看这些内容,翻看文章后面的 安装卸载 章节即可。

精选插件

Rainbow Brackets

这款插件名为彩虹括号,可以帮助我们更好地匹配括号和定位代码块。
主要功能包括:

  • 使用不同颜色渲染多层嵌套的括号;
  • 通过高亮显示帮助我们更好地定位代码块(ctrl + 鼠标右键单击 触发);

idea-plugin-rainbow-brackets-highlines

阅读全文 »

IDEA 的设置项中提供了 Live Templates 和 File and Code Templates 的设置。其中:

  • Live Templates 用于配置方法注释模板和代码模板,这类模板需要在写代码的过程中通过关键字手动触发;
  • File and Code Templates 用于配置文件模板,新建文件时 IDEA 会自动填入我们配置的模板内容。常用于配置类注释、接口注释等。
阅读全文 »

前言

之前接触过的项目大都是单体应用,各应用之间有功能重合但无代码共用。同样的功能,要么重复开发,要么代码拷贝,开发繁琐且效率低下。一但在多个应用中均有使用的相同的代码出现了 bug,开发人员更是要在多个应用中逐个修复,劳神伤身。

故引入模块化开发概念,把相对独立的功能抽离成组件开发,完成之后再组合到一起服务业务。一来开发有了积淀,新项目不必从零开发;二来 bug 的修复也会简单很多,只需修复一次,升级版本即可。提高了工作效率,才会有更多的时间去做技术研究和价值创造。

简单查询了使用 Intellij IDEA 进行 maven 多模块项目的创建过程,只是模块化开发中很小的一部分,记录于此,用以备忘。

阅读全文 »

前言

碍于各种复杂的网络环境,有些情况下我们并不能直接访问 SSH 服务器。

这时,网络代理和 SSH 隧道就成了救命稻草。

本文记录了通过网络代理和 SSH 隧道连接远程服务器的几种方法,希望对你有所帮助。

稻草堆

使用 SSH 隧道连接服务器

常用于跳板机场景。

1
ssh ${ssh-user}@${ssh-host} -o ProxyCommand="ssh ${jump-host-user}@${jump-host} -p ${jump-host-port} -W %h:%p"

SSH + ncat 使用 HTTP(s) 代理连接服务器

  1. 安装 ncat

    1
    sudo apt install ncat
  2. 通过代理连接远程服务器

    1
    ssh ${ssh-user}@${ssh-host} -o ProxyCommand="ncat --proxy ${proxy-ip}:${proxy-port} --proxy-type http --proxy-auth ${proxy-account}:${proxy-password} %h %p"

SSH + ncat 使用 Socks 代理连接服务器

  1. 安装 ncat

    1
    sudo apt install ncat
  2. 通过代理连接远程服务器

    1
    ssh ${ssh-user}@${ssh-host} -o ProxyCommand="ncat --proxy ${proxy-ip}:${proxy-port} --proxy-type socks5 --proxy-auth ${proxy-account}:${proxy-password} %h %p"
阅读全文 »

前言

本文通过两种方法讲述了 Java 如何清空控制台输出,达到类似 Linux 中 top 命令的效果。

两种方法均在 Linux 环境中测试通过,Windows 环境请自行测试,理论可行。

下列代码需要在控制台执行才会有清除控制台效果,在 IDE 中执行无效。

使用 ASCI 控制码清空控制台

通过输出 ASCI 控制码清空控制台,代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
/**
* ConsoleClear
*
* @author seven
* @date 2021-04-14 21:49
*/
public class ConsoleClear {
public static void main(String[] args) {
for (int i = 0; i < 100; i++) {
System.out.println(i);
}
// 清空控制台并把光标停留在起始位置
System.out.print("\033[H\033[2J");
// 效果同上
// System.out.print("\033[0;0H\033[2J");
System.out.fulsh();
}
}

另外,ASCI 控制码还可以实现前景色、背景色、下划线、消隐、闪烁效果的设置以及光标控制,具体方法请阅读参考文档。

阅读全文 »