16

我正在研究一种解决方案,旨在解决新手程序员在“修改代码”时遇到的问题,同时修复错误/执行更改请求,在生产中的代码上。众所周知,Eclipse 是一个很棒的 IDE。与使用 Textpad 之类的东西相比,代码完成、打开声明、类型层次结构、包资源管理器、导航器、查找引用等功能可以帮助人们更快地修复问题。

如果您是新手 Java 程序员并且您正在使用 Eclipse IDE,您认为 Eclipse IDE 的哪些方面不太有用/不太直观?如果您是一位经验丰富的程序员,新手希望您为他们解决哪些常见问题?

请忽略与以下相关的问题:领域专业知识(业务知识)、基础设施(在哪里测试您的更改等)、性能相关(eclipse 搜索速度慢等)、特定语言的技能水平(将开发人员视为菜鸟)。 ..想想一种语言——Java

我在我的小团队中进行了本地调查,以下是一些:

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

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

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

编辑: 我想,我的问题太冗长和令人困惑。我要改写一下并保持简短:

在“进行代码更改”(不类似于代码格式化、与基础设施相关的活动、CVS 等...说重构之类的东西)时,您最不喜欢/讨厌 Eclipse IDE 的哪些功能?以下是示例:

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

19 回答 19

17

Eclipse 中缺少的是:

软件可视化,例如 System Complexity View [Lanza 2003]

还有 Lanza,类蓝图[Ducasse 2005]

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

软件可视化

然后协同过滤“之前编辑过这个方法的其他开发者也编辑过” [Zimmermann 2005]

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

ByteBuffer buf = file.

并点击自动完成,它应该在代码库和互联网上搜索将文件转换为字节缓冲区并在那里插入 10-20 行的示例。

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

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

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

于 2009-11-27T12:24:01.873 回答
5

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

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

当我建立一个项目时,这和一些插件缺乏文档总是很有趣。

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

我要补充的一件事是,当我有一个复杂的项目时,我倾向于使用 Refresh & Project->Rebuild All *a lot"。我使用 TortoiseSVN 来处理 Eclipse 之外的东西,因为很多时候这更容易(例如一些重构)。但是,如果我在 Eclipse 之外修改项目,我“总是”退出 Eclipse,并在我重新启动它时进行完全刷新和构建。否则 Eclipse 有时会变得非常混乱。

于 2009-11-20T17:38:13.380 回答
5

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

  • 它庞大而复杂,一开始对某些人来说非常吓人。似乎人们最初认为 netbeans 更容易使用。一位同事向 VI 编辑器求助了一阵子……
  • 安装插件可能很棘手(查找站点 URL、插件意识、为什么“帮助”菜单下的“安装”+“更新”???)
  • Eclipse 3.5/Galileo 的更新仍然很慢(但比以前好得多)。有时仅凭名称很难理解要安装哪些插件。
  • 除了 Mac 之外的任何平台 - 窗口菜单下的首选项似乎不合逻辑?
  • 了解如何巧妙地设置项目类路径。设置正确的项目 JDK 版本。
  • ant/maven 构建工具的类路径与 eclipse 的类路径之间缺乏或意外的交互(当类路径被共享时,ant/maven clean 会导致 Eclipse 编译器错误等)。
  • 视图和(大量)观点起初令人困惑/不知所措。什么时候有用?如何将视图拖到所需位置或恢复已关闭的视图?
  • 一些 JDK/Eclipse 版本组合需要太多的 PermGen 空间而不是默认可用空间,需要一段时间才能诊断。
于 2009-11-24T23:50:47.307 回答
4

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

  • 春天
  • 马文
  • JSF/Struts 2
  • 颠覆
  • JUnit

我认为 Eclipse 处理这些技术的意识水平越来越高:(所以 JUnit 会很好,它开箱即用;Subversion 需要 Subclipse,而且它比 CVS 支持更灵活一些;JSF 需要安装一些 WTP 工具;Maven ...您可能最好设置自己的外部工具命令而不是信任 M2Eclipse,除非它最近变得更好;而 Spring,正如您所说,尝试 ctrl-clicking 一个方法,您将几乎肯定会得到一个接口,因为实现隐藏在 Spring 配置文件后面)。

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

于 2009-11-26T10:14:49.570 回答
3

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

于 2009-11-20T15:59:01.470 回答
2

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

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

其次,需要让新手更加了解 Shift-F2 将为他们提供他们正在查看的任何类/方法的 API 文档。我认识太多的 Java 新手程序员,他们探索他们的 API 只不过是代码完成。他们错过了图书馆作者提供的许多有价值的提示。

于 2009-11-20T15:47:28.967 回答
2

一种即时生成代码的读心器,只需单击一下即可完成项目。

于 2009-11-27T18:39:28.693 回答
2

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

然后,我玩 Eclipse。用技术术语来说,它充其量只是简陋。查看首选项对话框;这是一个压倒性的火车事故,除非您已经确切地知道您在寻找什么,以及从事该功能的开发人员决定将其命名为什么。

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

于 2009-11-29T04:41:38.320 回答
2

据我所知,这是基本的缺失功能:

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

这些功能在 IntelliJ 中运行良好。尤其是#1 和#5 真的很有用。

于 2009-11-29T05:13:16.357 回答
2

我最近是个 eclipse 的菜鸟,主要是在做 Android 和 BlackBerry 的东西。直到今天我还没有想到的一件事是大量的选项和设置以及它们可以在不同的地方找到。例如,如果你安装了一个插件(比如 BlackBerry 插件),该设置可能会在一般首选项中找到或 BlackBerry 首选项或项目首选项。

这总是一场狩猎。

于 2009-11-29T05:22:54.350 回答
1

VCS 集成——通常开发人员对合并更改、保持工作副本同步、解决冲突等也是新手。在 Eclipse 中通常有几种实现相同目标的方法,我已经多次看到这会导致混淆(实际上,我也曾在经验丰富的开发人员那里看到过这种情况;他们知道 Subversion 但不知道 Eclipse,而后者试图“隐藏” ' 底层存储库操作)。

于 2009-11-20T16:29:19.807 回答
1

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

作为一个开发人员,我喜欢我不需要处理这个事实——而且我从来没有发现自己无法在更复杂的构建配置方面做我想做的事情——但是对于初学者来说理解按下它时发生的事情太重要了播放按钮被忽略。

于 2009-11-20T16:30:16.107 回答
1

当我第一次尝试使用 Eclipse 时,我绝对讨厌它的复杂性。你必须做很多事情才能开始工作。此外,您还可以检查许多选项,并且并不总是自我解释每个按钮的作用。

相反,我开始使用 netbeans。方式更直观,更容易处理。检查那里 gui .. 没有太多按钮,而且大多数时候即使您不知道 java 的任何线索(就像我当时所知道的那样),您也知道按钮的作用。

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

于 2009-11-22T12:35:13.917 回答
1
  • 简单
  • 清晰度
  • 一致性

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

于 2009-11-27T11:43:15.607 回答
1

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

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

  • 点击“新表格”
  • 将按钮和文本框拖到表单上,移动它们,添加一些标签
  • 双击一个按钮,添加一些代码
  • 完成,一个快速的应用程序,展示给老板,获得报酬/晋升/茶歇

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

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

于 2009-11-30T06:42:30.110 回答
0

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

于 2009-11-20T17:50:43.490 回答
0

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

检查这个网站http://maven.apache.org/

于 2009-11-30T07:46:08.283 回答
0

我在 Eclipse 中遇到的所有其他问题都已经提到过,除了一个:它太慢了。他们的目标是证明“Java 很慢”的人是对的吗?我猜这与“Eclipse 无所不能”有关,但我停止使用它,因为每次单击任何内容时它都会滞后。换标签?落后。打开偏好?落后。更改首选项中的选项卡?落后。这就像使用具有 32 Mb 内存的 Photoshop。

哦,它非常丑陋。我希望我能通过真正的 GTK+ 集成来获得它。

于 2009-11-30T07:53:43.280 回答
0

android SDK 集成充满了卡顿。xml 布局无法正确呈现。代码完成不能很好地工作。IBM 肯定需要解决这个问题。

于 2010-08-20T08:38:16.177 回答