it-swarm.cn

什么证明使用IDE而不是标准编辑器?

我发现自己使用我选择的文本编辑器(vim,nano,gedit,选择毒药)的频率比最近的IDE)高得多。

在注意到我的ide快捷方式变得尘土飞扬之后,我开始思考这个问题并想知道:证明使用IDE对于您而不是文本编辑器而言是合理的)

为此,您将使用IDE)并仅依靠编辑器来为not提供什么依据?

39
Chris

I:积分。好的文本编辑器可能很适合编写代码,但是您的大部分编程都没有花在编写代码上。它用于测试和调试,为此,您希望文本编辑器与编译器和调试器集成在一起。这是IDE的最大优势。

70
Mason Wheeler

这些是我最喜欢的IDE IntelliJ的我最喜欢的功能,我喜欢将其用于Java,PHP,Javascript,HTML甚至ActionScript。

  • 错误检查-类似于对代码的实时拼写检查。绝对必要。
  • 代码导航-Ctrl+click在函数,变量上键入以转到定义。 (IntelliJ在上述所有语言中都很出色非常
  • 代码完成-我经常使用Ctrl+space来帮助填写所需的类或方法名称。这样可以加快ton的编码速度,甚至可以帮助您在无法从所处的上下文中访问所需的内容时,在错误发生之前及时发现它们。IntelliJ甚至可以帮助您扩展首字母缩略词-输入NPE,按Ctrl+space,它会显示“ NullPointerException”,“ NoPageError”等。点击Alt+enter自动添加import的确不错。
  • 代码生成-生成getter和setter,只需单击几下即可从界面实现方法。
  • 很好代码着色-IntelliJ不仅对标准关键字,字符串,变量名进行着色,还对成员变量,局部变量,参数进行着色。在ActionScript中,实际上是一个setter/getter的变量将像函数一样被着色。
  • Refactoring-无误重命名是最大的。 IntelliJ非常擅长重命名setter和getter或字符串用法。当然,您可以在需要时进行基于正则表达式的搜索和替换,还可以使用“保留大小写”选项来将“ myNumber”,“ MyNumber”和“ MYNUMBER”替换为“ myString”,“ MyString”和“ MYSTRING”一次操作
  • 版本控制集成-我们使用SVN,而我最喜欢的IDEVC功能可以创建,删除,移动类而无需考虑SVN,轻松浏览历史记录,非常好的diff工具,良好的合并功能以及在编辑器中注释文件(逐行显示历史记录)。
  • 依赖项导入-依赖于您拥有源代码的第三方库时,可以轻松导航至代码以进行参考,调试等。
  • 智能键入-粘贴代码并将其自动粘贴到正确的选项卡位置,自动完成端括号,括号,引号等。
  • 一个非常好的TestRunner对于JUnit,FlexUnit,PHPUnit
  • 调试-当然。完美地调试JBoss,Jetty甚至Flash。按住Ctrl键并单击堆栈跟踪可直接转到代码。

诸如您可能认为理所当然的代码着色之类的事情,但是良好的代码着色就像外围视觉一样,它使您可以专注于重要的内容而无需花费额外的时间来识别完整的Word。

IntelliJ甚至还使用Ctrl+space来建议变量名。在Java中,如果您声明一个新的EventMessageItem变量并点击Ctrl+space,它将建议“ eventMessageItem”,“ eventMessage”,“ item”等。

所有这些事情使我way有更多时间考虑我的代码和体系结构,而不再考虑修复格式,处理文件系统,修复复制和粘贴错误,在应用程序之间切换,追逐文档等等等。我不知道您如何反对这种生产率的提高。

49
Nicole

IDE比编辑器更了解您的代码。例如,这允许标识符完成和重构,对于Java是冗长的语言,

21
user1249
[To the IDE] You had me at intellisense/autocomplete
18
JohnFx

生产率。还有其他合理的理由吗?对我来说,精心设计的IDE)集中了我在编程时执行的许多功能-创建和编辑代码,使用源代码控制,调试,与项目管理工具进行交互,与其他程序员,创建文档,运行自动化测试-大大减少了过程摩擦,从而降低了我的生产率。

此外,即使我感觉好像我需要知道如何单独使用每个工具,我也不必这样做。至少对我而言,右键单击绝对比打开CLI和键入更为可取。

我已经使用了很多,但是我反复使用的IDE是Visual Studio,Wing IDE和NetBeans。所有这些都为我花费大量的编程时间增加了价值。

14
Adam Crossland

从历史上看,IDE在单任务计算机上提供了无与伦比的便利性。我的第一个C编译器在edit-compile-run周期中需要执行以下步骤:

  • 开始编辑
  • 编辑程序
  • 保存程序,退出编辑器
  • 编译程序
  • 汇编编译程序
  • 链接编译和汇编程序
  • 运行程序

在我的CP/M系统上。 (如果磁盘驱动器更大,我可以将其作为批处理程序自动执行。)

当我获得Turbo Pascal时,很高兴能够在编译和调试时保持编辑器可用。

我相信,这就是使IDE最初流行的原因。

9
David Thornley

如果您使用LISP进行编码,则Emacs具有类似Intellisense的功能,例如查找方法参数和自动完成功能,因此您可以说它是原始的IDE。能够将一个程序用于多个任务(通常进行编辑,Shell /命令提示符,阅读新闻)也很不错。

通常,编辑器vs. IDE问题似乎取决于编程语言。据我所知,例如,Ruby和Haskell编码器,似乎更喜欢他们最喜欢的文本编辑器。

7
Larry Coleman
  • 一键式编译
  • 调试
  • 代码模板
  • 代码完成
  • 与版本控制和重构工具集成
  • 更简单的单元测试

仅举几例

4
ysolik

我认为答案将在很大程度上取决于您所使用的编程语言以及您的语言水平。对于像Java这样的语言,如果您做任何认真的事情,都必须使用IDE。无论在什么地方使用JS或Ruby IDES之类的脚本语言,都用处不大。

我为开发使用了notepad ++和一组Shell脚本(用于备份,git commit),并且运行良好。

3
Eastern Monk

一些赞成“编辑”的论点:

  1. 在某些情况下IDE)尚未开发或永远不会开发。
  2. 使用编辑器,您可以“更快”且更外科地进行更改。
  3. 它需要的资源要少得多(因此更容易同时使用多个资源)
  4. 因为这是解决诸如 此处 所述问题的唯一方法。
  5. (个人)有时候,当我不得不键入所有内容时,我会越来越有意识地工作,并且更加专注于键入内容。例如,我多次发现方法(formaqString)中的拼写错误,而使用IDE可能不会引起注意。
  6. 它使仅使用键盘(速度/流量)更容易工作
  7. 使用宏或其他节省时间的心态。

我每天使用IDE,否则很难编写Java/C#。

(2)与(3)相比:基本上,只有一个选项可以远程编辑文件(通过ssh /远程桌面),并且对远程服务器的配置或文件进行的更改最少。

3
Dimitrios Mistriotis

我使用IDE进行测试/调试/集成,并使用KEDIT进行编辑,因为IDE严重缺乏编辑功能。
因为.NET IDE可以识别外部编辑,所以我要做的就是保存在编辑器中并接受提示重新加载源代码。这使我可以优化编辑并同时调试功能。
对于其他IDE,我使用KEDIT作为模板处理器和源搜索程序,并将该源复制/粘贴到IDE中。

2
Dave

当然,取决于您的语言,某些IDE还包括可视的Form/Window设计器。

尽管应该指出,但是程序员的文本编辑器和IDE)之间的界线定义不明确。可以扩展许多编辑器来处理编译,代码完成,调试等。

2
GrandmasterB

对于IDE:
-先进的功能开箱即用。
-一些功能非常适合您的框架,以至于编辑人员都没有等效功能。

对于编辑:
-将手放在键盘上。
-您的开发环境在所有系统上都是相同的
-更好的编辑脚本
-外部工具或脚本提供IDE的某些功能。)(智能,转到定义,查找参考)

1
mike30

学习曲线短。而已。

0
nate c

我真正推荐的唯一一个是调试器。一个IDE实际上是一个编辑器,上面添加了许多其他gubbins,但是如果您可以通过在命令提示符下键入make(或向上箭头+ Enter)进行编译,则您不会- 需要一个IDE。如果可以通过右键单击资源管理器并选择合适的菜单项来提交到SCM,则不需要IDE。

现在我知道有些人需要诸如重构支持(第一次正确编写代码:))或一些集成的GUI设计器(但即使如此,使用Visual Studio时,我还是使用Expression来完成我的GUI工作,而不是VS中糟糕的XAML支持) ),还有很多人需要智能感知和自动完成(尤其是对于像Java和C#的名称都非常长的名称)这样的冗长的语言)。

但是对我来说,GUI调试器是使用IDE的唯一真正好的理由。我仍然使用“命令行”调试器(恩,windbg),但是对于日常而言,它是VS的内置调试器。

0
gbjbaanb

IDE有很多好处。并非所有语言都具有全面的IDE)来真正缩小规模,否则很难为一种所说的语言创建语言。为什么想要IDE的原因呢?让我们从这些开始:

  • 该语言具有丰富的标准API,IDE)弹出窗口可帮助加快开发速度。
  • 有很多样板代码。 (强制尝试/捕获,获取/设置等)
  • 自动完成功能可以准确满足您的编码需求
  • 您的语言单元测试套件已集成到上述IDE中。
  • IDE知道并支持有关最佳实践的多种语言通用库。
  • 可用插件来制作作品
  • 它不是很重,不会减慢您的系统速度
  • 高度集成的调试器?有帮助。

问题在于,并非所有语言都能真正从全面的IDE中获得很大的生产力提高。我将IDE用于某些工作(Java,C#),而不用于其他工作(Python,Ruby,Coldfusion)。这确实是一种平衡行为。某些语言只是不需要如此全面的套件。

每个都有IDE吗?当然。你总是需要一个吗?并不是的。

0
Rig