首页 > 编程笔记

IntelliJ IDEA是什么?

改变习惯并不是一件十分困难的事情。在使用 IntelliJ IDEA 进行项目开发之前,笔者一直是 Eclipse 系列的忠实用户,但是在使用了 IntelliJ IDEA 之后,发现这款开发工具的确十分出色,而且这种转变也没有预想中那么困难。

虽然最先接触的工具决定了开发者的使用习惯,但是依然可以做一些尝试,因为好的东西总是会被越来越多的人所接受。相信在使用过后,你不仅会感受到这款工具所带来的便捷与强大之处,也将体会到更多开发的乐趣。

IntelliJ IDEA 图标
图1:IntelliJ IDEA 图标

IntelliJ IDEA 简称 IDEA,是 Java 语言的集成开发环境,在业界被公认为是最好的 Java 开发工具之一。

IntelliJ IDEA 的官方地址是:https://www.jetbrains.com/idea/

IntelliJ IDEA 是 JetBrains 公司的主要产品,除了 IntelliJ IDEA 之外,像 PHPStorm、PyCharm、WebStorm 等优秀的开发工具也是这家公司的产品。

其中 WebStorm 被称为“最智能的 JavaScript IDE”,在前端开发工具中十分受欢迎。而 PyCharm 是一种 Python IDE,带有一整套可以帮助用户在使用 Python 语言开发时提高其效率的工具。此外,该 IDE 提供了一些高级功能,以用于支持 Django 框架下的专业 Web 开发。

还有静态编程语言 Kotlin,它可以被编译成 Java 字节码,也可以被编译成 JavaScript,方便在没有 JVM 的设备上运行。除此之外,还有很多十分出色且实用的工具,这些都是 JetBrains 公司的产品。

对于曾经使用 Eclipse 进行软件项目开发的用户来讲,IntelliJ IDEA 带来了一种全新的项目管理方式。例如,在 Eclipse 中是按照工作空间(workspace)与工程(project)的方式进行项目结构的管理,而在 IDEA 中,则使用了工程(project)与模块(module)的概念。

虽然它们都使用了父集与子集的管理关系,但是在 IntelliJ IDEA 中,模块既可以作为一个独立的项目运行,也可以在需要的时候成为其他项目的组件,从而自由地实现集成与加载。最主要的是,组件化不仅可以避免单体项目的冗余,还可以提高组件功能的复用率,从而节省开发成本。

IntelliJ IDEA 目前已经成为众多企业进行 Java 项目开发的首选工具,它有着众多优秀的特性,不断地吸引更多的开发者加入其开发阵营。

下面简要说明 IntelliJ IDEA 的优秀特性。

1. 优秀的特性

1) 强大的重构功能

IntelliJ IDEA 有着丰富而复杂的重构技巧,可以帮助开发者更好地进行代码的重构管理。

例如方法的抽取与内联操作,可以帮助用户更好地组织代码结构与逻辑,在代码过于复杂或冗长的情况下进行有效精简管理,或是在代码片断过多的情况下重新组织其结构以实现更好的可读性。

值得一提的是,在对代码结构进行有效管理的同时,也可以间接地影响程序的性能,尤其是在大规模应用中体现得更加明显。如虚拟机 HotSpot 的编译操作,在方法长度超过 8000 字节时默认不会进行 JIT 编译,从而导致虚拟机运行时性能下降。

2) 代码智能选取

代码是具有渐进层次的。

IntelliJ IDEA 可以在不同的层次下选取不同部分的内容,从而实现选取范围的不断变化及调整,如选取某种方法、某个循环或是从变量范围向类范围扩充选取,反之亦然。

IntelliJ IDEA 提供了基于语法的选择,通过配合快捷键,可以实现选取范围的不断扩充、缩小或调整,这种操作方式在进行代码重构的时候显得尤为方便。

3) 编码辅助

与 Eclipse 类似,IntelliJ IDEA 对类中的 toString()、hashcode()、equals() 及属性对应的 get()/set() 方法等都提供了编码辅助,用户不进行任何输入就可以实现代码的自动生成,从基本方法的编码中解放出来。

4) 历史记录功能

在不使用版本控制管理系统的情况下,通过使用 IntelliJ IDEA 中的历史记录功能,可以查看任何工程中文件的历史变更记录,从而可以很容易地根据时间点将其恢复。

5) 丰富的快捷键

IntelliJ IDEA 提供了丰富的快捷键以帮助用户简化操作,用户可以根据需要自定义或重定义需要的快捷键,从而可以快速进行程序的定位、编辑与生成工作。

6) 丰富的导航模式

IntelliJ IDEA 提供了丰富的导航模式,以便在不同的位置、层次间自由移动。通过导航栏或快捷键,用户可以快速到达指定的文件与位置。结合书签的使用,可以实现不同方法或位置间的快速跳转。

7) 智能编辑与检查

IntelliJ IDEA 可以在编码时智能检查类中的方法,当实现方法时可根据情况自动完成代码输入,从而减少代码的编写工作,或是检测开发者的意图并提供建议,帮助开发者快速完成代码的开发与编写工作,还能够对代码进行自动分析,检测不符合规范或存在风险的代码并予以显示和提示。

在结合外部插件(如阿里巴巴的代码规范检查插件)后,能够更好地对项目和代码进行有效性检测,从而提升代码安全性并排除不安全或无效的操作。

8) 模板管理

丰富的自定义与预置模板可以更好地对频繁使用的代码进行抽象封装,从而在使用时避免重复性地开发。

9) 多种编辑模式

IntelliJ IDEA 支持多种编辑模式。如列编辑模式,这种模式的实现仅仅需要一个快捷键即可完成,从而提高编码效率。

还有许多新模式,如禅模式可以消除干扰并帮助开发者将注意力完全集中于代码上,这种模式结合了免打扰模式和全屏模式。

LightEdit 模式允许在简单的编辑器窗口中打开文件而无须创建或加载项目,这也是对开发者希望将 IntelliJ IDEA 作为通用文本编辑器意愿的回应。

2. 构建工具集成

Maven 是笔者在 IntelliJ IDEA 下使用较多且喜欢的构建工具,它不仅为项目构建带来了极大便利,而且也为程序的依赖资源提供了有效的一致性管理。

在多环境开发与部署的条件下,Maven 可以轻松地实现不同环境间的自由切换,如测试环境、联调环境、灰度环境与生产环境,为项目测试、运行与部署提供了可靠的保证。

3. 版本管理集成

IntelliJ IDEA 提供了对版本管理的有效集成,如目前最为流行的版本控制系统 Git。

通过使用 Git 进行版本控制与管理,不仅去除了传统版本控制系统中的中心节点,方便地在任意一台机器或数据节点上对程序进行管理,还能够在多人参与的大规模项目开发中,协调不同的组织机构或个人,从而完成既定目标下的项目开发。

同时,与部署工具(如 Jenkins)的有效集成,可以实现不同节点下项目的一键发布,在节省人力资源的同时,极大地提高了操作的准确性,从而避免人工失误带来的损失与影响。

4. 总结

简而言之,IntelliJ IDEA 是一款功能极其强大的软件开发工具。当然,在其强大的同时伴随着的是对资源的消耗,所以在一定程度上来讲,它是一款重量级的软件开发工具。

推荐阅读