技术开发 频道

如何选择适合自己和团队项目的Java IDE

  【IT168 技术】每个Java开发人员都需要一个编程编辑器或IDE来帮助编写Java和使用类库和框架。决定哪个编辑器或IDE最适合你取决于几个方面,包括正在开发项目的性质,企业中的角色,开发团队使用的过程,以及作为程序员的水平和技能。其他考虑因素是团队是否对工具进行了标准化,以及个人偏好。

  最常用于服务器端Java开发的三个IDE是IntelliJ IDEA,Eclipse和NetBeans。他们并不是唯一的选择,文中也将提到一些轻量级IDE。

  首先,我在MacBook Pro上全新安装了IntelliJ IDEA Ultimate 2016.2,Eclipse Neon Java EE和NetBeans 8.1 Java EE。并且找了几个开源Java项目,便于在同一个项目中测试所有的IDE。

  你对Java IDE的需求是什么?

  至少,你希望你的IDE支持Java 8,Scala,Groovy和经常使用的任何其他JVM语言。你还希望它支持主要的应用程序服务器和最流行的Web框架,包括Spring MVC,JSF,Struts,GWT,Play,Wicket,Grails和Vaadin。你的IDE应该与开发团队使用的任何构建和版本控制系统兼容,例如Ant,Maven和/或Gradle,以及Git,SVN,CVS,Mercurial或Bazaar。此外,IDE应该能够处理堆栈的客户端和数据库层,支持嵌入式JavaScript,TypeScript,HTML,SQL,JavaServer Pages,Hibernate和Java持久性API。

  最后,你的Java IDE能轻松编辑,构建,调试和测试系统。理想情况下,你不仅需要“smart completion”完成,还需要重构和代码度量。如果你在做测试驱动开发,你需要支持测试框架和stubbing(桩)。如果企业使用工单系统和CI/CD,需要IDE可以连接到它们;如果需要部署容器和云并对其进行调试,那么IDE也可以帮到你。搞清楚你需要什么后,再选择适合你的IDE。

  IntelliJ IDEA

  IntelliJ IDEA是功能和价格都合适的Java IDE,它有两个版本:免费社区版和付费Ultimate版,包涵更多其他功能。

  社区版面向JVM和Android开发。它支持Java,Kotlin,Groovy和Scala,Android,Maven,Gradle和SBT;还有Git,SVN,Mercurial和CVS。用于Web和企业开发的Ultimate版本除了Git,SVN,Mercurial和CVS之外还支持Perforce,ClearCase和TFS;支持JavaScript和TypeScript;支持Java EE,Spring,GWT,Vaadin,Play,Grails等框架;并包括数据库工具和SQL。

  商业版能够进一步提高程序员的生产效率,需要订阅购买。在美国对于年收入为50-100K美元的Java开发人员而言,每年500美元的IDEA订阅购买,通过提升工作效率很快就能获得投资回报,对于初创公司和个人来说,价格很合适;对于学生,教师,则免费版本更为合适。

  IntelliJ IDEA对你的代码大有裨益;满足开发人机工程,内置开发工具和多语言编程。不妨继续深入了解它的功能。

你对Java IDE的需求是什么?
图1.IntelliJ IDEA显示了一些基于对Java代码的类似lint的静态分析的警告和建议,可点击展开。在许多情况下,你还会得到快速修复操作的选择列表。如嵌入式HTML标签的高亮显示,以及从顶部菜单中显示的广泛的功能。

  深入了解代码

  语法着色和简单的代码完成是Java编辑器的基础功能。IDEA不仅仅提供“smart completion”,它还可以弹出在当前上下文中适用的最相关的符号的列表。这些是根据你的个人使用频率进行排名。“hain completion”更深入,显示可通过当前上下文中的方法或getter适用符号的列表。IDEA还完成静态成员或常量,自动添加任何所需的import语句。在所有代码完成后,IDEA尝试猜测运行时符号类型,从中改善其选择,并根据需要添加类转换。

  Java代码通常包含其他语言作为字符串。IDEA可以将SQL,XPath,HTML,CSS或JavaScript代码的片段注入Java String文字。对于这个问题,它可以跨多种语言重构代码;例如,如果你重命名JPA语句中的类,IDEA将更新对应的实体类和JPA表达式。

  当你重构一段代码时,你通常想要做的事情之一是重构该代码的所有重复。IDEA Ultimate可以检测重复和类似片段,并将重构应用于它们。

  IntelliJ IDEA在加载时以及在你输入时分析代码。它提供检查以指出可能的问题(如图1所示),如果你愿意,可以列出对所检测到的问题的快速修复。

  开发人机工程

  IntelliJ设计了IDEA满足开发人员的思路-也就是“being in the zone(专注)”。单击窗口,图1所示的项目工具窗口就从视图中消失,以便你可以专注于代码编辑。在编辑时,你想要做的一切都有一个键盘快捷键,包括在弹出窗口中调出符号定义。虽然学习快捷方式需要时间和实践,但习惯成自然。即使不知道快捷方式,开发人员也可以轻松快速地学会使用IDEA。

  IDEA调试器的设计特别好。变量值直接显示在编辑器窗口中,位于相应的源代码旁边。当变量的状态改变时,其高亮颜色也改变。

  内置开发工具

  IntelliJ IDEA为大多数主要版本控制系统提供统一的接口,包括Git,SVN,Mercurial,CVS,Perforce和TFS。你可以在IDE中进行所有更改管理。当测试IDEA时,我希望源代码块中的最后一次更改将作为注释显示在编辑器窗口中(就像在Visual Studio中一样);事实证明IntelliJ IDEA提供了一个插件。

  IDEA还集成了构建工具,测试运行器和覆盖率工具,以及一个内置的终端窗口。IntelliJ没有自己的分析器,但它通过插件支持多个第三方分析器。这些包括由前IntelliJ主要开发人员创建的YourKit和作为NetBeans分析器的重新包装版本的VisualVM。

  当在没有源码的类中调试Java的难题时,可能会很痛苦。IDEA自带了一个反编译器。Java服务器编程通常涉及使用数据库,因此IDEA Ultimate包括SQL数据库工具。如果需要更多,则可以使用专用的SQL IDE(DataGrip)作为订阅购买的一部分,只比IDEA Ultimate订阅贵一点。

  IntelliJ IDEA支持所有主要的JVM应用程序服务器,并且可以部署到服务器并在其中调试。IDEA还通过添加Docker工具窗口的插件支持Docker。IntelliJ提供了很多插件,可访问https://plugins.jetbrains.com/?idea获取。

  多语言编程

  IDEA扩展了对Spring,Java EE,Grails,Play,Android,GWT,Vaadin,Thymeleaf,Android,React,AngularJS等框架的编码支持。不是所有的都是Java框架。除了Java之外,IDEA还可以理解许多其他语言,包括Groovy,Kotlin,Scala,JavaScript,TypeScript和SQL。如果你需要更多,目前有大约19个IntelliJ语言插件,包括R,Elm和D等。

0
相关文章