【问题标题】:Eclipse as an IDE - What do you find missing as a beginner in Java?Eclipse 作为 IDE - 作为 Java 初学者,您发现缺少什么?
【发布时间】:2010-12-18 18:49:20
【问题描述】:

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

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

请忽略与以下相关的问题:领域专业知识(业务知识)、基础设施(在哪里测试您的更改等)、性能相关(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)更改应用时:没有关于更改影响的警告。

【问题讨论】:

  • 短版本的第一个缩进 - 我真的很讨厌那个,但现在我使用 CTRL+G 并且没问题。对于 MVC,有一些插件可以帮助您,我猜 Eclipse 无法处理所有框架来支持它们。

标签: java eclipse ide jakarta-ee survey


【解决方案1】:

Eclipse 中缺少的是:

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

还有兰扎,类蓝图[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 会议的范畴。

【讨论】:

  • 可以使用 X-Ray 插件将系统复杂性和类/包依赖项添加到 Eclipse:xray.inf.usi.ch/xray.php 官方仍处于测试阶段,但运行良好!
  • Soo...这些是新手程序员遇到的问题吗? :)
  • @robert 我的建议肯定是有远见的,而不是渐进的。如何从 A 型到 B 型是新手经常遇到的问题,另外写个测试搜索一下可能对他们有很大帮助。
  • 毫无疑问,它们是很好的建议;对另一个问题的很好回答:p
【解决方案2】:

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

【讨论】:

    【解决方案3】:

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

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

    【讨论】:

    • 显然 Eclipse 有一个真正的问题让我在没有任何解释的情况下被改装?
    【解决方案4】:

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

    查看本站http://maven.apache.org/

    【讨论】:

      【解决方案5】:

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

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

      • 点击“新表单”
      • 将按钮和文本框拖到表单上,四处移动,添加一些标签
      • 双击一个按钮,添加一些代码
      • 完成,快速申请,给老板看,获得报酬/升职/茶歇

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

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

      【讨论】:

        【解决方案6】:

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

        • 当您位于结尾“}”时显示开头“{”,开头“{”不在视野范围内
        • 自动将编辑器与包资源管理器同步
        • 使用键盘转到不同的视图(包浏览器、大纲等)
        • 内联查找,不打开对话框。
        • 使用键盘转到下一个错误位置
        • 使用键盘转到下一个/上一个结构
        • 总体稳定性更高

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

        【讨论】:

          【解决方案7】:

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

          这总是一场狩猎。

          【讨论】:

            【解决方案8】:

            我发现 Visual Studio 很容易上手,我尝试在每个按钮上至少单击一次,然后弄清楚了整个东西的作用。它是由一个最高级别的设计团队构思出来的,一切都遵循自上而下的标准,或多或少。

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

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

            【讨论】:

              【解决方案9】:

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

              【讨论】:

                【解决方案10】:
                • 简单
                • 清晰度
                • 一致性

                我可能会写得更详细,但我认为,eclipse 过于繁重,过于注重功能 - 而不是易用性。 IMO,这既涉及初学者,也涉及专业人士。

                【讨论】:

                • 我会第二个,然后是一些; “无限可配置”不是一件好事,除非你真的、真的、真的想通过一堵墙的按钮、旋钮和开关来做一些常见的事情,比如将标签更改为四个空格。
                【解决方案11】:

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

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

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

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

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

                【讨论】:

                  【解决方案12】:

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

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

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

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

                  【讨论】:

                  • +1,确实如此,尤其是对于 Spring 和 Maven。 SpringSource Tool Suite (springsource.com/products/sts) 增加了一些舒适度,但是仍然缺少很多操作系统。
                  • M2eclipse 最近变得非常好。效果很好
                  【解决方案13】:

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

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

                  【讨论】:

                    【解决方案14】:

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

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

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

                    【讨论】:

                      【解决方案15】:

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

                      【讨论】:

                        【解决方案16】:

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

                        作为一名开发人员,我喜欢我不需要处理这个事实 - 而且我从来没有发现自己无法在更复杂的构建配置中做我想做的事情 - 但这太重要了让初学者了解当您按下要忽略的 播放 按钮时发生的情况。

                        【讨论】:

                          【解决方案17】:

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

                          【讨论】:

                          • @SimonJ:VCS 集成 - 将是 infra。假设代码已经设置并且开发人员准备好进行他/她的更改 - 在这种情况下开发人员会面临什么样的问题?
                          【解决方案18】:

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

                          【讨论】:

                          • 这种属于基础设施(设置/构建相关)。假设你的类路径是正确的,你要改变一个方法/类或其他什么,你觉得有什么困难? (例如,当您要更改方法名称时,在eclipse中右键单击并查找引用是很直观的事情-当我是新手时,这是使用eclipse的积极原因之一。今天,我在这里收集所有负面意见:-)
                          【解决方案19】:

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

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

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

                          【讨论】:

                          • 第二次缺少反编译器。
                          猜你喜欢
                          • 1970-01-01
                          • 1970-01-01
                          • 1970-01-01
                          • 2013-03-04
                          • 1970-01-01
                          • 2016-02-12
                          • 1970-01-01
                          • 1970-01-01
                          • 1970-01-01
                          相关资源
                          最近更新 更多