您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息
免费发信息
三六零分类信息网 > 昌都分类信息网,免费分类信息发布

三大高手,哪个JAVA IDE最适合你?

2022/12/17 8:37:22发布51次查看
每个java开发人员都需要一个代码编辑器或ide,可以帮助我们在编写java、使用类库和框架的时候处理一些复杂、麻烦的场景,最常见的就是纠错。哪个编辑器或ide最适合你,取决于几件事情:项目的性质,你在组织中的角色,团队使用什么开发过程,程序员的水平和技能。另外考虑的是团队是否对工具进行了标准化,以及个人喜好。
最常用于服务器端java开发的三个ide是intellijidea,eclipse和netbeans。然而,这些并不是唯一的选择,也是时候也可以考虑一些轻量级的ide。
下面通过在macbookpro上,对几个开源项目使用intellijideaultimate2016.2,eclipseneonjavaee和netbeans8.1javaee对比一下三种ide。
基本问题:你需要javaide帮你做什么事情
首先,你可能需要ide支持java8,scala,groovy,其他jvm语言。还需要支持主要的应用服务器和最流行的web框架,包括springmvc,jsf,struts,gwt,play,wicket,grails和vaadin。ide应与开发团队使用的任何构建和版本控制系统兼容,例如ant,maven和/或gradle,以及git,svn,cvs,mercurial或bazaar。
更多一点的要求,包括能处理客户端和数据库层,支持嵌入式javascript,typescript,html,sql,javaserverpages,hibernate和javapersistenceapi。
最后,javaide应该可以让你轻松编辑,构建,调试和测试系统。理想情况下,不仅可以完成智能代码,还可以重构和做代码质量检测。如果你采用了测试驱动的开发模式,ide还需要支持你的测试框架。如果你的团队使用ci或bug跟踪系统,则ide最好连接到它们。如果你需要部署到容器和云上并进行调试,则ide应该对此提供帮助。
intellijidea
intellijidea是首屈一指的javaide,两个版本:免费的社区版和付费的终极版。
社区版可用于jvm和android开发。支持java,kotlin,groovy,scala;android;maven,gradle,sbt;git,svn,mercurial和cvs。终极版用于web和企业开发的除了git,svn,mercurial和cvs之外,还支持perforce,clearcase和tfs;javascript和typescript;javaee,spring,gwt,vaadin,play,grails等框架;还有数据库工具。
商业的终极版通过提高程序员的生产力来获得收益。对于学生,老师和开放源代码开发者而言都是免费的。
intellijidea深入了解你的代码,开发人员的人体工程学,有内置的开发人员工具,通晓数种语言的编程经验。
intellijidea用类似lint的方式对java代码做了静态分析,显示了一些警告和建议。可以通过点击它们展开这些,如下所示。在许多情况下,还可以获得如何快速修复操作的选择列表。
深入分析代码
java编辑器通常都会给出语法着色和简单的代码完成提示。除此之外,idea还能提供“智能完成”,这意味着它可以弹出在当前上下文中的最可能的相关符号或操作列表,并且按你的个人使用频率排列。更智能的是“链式完成”,它显示的是适合当前上下文的方法或getter列表。idea还能帮助完成静态成员或常量,import语句的导入。
java代码经常以字符串的形式,把其他语言包括在代码中。idea可以将sql,xpath,html,css或javascript代码的片段注入java字符串文字。重构的时候,idea也能充分考虑到这些表示其他语言的字符串。比如,如果在jpa语句中重命名一个类,idea也能更新相应的实体类和jpa表达式。
当重构一段代码时,如果我们在其他地方也有这段代码的拷贝的话,通常我们也需要对这些拷贝进行重构。ideaultimate(终极版)可以检测重复和类似的片段,并一次性将同样的的重构应用于这些拷贝。
intellijidea在读取代码以及你输入代码的时候,就在分析这些代码。它提供了一些指示来指出可能的问题。如果需要的话,也会列出快速修复这些问题的建议列表。
开发人员人体工程学
intellij设计idea的时候,充分考虑了开发人员的工作流程中很重要的一点,也就是“在区域中”。上图所示的项目工具窗口通过简单的鼠标点击就会从视图中消失,你可以专注于代码编辑器。编辑时要做的一切都具有键盘快捷键,包括在弹出窗口中显示一些符号定义。学习捷径确实需要时间和实践当然不知道快捷方式,开发人员也可以轻松快速地学习使用idea。
idea的调试器设计非常友好。变量值在编辑窗口的右边展示,靠近相对应的代码。当时某个变量状态改变的时候,会高亮显示。
idea还集成了构建工具,单元测试的运行和覆盖率检查工具,以及内置的终端窗口。intellij没有自己的性能分析工具,但它通过插件来支持。这些包括由前intellij主要开发人员创建的yourkit和visualvm。intellijidea为大多数的版本控制系统提供了接口,包括git,svn,mercurial,cvs,perforce和tfs。你可以在ide中管理所有的代码变化。intellijidea还有个插件,可以把源代码块中的最后一次更改将作为注释显示在编辑器窗口中。
intellijidea支持所有主流的jvm应用服务器,并且可以在服务器中进行部署和调试,为enterprisejava开发人员解决一个痛点。idea通过添加docker工具窗口的插件来支持docker。
多语言编程
idea已经扩展了针对spring,javaee,grails,play,android,gwt,vaadin,thymeleaf,android,react,angularjs等框架的编码协助。并非所有这些都是java框架。除java之外,idea也能理解许多其他语言,包括groovy,kotlin,scala,javascript,typescript和sql。如果您需要更多的话,目前有大约19种intellij语言插件,包括r,elm和d的插件。
eclipse
eclipse是最流行的javaide,免费且开源。主要用java编写,但同时它的插件架构允许eclipse以其他语言进行扩展。eclipse起源于2001年,是一个ibm项目,目的是开发一个可移植的基于java的ide来替代基于smalltalk的ibmvisualage系列ide。该项目的重要目标是针对microsoft,要打败微软在工具市场上的领导地位,引领大家到java开发上来,因此要做的事情是要吞噬微软的市场,这就叫“eclipse”。在中文里面,eclipse作名词用就是“月蚀”,“日蚀”的意思。做动词讲,就是“使黯然失色”,“蒙蔽”的意思。
java的可移植性帮助eclipse成功实现跨平台,eclipse可以运行在linux,macosx,solaris,windows等。java标准窗口小部件工具包(swt)部分负责了eclipse的外观ui。同样地,eclipse也是它的性能依赖于jvm。早年因为硬件的低性能和jvm低版本,eclipse有运行慢的名声。但即使在今天,还是可以感觉到慢,特别是当装了许多插件再进行更新的时候。
eclipse中的一部分开销是因为内置的增量编译器。每当它加载一个文件,并且每当你更新你的代码,它就会运行。其实总的来看,这是一个很好的事情,因为但你在输入代码的时候可以及时提供错误提示。
一个eclipsejava项目在独立于构建系统之外,维护着项目的内容模型。这个模型包含有关java的类层次结构,引用和声明的信息。通过这个模型可以支持多个编辑和导航助手以及大纲视图。
eclipse安装的时候,通常需要安装很多其他的包。包括一个最小化的eclipsesdk和必要的插件。安装插件的时候很容易就会引入冲突,特别是新人。
从左到右,我们在eclipse工作台中看到了四个窗格:packageexplorer、java编辑器、java类大纲和问题列表。这个图中加载到eclipse中的项目是junit测试框架。窗格可以很容易地重新排列。
编辑、浏览、重构、调试
第一次使用eclipse的人可能会感到困惑。你的第一个任务是适应eclipse的工作空间、透视图和视图的概念体系,这些概念又跟你安装的插件有关。比如java服务器开发,你可能使用java,javaee,浏览视图;packageexplorer视图;调试透视图;团队同步视角;web工具;数据库开发视图;数据库调试视图。
插件生态系统是eclipse的优势之一,也是有时候造成问题的原因之一。eclipse市场中目前包含1700多个解决方案,提供了数以千计的插件。这些插件可能会,也可能不会像期望的那样工作(因为彼此的冲突)。尽管如此,eclipse插件仍然支持超过100种编程语言和近200个应用程序开发框架。大多数主流的java服务器也支持;如果你在eclipse定义一个新服务器连接,你会看到一个供应商列表。下面你会发现大约30个应用服务器,包括9个版本的apachetomcat。商业公司倾向于把他们的产品在一起。例如在redhatjboss中间件下面只有一个条目,包括wildfly,eap服务器工具以及jboss。
在eclipse中,通常有不止一种方法来完成一个任务。例如,你可以使用packageexplorer或java浏览视图来浏览代码。选择哪个方式取决于你自己的体验感受。
java搜索支持查找java包、类型、方法、字段。您还可以使用快速访问搜索,并使用快速视图来弹出类大纲之类的内容。
添加方法和生成类都有错误注释和内容辅助支持(其实其他两个ide也支持)。可以从代码模板生成常见的代码模式,而eclipse可以自动生成和组织import语句。在eclipse中,重构支持23个操作,从常见的重命名操作到更晦涩的转换,从martinfowler的书中可以得到。重构不仅可以交互式地执行,还可以从重构脚本中进行。
eclipse支持本地和远程调试(其实其他两个ide也支持),假设您使用的是支持远程调试的jvm。调试的过程是标准的方式:设置断点,然后在调试视图的一个选项卡中查看变量。
eclipse提供了丰富的帮助和文档。但经常会发现,文档中的图片可能并不匹配当前的版本,或者快捷键跟帮助中说的不太一样。这可能是开源项目的常见问题:文档会延迟几个月甚至几年才更新。eclipse的生态系统非常庞大,所以在文档及时性上问题不小。
netbeans
netbeans的履历挺完整的。最早是一个大学生项目,于1996年在布拉格诞生。在1997年成为一个商业产品,在1999年被sun收购,然后在2000年开源。运行在windows、macosx、linux和solaris上。还有一个可移植的子集,可在支持java的其他系统上运行。它的javaee发行版本包含javascript和html支持、glassfish和tomcat,不支持php,c/c++/fortran,groovy。在“all”下载包中有grails。netbeans也有插件,比eclipse少,但是不像eclipse的插件,netbeans的插件不太可能相互干扰。
oracle仍然在管理和贡献netbeans开放源码项目,oracle认为netbeans是java8的官方ide。(但是whocare?)
netbeans确实对java8有很好的支持,并且可以将旧代码转换为基于java8。它的编辑器、代码分析器和转换器可以帮助您升级您的应用程序,使用新的java8语言结构,如lambda、函数操作和方法引用。netbeans8中的javascript插件改进了对node.js,以及一些新的javascript工具的支持,如gulp和mocha,还改进了对javascriptnashorn引擎的支持。
这是netbeans基于maven的项目,与intellijidea在图里打开的是同一个项目。请注意上下文菜单和它的重构子菜单中的功能。
“检查与变换”工具使你能够在代码库中运行检查,同时自动修复代码。但你最好在执行自动修复之前,确保已经检查了所有代码,并成功运行所有的单元测试。被自动“修复”可能会导致代码被还原或修复成你可能不期望的结果。
构建、调试、调优
netbeans对maven和ant有很好的内置支持,还有一个gradle的插件。已有的maven项目现在被视为“本地”项目,这意味着只需打开它们,而不是导入它们。netbeans还包含一个maven依赖关系的性感(有用的)图形视图。
能感知语言的netbeans编辑器在你输入代码的时候会检查错误,并通过弹出窗口的文档和智能的代码辅助完成功能来帮助你。netbeans在做检查和给予提示的时候比eclipse的停顿更少,比intellijidea稍微多一些。netbeans还提供全面的重构工具,以允许你重建代码而不会中断代码;执行源代码分析;并提供丰富的提示,以帮助你快速修复或增强代码。netbeans包含一个用于swinggui的设计工具,以前称为“projectmatisse”。
比较三大javaide
多年来,我个人依次使用了eclipse、netbeans和intellij。每次换了ide并熟悉之后,我都觉得我已经提高了工作效率。甚至有一次,我以为我已经坚定地转向intellij。然而,有时我不得不返回另一个javaide。比如eclipse曾经是唯一支持android的ide开发。(目前官方androidide,androidstudio是基于intellijidea。)
我有一些全职的java程序员朋友,他们都声称使用了这三大ide中的每一个。intellijidea的用户特别忠诚,就像忠诚于visualstudio的c++和c#程序员那样。他们声称只需要几周时间,生产率增长节约的成本就足够支付一年的授权费用了。netbeans和eclipse用户对他们的选择也是非常忠诚的,他们中的一部分人想不明白为什么有人会愿意为intellij付费。所以,程序员其实是很固执的。
推荐java新人不要用eclipse,尽管它是最受欢迎的javaide,却有最陡峭的学习曲线。在日常使用和维护ide随时都有可能出现一些混乱或困扰。许多透视图和视图提供了各种各样的功能,但是从一个角度切换到另一个视角可能会让你感到不适应,干扰你的思路。有些从eclipse转intellij的人宣称intellij没有eclipse用起来好用,其实只是操作习惯不同带来的不适而已,特别是快捷键。
eclipse拥有所有ide中最大的插件生态系统。但是很容易因为安装了一组不兼容的插件,变得不可用。有时候不得不删除eclipse,用一个正式的发行包重新开始。
netbeans对大多数人来说都很好,并且有一个很好的性能分析工具。我有时候会使用它,但我还是更喜欢intellijidea终极版。
如果是没有钱的屌丝,建议在netbeans和intellijidea�...
昌都分类信息网,免费分类信息发布

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录