Eclipse作为IDE - 作为Java初学者,你会发现什么?

时间:2009-11-20 15:39:55

标签: java eclipse ide java-ee survey

我正在研究一种解决方案,旨在解决新手程序员在修改代码时遇到的问题,同时修复错误/执行更改请求,以及生产中的代码。我们都知道Eclipse是一个很棒的IDE。代码完成,打开声明,类型层次结构,包浏览器,导航器,查找引用等功能可以帮助人们更快地修复事物,而不是使用像Textpad这样的东西。

如果您是一名新手java程序员并且您正在使用Eclipse IDE,那么您认为Eclipse IDE的哪些方面不太有用/不太直观?如果您是一名经验丰富的程序员,那么新手会为您解决的常见问题是什么?

请忽略与以下相关的问题:域专业知识(商业知识),Infra(测试您的更改等),性能相关(eclipse搜索速度慢等),特定语言的技能级别(将开发人员视为noob)...并且想一种语言 - Java

我在我的小团队中进行了一次本地调查,这里有一些:

  • 使用Eclipse处理编写到运行时提供实现的接口的代码的新手。执行“公开声明”将始终显示一个界面。这有时会令人困惑。
  • Eclipse在开发EJB时并不直观。当然,您知道创建新bean所需要做的就是右键单击并“创建Bean”,但是,一旦创建它,​​就不会显示下一步应该是什么的上下文帮助。例如,生成存根。
  • 当使用实体bean进行数据源映射时,更改某些东西会搞砸整个事物并且eclpise永远不会抱怨/提示。
  • 开发利用Struts的应用程序,eclipse并没有告诉您,当您更改struts-config.xml时,特定的Web流会受到影响。

此时,对我来说,作为有兴趣为我的研究收集意见的人,似乎Eclipse可以使用更多“上下文运行时提示”。

我相信社区会有更多要添加的内容......请添加更多您的负面体验(仅从代码更改的角度来看)。

修改 我想,我的问题过于冗长和令人困惑。我会稍微改写一下并保持简短:

虽然“进行代码更改”(不类似于代码格式化,相关活动,CVS等......比如重构),eclipse IDE的哪些功能你最不喜欢/最讨厌?以下是示例:

  • 修改已写入接口的代码时:'对象实例上的Open Declaration / F3会在运行时提供实现时显示接口'。
  • 使用EJB更改应用时:无上下文帮助
  • 使用MVC更改应用程序时(Spring / Struts):没有关于更改影响的警告。

19 个答案:

答案 0 :(得分:17)

Eclipse缺少:

软件可视化,例如系统复杂性视图[Lanza 2003]

还有Lanza,班级蓝图[Ducasse 2005]

  

Post Scriptum: Eclipse中的软件可视化:X-Ray提供Java项目的系统复杂性视图,http://xray.inf.usi.ch/xray.php(通过@anjaguzziPaul Lammertsma

     
    

Software Visualization

  

然后协同过滤“编辑此方法的其他开发人员,然后再编辑”[Zimmermann 2005]

可浏览示例的集合,以及这些示例级别的自动完成。也就是说,例如,如果你的写作

ByteBuffer buf = file.

并点击自动完成它应搜索代码库和互联网,以获取将文件转换为bytebuffers并在那里插入10-20行的示例。

当然还有我可以编写单元测试的功能,然后IDE会在interwebs中搜索通过测试的类。是的,这可以做到!

这个清单可以继续下去,更多工作的良好起点是过去的程序

这些都在ICSE会议的保护之下。

答案 1 :(得分:5)

对我来说,Eclipse中的大多数新手问题都来自于它的优点之一,它的可配置性和优势。插件结构。

当我需要在Eclipse中更改属性时,我似乎总是花几分钟时间来确定在哪里更改它。示例:更改Java编辑器以插入4个空格而不是选项卡。我们随时欢迎物业中的搜索栏: - )

当我设置项目时,那些以及缺少某些插件的文档总是很有趣。

编辑:您始终可以使用ctrl-T显示实现接口的类。

我要补充的一点是,当我有一个复杂的项目时,我倾向于使用Refresh&项目 - >重建全部*很多“。我使用TortoiseSVN来编写Eclipse之外的东西,因为很多时候这更容易(例如一些重构)。但是,如果我在Eclipse之外修改项目,我*总是“退出Eclipse,并在重新启动时进行完全刷新和构建。否则Eclipse有时会变得非常困惑。

答案 2 :(得分:5)

“新手问题”我已经看到了自己(我已经使用了Eclipse一段时间了,但偶尔会让我“惊讶”)并帮助同事开始使用Eclipse:

  • 它的大而复杂,一开始对某些人来说非常恐怖。似乎人们认为netbeans最初更容易使用。一位同事在VI编辑的同时躲避上帝......
  • 安装插件可能很棘手(查找网站网址,了解插件,为什么“帮助”菜单下的“安装”+“更新”???)
  • Eclipse 3.5 / Galileo的更新速度仍然很慢(但比之前要好得多)。有时很难理解哪些插件只能按名称安装。
  • Mac以外的任何平台 - 窗口菜单下的首选项似乎都不合逻辑?
  • 了解如何整齐地设置项目类路径。设置正确的项目JDK版本。
  • ant / maven构建工具的类路径与eclipse的类路径之间缺乏或意外的交互(当共享类路径等时,ant / maven clean导致Eclipse编译器错误。)。
  • 一开始,观点和(大量)观点令人困惑/压倒一切。哪个有用?如何将视图拖动到所需位置或恢复已关闭的位置?
  • 某些JDK / Eclipse版本组合需要的PermGen空间太多,默认情况下可用,需要一段时间才能诊断。

答案 3 :(得分:4)

我认为Eclipse面临的最大问题(现在仍然面临)是它并不特别了解围绕现代Java开发的标准技术。如果我正在开发一个应用程序,它可能包括以下内容:

  • 弹簧
  • 的Maven
  • JSF / Struts 2
  • 的Subversion
  • JUnit的

我认为Eclipse在提高认知水平的过程中处理这些技术:(因此JUnit会很好,它可以开箱即用; Subversion需要Subclipse,而且它比CVS支持更复杂; JSF需要一些WTP工具来安装; Maven ......你可能最好设置你自己的外部工具命令,而不是信任M2Eclipse,除非它近来变得非常好;而Spring,正如你所说的那样,尝试按住Ctrl键点击一个方法,你几乎肯定会得到一个接口,因为实现隐藏在Spring配置文件后面。)

让所有这些一起玩并检查/编译,然后编译/运行测试/检入是困难的。代码更改本身可能很简单:)

答案 4 :(得分:3)

对我来说,学习有效使用eclipse的最大障碍是了解设置类路径的位置,以及如何确定各个开发阶段(编译,构建,测试)的类路径中包含的内容。很长一段时间我对编译时间,调试配置和运行配置类路径之间的区别感到困惑。然后,如果你将ant扔进混合(它自动创建一个运行配置),它会让新手更加困惑。

答案 5 :(得分:2)

我最近是一个日食的菜鸟,主要做Android和黑莓手机。到目前为止,我想到的一件事就是大量的选项和设置以及它们可以找到的各种地方。例如,如果您安装了插件(比如BlackBerry插件),则可以在常规首选项中找到该设置。或BlackBerry prefs或项目首选项。

这总是一场狩猎。

答案 6 :(得分:2)

据我所知,以下是基本缺失功能:

  • 在结束时显示开始'{''}'开头'{'不在视图中
  • 自动将编辑器与包资源管理器同步
  • 使用键盘转到不同的视图(包浏览器,大纲等)
  • 内联查找,无法打开对话框。
  • 使用键盘转到下一个错误位置
  • 使用键盘转到下一个/上一个结构
  • 一般来说更稳定

这些功能在IntelliJ中非常有用。特别是#1和#5非常有用。

答案 7 :(得分:2)

我发现Visual Studio很容易上手,我尝试点击每个按钮至少一次,并弄清楚整个事情的作用。它被最高级别的单一设计团队所考虑,一切都遵循标准从上到下,或多或少。

然后,我玩Eclipse。从技术角度来看,它充其量只是笨拙。查看首选项对话框;这是一个压倒性的火车残骸,除非你已经确切地知道你在寻找什么,以及开发该功能的开发人员决定称之为。

Eclipse的可配置性取决于您已经知道如何配置它的事实。那里的学习曲线很糟糕,唯一的优点是大多数默认设置都可以开始。

答案 8 :(得分:2)

作为初学者,我没有做EJB或Struts的事情。甚至是数据源映射。所以我认为问题的标题可能有点误导。

我会很感激,当我在调试中点击它时,内置了JadClipse以“查看”库代码。但应该非常清楚,这是“重组代码”,并不意味着被黑客入侵。

其次,需要更加清楚地知道,Shift-F2会为他们提供他们正在查看的任何类/方法的API文档。我知道有太多新手Java程序员只用代码完成来探索他们的API;它们缺少图书馆作者提供的许多有价值的提示。

答案 9 :(得分:2)

一个可以动态生成代码的思维导师,只需单击即可完成项目。

答案 10 :(得分:1)

  • 简单
  • 清晰
  • 稠度

我可能会更详细地写它,但我认为,eclipse是超重的,而且过于依赖于功能 - 而不是易用性。 IMO,这关注初学者和专业人士。

答案 11 :(得分:1)

Eclipse没有Swing组件的可视化设计器。

将其与Visual Studio进行比较,其中:

  • 点击“新表单”
  • 将按钮和文本框拖到表单上,移动它们,添加一些标签
  • 双击按钮,添加一些代码
  • 完成,一个快速申请,向老板展示,获得付款/促销/喝咖啡休息

在Eclipse中,您必须使用Netbeans(即不是Eclipse ...),或使用IBM的SWT,或手动编写Swing表单。

我觉得在Eclipse中为Swing表单提供一个很棒的所见即所得表单设计器会非常好。

答案 12 :(得分:1)

当我第一次尝试使用eclipse时,我绝对讨厌它的复杂性......你必须做一大堆事情才能开始工作。此外,您还可以选择多种方法进行检查,而且并不总是能够自动查看每个按钮的功能。

相反,我开始使用netbeans。方式更直观,更容易处理。检查那里gui ..没有多少按钮,大多数时候你知道按钮的功能,即使你没有java的线索(就像我当时那样)。

当我改回eclipse时(由于netbeans不支持某些功能),使用它似乎要容易得多。所以gui的某些部分可能只是以一种不直观的方式添加,初学者肯定会很难用它。

答案 13 :(得分:1)

我认为所有IDE初学者的问题是与工具链断开连接:编译器如何获取某些源并将其编译为字节码然后使用具有正确配置的类路径的VM运行。

作为一个开发者,我喜欢这个事实我不需要处理这个问题 - 我从来没有发现自己无法做我想要的更复杂的构建配置 - 但它太重要了让初学者了解按下播放按钮时会发生什么。

答案 14 :(得分:1)

VCS集成 - 通常,开发人员也不熟悉合并更改,保持工作副本同步,解决冲突等问题。在Eclipse中通常有几种方法可以实现同样的功能,我曾经多次看到这种情况引起混淆(事实上,我也见过有经验的开发人员;他们知道Subversion但不知道Eclipse,后者试图'隐藏'底层存储库操作。)

答案 15 :(得分:0)

另一个令人困惑的部分是,对于Web开发,需要使用单独的版本!好吧,我根本不喜欢这个,我知道很多人都不喜欢这个。

答案 16 :(得分:0)

Eclipse在标准发行版中缺少Maven Embedded,Maven可以帮助任何用户获得他们的程序所有的jar和更好的库管理。 Netbeans已经有了这个工具。 此外,eclipse错过了使用maven进行hibernate,spring,xfire和tomcat部署的集成工具。

检查此网站http://maven.apache.org/

答案 17 :(得分:0)

我已经提到了Eclipse的所有其他问题,除了一个:它是slooooooooow。他们的目标是证明“Java是慢”的人吗?我猜这与“Eclipse做的一切”有关,但我停止使用它,因为每次点击任何东西都会滞后。更改标签?落后。打开偏好?落后。更改首选项中的标签?落后。这就像使用带有32 Mb内存的Photoshop一样
哦,它非常难看。我希望我能用真正的GTK +集成来实现它。

答案 18 :(得分:0)

android SDK集成充满了jank。 xml布局无法正确呈现。代码完成效果不佳。 IBM肯定需要修复jank。