【问题标题】:Why use Intellij, or what to do during the evaluation为什么要使用 Intellij,或者在评估期间要做什么
【发布时间】:2010-11-28 22:46:57
【问题描述】:

我下载了 IntelliJ IDEA 并开始了 30 天评估。

现在我只是想知道,为什么我应该使用 IntelliJ 来进行普通的老式 java 开发(所以没有 Hibernate、JSP 等)?它看起来与 eclipse 或 NetBeans 没有什么不同,所以我希望一些 IntelliJ 大师可以举一些 IntelliJ 可以做的事情的例子来证明投资它是合理的。我正在尝试充分利用评估,并且不想错过一个重要功能。

things possible in IntelliJ but not in eclipse 的列表已经可用,但我对日常工作流程更感兴趣,而不是每月使用两次的一些不起眼的功能。

【问题讨论】:

  • “它看起来并没有那么不同......” - 你知道,从远处我也无法区分巧克力和便便之间的区别。 :)

标签: ide intellij-idea


【解决方案1】:

为什么使用 IntelliJ?因为我发现它的用户界面更加一致并且更加精致。它使您可以将手放在键盘上的时间更长,而不是在键盘和鼠标之间来回切换。正如其他人所说,这是加起来的小事。

我发现用户意图功能可以节省大量时间,它审查代码并提出优化建议和纠正不良做法的方式。我可以在很多情况下点击 Alt-Enter 并且 IDE 能够找出并插入应该存在的内容。诸如类型声明、优化旧式 for 循环以使用新的 JDK-5 循环类型、删除冗余值分配或未使用的变量等讨厌的事情。

能够首先键​​入不存在的方法的用法,然后按下组合键并让 IDE 写出该方法的基本结构 - 节省大量时间。它为我提供了更好的工作流程,因为它允许您首先考虑如何使用一种方法,当您在上下文中阅读它时会是什么样子。

重构支持——这是我在 2003 年第一次开始使用它时的最大卖点,我认为它仍然领先(但我听说 Netbeans 现在也不错)

强烈建议您查看 IntelliJ KeyMap 参考。

查看此讨论以了解常用快捷方式:What are the most useful Intellij IDEA keyboard shortcuts?

【讨论】:

    【解决方案2】:

    2weiji:使用 Tab 代替 Ctrl+J :-) 非常方便 :-))
    sout 然后 >Tab
    psvm 然后 Tab
    iter 然后 Tab
    等等... :o)

    【讨论】:

    • 谢谢 - Tab 确实非常方便。对于默认的键盘映射,我认为它比 Ctrl-J 更好。对我来说不幸的是,我使用了修改后的 emacs 键盘映射,所以在这种情况下,“Emacs 选项卡”似乎优先于“下一个模板变量”——对吗?
    【解决方案3】:

    我不是 IntelliJ IDEA 专家,但粉丝们通常喜欢 IntelliJ 的是出色的重构和代码辅助功能。从这个角度来看,他们经常声称该产品远远优于其竞争对手。

    就个人而言,我是以下原则的拥护者:使用您认为效率最高的 IDE,而不是其他人喜欢的那个。

    【讨论】:

      【解决方案4】:

      我有一份使用 Eclipse 的日常工作(因为这是允许的全部)。我也有自己的公司,在那里我“兼职”从事合同工作并使用 IntelliJ。

      我会说他们的功能集大致相同。几乎相同的重构、相同的代码辅助、相同的使用风格等。Eclipse 可以说比 IntelliJ 有更好的插件,而且可能更多。 IntelliJ 只是“知道”开箱即用的东西,例如 Spring 和 Hibernate,并且这些东西比具有类似功能的 Eclipse 插件集成得更好。

      我选择在允许的情况下(个人购买和升级多次)使用 IntelliJ 的原因是它所做的一切都让人感觉更干净。很难说清楚,但 IntelliJ 中的完全相同的功能感觉比 Eclipse 中的更精简和更易于使用 - 即使有一个功能齐全的免费 IDE 可用,我也愿意为此付费。

      因此,您应该做的决定是:每天使用 IntelliJ 完成所有开发任务,持续 30 天。推动学习新的快捷方式和搜索、重构等方法的曲线,我猜你会喜欢它。如果没有,Eclipse 仍然为您服务。

      【讨论】:

      • eclipse 中的转到行号键绑定让我发疯了(我相​​信是 Ctrl+L),因为它不像任何其他 Windows 应用程序 (Ctrl+G)。我同意,正是这些小事加起来让我跳槽了。
      【解决方案5】:

      我已经使用 IntelliJ 大约 5 年了(从 4.5 版开始),并且我还阅读了 Manning 的大部分书籍“IntelliJ in Action”,但我仍然不认为自己是这方面的专家。事实上,我也想用它来做“普通的老式 Java 开发”,老实说,我不得不说它在这方面做得很好。像其他答案一样,我只能说它的有用性有一个明确的优势,它真的把它放在首位。我们在这里也在工作中使用 Eclipse,虽然我没有那么多经验,但我可以告诉你,它肯定缺少很多基本的东西。我投入了一些认真的时间和精力来学习 Eclipse,寻找如何在 IntelliJ 中完成我认为理所当然的日常事情,但它们大多不存在或实现得很差。重构的东西肯定是有很大帮助的。

      除了重构之外,我认为只有大量的小改动确实有助于实现这一点。我认为一个例子可能有助于澄清......

      试试这个:

      创建一个新的空类。将光标移动到大括号内并执行 psvm 并按 Ctrl-J - 这会将“psvm”扩展为“public static void main(String[] args)”。这个快捷方式将处理一整套常用的习语(它也是可配置的)。在主代码块中,输入以下代码:

      public static void main(String[] args) {
        int x = 1000;
        sout
      }
      

      在“sout”的末尾,再次执行 Ctrl-J - 您会看到另一个弹出窗口,让您可以从一些不同的扩展中进行选择,但通常会扩展为“System.out。 println("")" 和 helpfully 将光标放在双引号之间(我认为,像这样的小改动确实让它发光。与 Visual Studio 的“IntelliSense”相比 - 如果你问我)。

      无论如何,第一个双引号上的退格 - 请注意它会删除匹配的双引号?它也对大括号和方括号做同样的事情。我认为在某些极端情况下我更喜欢它不这样做,但大多数时候它有很大帮助。回到代码编辑:只需键入 x,代码现在看起来像这样:

      public static void main(String[] args) {
        int x = 1000;
      
      
        // add a few blank lines here too - the need for 
        // this will be obvious a little later
      
        System.out.println(x);
      }
      

      现在,将光标移到 x 的声明上,然后执行 Shift-F6 - 这是就地重构对话框(我不知道如何称呼它,所以我只是编造了它)。名称“x”周围有一个彩色框,您可以开始为它输入一个新名称 - 在您输入时,该名称的所有使用也会动态更新。另一个我非常喜欢的简洁风格。

      试试这个:在某处放一个很长的行注释,像这样:

      // this is a really long comment blah blah blah i love to hear myself talking hahaha
      

      现在假设您认为评论太长,所以您将光标移动到它的中间某处并按 Enter。 IntelliJ 会将评论的剩余部分放在前面的“//” - 它“知道”这是前一个评论的延续,因此它会为您提供。另一个整洁的触摸。

      // this is a really long comment blah 
      // blah blah i love to hear myself talking hahaha
      

      与 Eclipse 相比,我喜欢 IntelliJ 的另一大好处是它的侵入性要小得多 - 我真的很讨厌 Eclipse 如何设法在弹出窗口之上获取弹出窗口,并且鼠标焦点会在某个地方,但键盘焦点会卡在下面的某个东西上,等等。我认为有可能以一种不会发生这类事情的方式工作,但这首先让我非常恼火。这提醒了我,在 IntelliJ 中,如果您将鼠标光标移动到左侧窗格中的包或文件导航器上,该面板会自动获得鼠标焦点,因此我习惯于立即使用鼠标滚轮环顾四周。在日食中?您将鼠标悬停在编辑窗格上,但焦点停留在编辑窗格上,因此您必须用鼠标单击以转移焦点,然后才能使用鼠标滚轮环顾四周。就像我说的,有很多这样的小动作有助于提高工作效率。

      在您编写代码时,请注意当前行上红色“灯泡”类型符号的左侧排水沟栏 - 这是 IntelliJ 告诉您它可以做的事情。使用 Alt-Enter 调出一个小的就地对话框,它会告诉你它可以自动处理什么。假设您输入了一个名为“getFoo()”的方法定义并且没有 foo 成员 - 它会为您创建它。或者,如果您正在使用一个类并在其上调用一个不存在的方法,例如 getFoo() - 它会提供创建一个 getter 和一个成员,或一个常规方法。这简直太有帮助了。

      总的来说,我想说 IntelliJ 大师们并不是真正想要谈论的小改动,但我真的很欣赏这些事情是如何“做得很好”的。它们会处理小细节,因此您不必花太多时间来检查自己的语法。我认为它是帮我编写代码的管家——它会为我处理一些小事,所以我不必这样做。蝙蝠侠有他的阿尔弗雷德,我有我的 IntelliJ。所有设置都经过精心布置,您可以根据需要进行修改,但似乎默认设置都是为了提高您的工作效率,而不是一直用真正平凡的决定来打扰您(尤其是那些您几乎总是会做出的决定)还是一样的选择)。

      IntelliJ 有一些明显的缺点 - 价格有点高,而且非常大,可能需要一段时间才能加载大型项目。我很幸运,我的公司支付了许可证费用以及一个非常好的工作站,因此加载速度相当快,但您的里程会有所不同。

      【讨论】:

      • 您描述为特定于 IntelliJ 的大多数功能也存在于 Netbeans 和 Eclipse 中。
      • 很有趣,但是这里给出的大多数示例确实存在于 Eclipse 中:键入 main 和 Ctrl+Space 用于 main 方法,键入 syso(用于 sysout)和 Ctrl+Space 用于 System.out.println( ),突出显示 x 并键入 Alt+Shift+R 重命名它... IMO,这证实了更喜欢一个 IDE 而不是另一个与您的编码习惯、您对当前环境的了解高度相关,因此非常主观。跨度>
      • 是的,我知道。我在前言中的回答中回避了这一点,“而且它们大多不存在或实施得很差”。就像我关于巧克力和便便的笑话评论一样——它们的颜色相同并不意味着它们是相同的。
      • 大便是哪一个?这就是问题所在。而且有点冒犯。
      • 抱歉,无意冒犯 - 但首先我并不是说一个 IDE 是便便,另一个是巧克力。如果你被冒犯了,那你可能太个人化了。
      【解决方案6】:

      在使用 Intellij 2 年后,我刚刚回到 Eclipse(由于客户的偏好)。

      我发现 Eclipse 的用处不大。我知道这是一个模糊的术语,但 Intellij 的反馈更清晰,UI 为我提供了关于正在发生的事情的更好信息,自动构建似乎更加无缝。项目设置/配置似乎更直观。

      这可能是主观的,但有时这就是为什么你更喜欢一个。它只是感觉有点滑,有点友好......

      (我不认为 Intellij 的 VIM 插件更好,但那是另一回事了!)

      【讨论】:

        猜你喜欢
        • 2018-05-13
        • 1970-01-01
        • 2015-07-02
        • 2017-01-19
        • 1970-01-01
        • 1970-01-01
        • 2015-12-12
        • 2012-04-26
        • 2019-03-23
        相关资源
        最近更新 更多