我正在研究一种解决方案,旨在解决新手程序员在“修改代码”时遇到的问题,同时针对生产中的代码修复错误/执行更改请求。众所周知,Eclipse 是一个很棒的 IDE。与使用 Textpad 之类的东西相比,代码完成、开放声明、类型层次结构、包资源管理器、导航器、查找引用等功能可以帮助人们更快地修复问题。
如果您是新手 Java 程序员并且正在使用 Eclipse IDE,您认为 Eclipse IDE 的哪些方面帮助不大/不够直观?如果您是一位经验丰富的程序员,新手希望您为他们解决的常见问题是什么?
请忽略与以下相关的问题:领域专业知识(业务知识)、基础设施(在哪里测试您的更改等)、性能相关(eclipse 搜索速度慢等)、特定语言的技能水平(将开发人员视为noob) ... 并考虑一种语言 - Java
我在我的小团队中进行了一项本地调查,以下是一些:
- 新手使用 Eclipse 处理编写到在运行时提供实现的接口(interface)的代码。进行“公开声明”将始终向您显示一个界面。这有时会让人感到困惑。
- Eclipse 在开发 EJB 时并不直观。当然,您知道创建新 bean 所需要做的就是右键单击并“创建 Bean”,但是,一旦创建,它就不会显示下一步应该做什么的上下文帮助。例如,生成 stub 。
- 当使用实体 bean 进行数据源映射时,更改某些内容会搞砸整个流程,而 eclpise 从不提示/提示。
- 开发使用 Struts 的应用程序时,eclipse 不会告诉您当您更改 struts-config.xml 时,特定的 Web 流程会受到影响。
在这一点上,对我来说,作为一个有兴趣为我的研究收集意见的人,Eclipse 似乎可以使用更多的“上下文运行时提示”。
我相信社区会有更多内容要添加...请添加更多您的负面经历(仅从代码更改的角度来看)。
编辑: 我想,我的问题太冗长且令人困惑。我要改写一下并保持简短:
虽然“进行代码更改”(与代码格式化、基础设施相关 Activity 、CVS 等类似……比如重构),您最不喜欢/讨厌 eclipse IDE 的哪些功能?以下是示例:
- 修改已写入接口(interface)的代码时:“对象实例上的打开声明/F3 会在运行时提供实现时向您显示接口(interface)”。
- 使用 EJB 更改应用程序时:没有上下文帮助
- 使用 MVC(Spring/Struts)更改应用程序时:没有关于更改影响的警告。
最佳答案
Eclipse 中缺少的是:
软件可视化,例如系统复杂性 View [Lanza 2003]
还有 Lanza 的类蓝图 [Ducasse 2005]
Post Scriptum: Software visualization in Eclipse: X-Ray provides System Complexity View of Java projects, http://xray.inf.usi.ch/xray.php (via @anjaguzzi and Paul Lammertsma)
然后协同过滤“之前编辑过此方法的其他开发人员也编辑过”[Zimmermann 2005]
以及可浏览示例的集合,以及这些示例级别的自动完成。也就是说,例如,如果您写
ByteBuffer buf = file.
然后点击自动完成,它应该在代码库和互联网上搜索将文件转换为字节缓冲区并在其中插入 10-20 行的示例。
- Parseweb 通过推荐产生所需的方法调用序列来支持开发人员 来自给定输入参数类型的目标数据类型。 http://doi.acm.org/10.1145/1453101.1453129
- Prospector 通过推荐产生所需结果的方法调用序列来支持开发人员 来自给定输入参数类型的目标数据类型。 http://doi.acm.org/10.1145/1064978.1065018
- Strathcona 提供源代码示例和结构化配置 正在开发的代码片段的文本。 http://lsmr.cpsc.ucalgary.ca/papers/holmes-icse-2005.pdf
- Rascal 根据对现有类的分析,建议如何以及何时从 Java Swing 等通用库中调用对象的方法。它使用协同过滤。 http://dx.doi.org/10.1007/s10462-005-9012-8
当然还有我可以编写单元测试然后 IDE 在互联网上搜索通过测试的类的功能。是的,这是可以做到的!
- CodeGenie 是一个 Eclipse 插件,允许您编写单元测试,然后使用 Sourcerer 源代码搜索引擎查找通过的类。 http://doi.acm.org/10.1145/1529282.1529384
- 基于 Merobase 的 CodeConjurer 也提供了该功能,请参阅 http://dx.doi.org/10.1109/MS.2008.110
这个列表可以继续下去,更多工作的良好起点是过去的 session 记录
- Conference on Mining Software Repositories (MSR)
- Workshop on Search-driven Software Engineering (SUITE)
- Workshop on Recommendation Systems for Software Engineering (RSSE)
它们都在 ICSE session 的保护下。
关于java - 作为 IDE 的 Eclipse - 作为 Java 初学者,您发现缺少什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1771324/