我为什么要使用IDE? [关闭]

在另一个问题中, 马克高度评价IDE,称“有些人仍然不知道”为什么“他们应该使用一个......”。 作为使用vim进行编程的人,并且在大多数/所有同事使用vim或emacs进行所有工作的环境中工作,IDE的优势是什么? 我为什么要用一个?

我确信这对某些人来说是一个充满争议的问题,我对开始一场火焰战并不感兴趣,所以请回答你认为基于IDE的方法更优越的原因 。 我没有兴趣听到为什么我不应该使用IDE; 我已经不使用了。 我有兴趣听到“篱笆的另一面”,可以这么说。

如果你认为IDE可能适合某些类型的工作而不适合其他工作,我也很想知道为什么。


#1楼

节省开发时间
通过提供集成调试,智能感知等功能,使生活更轻松。

有很多,但会建议使用一个,他们是显而易见的。


#2楼

代码完成。 探索代码有很大帮助。


#3楼

拥有IDE具有以下优点:

  • 编译通常是“即时”,这意味着不再需要切换到命令行进行编译
  • 调试是集成的,在IDE中具有调试功能意味着步调试器实际使用您的就地编辑器直观地显示执行了哪些代码
  • IDE通常对您正在使用的语言有更多的语义知识,并且可以在键入时向您显示可能的问题。 重构比“搜索替换”更强大。

还有更多,也许你应该尝试一下。


#4楼

这实际上取决于您使用的语言,但在C#和Java中,我发现IDE有益于:

  • 快速导航到类型而无需担心命名空间,项目等
  • 通过将成员视为超链接导航到成员
  • 当你不记得所有成员的名字时,自动完成
  • 自动代码生成
  • 重构(大规模的)
  • 组织导入(使用C#中的指令自动在Java中添加适当的导入)
  • 警告你自己输入(即某些错误甚至不需要编译周期)
  • 将鼠标悬停在某些东西上以查看文档
  • 以有用的方式同时在屏幕上保存文件,错误/警告/控制台/单元测试等和源代码的视图
  • 易于从同一窗口运行单元测试
  • 集成调试
  • 集成的源控制
  • 导航到错误详细信息中直接发生编译时错误或运行时异常的位置。
  • 等等!

所有这些都节省了时间。 他们是我可以手动做的事情,但更痛苦:我宁愿做编码。


#5楼

不同的人可能有不同的原因。 对我来说,这些都是优点。

  1. 为项目提供整合的感觉。 例如,我将在单个视图中包含所有相关的项目文件。
  2. 提供更高的代码生产力
    1. 语法突出显示
    2. 参考集会
    3. 智能感知
    4. 数据库和相关UI文件的集中视图。
    5. 调试功能

在一天结束时,它可以帮助我编写比我在记事本或写字板中更快的代码。 这是我更喜欢IDE的一个很好的理由。


#6楼

关于我为什么使用IDE的简短回答是懒惰。

我是一个懒惰的灵魂,当有一种简单的方法时,他不喜欢以困难的方式做事。 IDE让生活变得轻松,因此吸引我们懒惰的人。

当我输入代码时,IDE会自动检查代码的有效性,我可以突出显示方法并按F1获取帮助,右键单击并选择“转到定义”直接跳转到定义的位置。 我点击了一个按钮,启动了自动连接调试器的应用程序。 所以这个名单还在继续。 开发人员日常所做的所有事情都集中在一个屋檐下。

无需使用IDE。 这不是更难的工作。


#7楼

我喜欢IDE,因为它在我的指尖提供了很多功能。 编辑/编译/项目中文件的可见性是我在IDE中所重视的一切。 我现在使用Visual Studio,但在以前的生活中我使用SlickEdit,发现它使我的开发过程比我不使用它时更加简化。


#8楼

IDE基本上是:

  • 编辑带代码完成,重构和文档
  • 调试器
  • 文件系统资源管理器
  • SCMS客户端
  • 构建工具

所有在一个包中。

你可以使用单独的工具或者只是一个很棒的可编程编辑器和额外的工具来完成所有这些(以及更多),例如Emacs(Vim也是如此,但它具有更少的IDEability IMO)。

如果您发现自己在一个实用程序和下一个可以集成到环境中的实用程序之间切换很多,或者如果您缺少此处列出的某些功能(并且在其他帖子中更完整),可能是时候转移到IDE(或者通过添加宏来增强环境的可靠性,或者不是。 如果您使用多个程序构建了自己的“IDE”(在上面提到的意义上),则无需转移到实际的IDE。


#9楼

当“文本编辑器”真的是emacs时,我认为做经典的“文本编辑器和控制台窗口与IDE”是不公平的。 IDE的典型功能大多数都在emacs中。 或许它们甚至起源于那里,现代IDE主要是界面改进/简化。

这意味着对于原始问题,答案并不那么明确。 这取决于有问题的网站上的人们如何使用emacs,如果他们主要使用它作为文本编辑器,或者他们全力以赴并使用自定义脚本,学习相关模式的命令,了解代码标记等等。


#10楼

日食:

代码高亮,在后台编译,指出我的错误,因为我继续。

与javadoc集成,使用ctrl-Space建议变量名。

当我编译时,我在那里得到错误。 我可以双击错误,它会显示相应的行。

与JUnit完全集成,ctrl-F11运行测试,告诉我测试失败了。 如果输出窗口中有异常,我可以双击一行,然后将我带到失败的行。 不仅如此,ctrl-F11确保在运行测试之前编译所有内容(这意味着我永远不会忘记这样做)。

与蚂蚁整合。 一个用于构建和部署应用程序的命令。

与调试器集成,包括Web服务器的远程调试。

FANTASTIC重构工具,搜索一段代码的引用。 帮助我了解变化的影响。

总而言之,它让我更有成效。


#11楼

在决定是否使用IDE时,只需要考虑一件事,那就是它是否会提高您的工作效率。

简短的问题这么短的答案:)


#12楼

我可以考虑使用IDE的几个原因:

  • 综合帮助是最受欢迎的。
  • 带有Visual Studio预览版的内置Refactor
  • IntelliSense ,语法高亮,大型项目导航的简易性,集成调试等(虽然我知道使用插件,你可以用EmacsVim获得很多这个)。
  • 此外,我认为IDE现在有更广泛的用户群,可能更多人为他们开发插件,但我可能错了。

坦率地说,我喜欢我的鼠标。 当我使用纯文本编辑器时,它会变得孤独。


#13楼

它肯定会导致我的生产力提高。 我甚至在Vista上的Visual Studio中编写Linux应用程序,然后使用Linux虚拟机来构建它们。

您不必记住函数或方法调用的所有参数,一旦开始键入它,IDE将向您显示所需的参数。 您可以使用向导来设置项目属性,编译器选项等。您可以搜索整个项目中的内容,而不仅仅是当前文档或文件夹中的文件。 如果出现编译器错误,请双击它,它会将您带到违规行。

集成工具,如模型编辑器,连接和浏览外部数据库,管理代码集“片段”,GUI建模工具等。所有这些都可以单独进行,但在同一个开发环境中将它们全部保存可以节省大量的时间并使开发过程更有效地流动。


#14楼

我不确定文本编辑器和IDE之间有明确的分界线。 你在规模的一端有类似记事本,在另一端有最好的现代IDE,但中间有很多东西。 大多数文本编辑器都有语法高亮显示; 针对程序员的编辑器通常具有各种其他功能,例如简单的代码导航和自动完成。 Emacs甚至可以让您集成调试器。 甚至十年前的IDE所拥有的功能远远少于帮助程序员的功能,而不是现在对于一个严肃的文本编辑器的期望。


#15楼

这在很大程度上取决于你正在做什么以及你正在做什么语言。就个人而言,我倾向于不使用IDE(或者“我的IDE包含3个运行vim的xterms,一个运行数据库客户端,一个运行数据库客户端bash提示或拖尾日志“,取决于你为我的大部分工作定义”IDE“的广泛程度,但是,如果我发现自己正在开发一个平台原生的GUI,那么我将找到一个适合语言的IDE即时 - IMO,IDE和图形表格编辑显然是相互制作的。


#16楼

根据开发人员试图完成的任务,IDE 可以是一种“优越”选择。

文本编辑器可以是“优越的”,因为IDE通常面向一种(或少量选择)语言。

如果开发人员将大部分时间花在单一语言或相关语言的“集群”(如C#和T-SQL)上,那么在一个操作系统中,则由GUI设计,调试,智能感知,重构等工具提供一个好的IDE可以非常引人注目。 例如,如果您花费大部分时间在VB.NET中工作,偶尔可能会使用一些T-SQL,那么在Windows环境中,如果不看Visual Studio或类似的IDE,那将是非常愚蠢的。

我对那些谁喜欢的IDE或文本编辑器没有偏见, 如果学得很好既可以是非常有成效的和有用的!


#17楼

对我来说,IDE更好,因为它允许更快的代码导航,如果你有想法实现的话,这很重要。 假设您不使用IDE,则到达目的地需要更长的时间。 你的想法可能会更频繁地被中断。 这意味着必须按下更多点击/更多键。 人们必须更多地关注如何实施事物的思想。 当然,你也可以写下来,但必须在设计和实现之间跳槽。 此外,GUI设计师也有很大的不同。 如果您手动执行此操作,可能需要更长时间。


#18楼

作为您在问题中突出显示的回复的作者,并且承认有点迟到,我不得不说,在列出的众多原因中,专业开发人员的工作效率是其中之一备受推崇的技能。

通过生产力,我的意思是能够以最佳结果有效地完成工作。 IDE在许多级别上启用此功能。 我不是Emacs专家,但我怀疑它缺乏主要IDE的任何功能。

设计,文档,跟踪,开发,构建,分析,部署和维护是企业应用程序中的关键踏脚石,都可以在IDE中完成。

如果你有选择的话,为什么你不会使用如此强大的东西?

作为一个实验,让自己使用IDE,比如30天,看看你的感受。 我很乐意阅读你对这段经历的看法。


#19楼

我认为这主要与开发人员的意识范围有关。 IDE提供了开发人员工作环境的宏观视图。 您可以同时查看类层次结构,引用的资源,数据库模式,SDK帮助引用等。由于许多事情受到影响,影响您的击键,以及不断扩大的体系结构和架构交叉点,因此它变得越来越困难。一次只从一个代码岛工作。

OTOH,“只是我和vim以及手册页”给了我一个更精简的微观 - 但强烈和精确 - 的观点。 如果我有一个设计良好,分区很好,稀疏耦合的高度内聚的代码库,用一种语言构建,可以使用一组静态库,而不是典型的情况,特别是当开发团队规模增长并重塑代码结构时,这是可以的。随着时间的推移,距离和个人喜好。

我目前正在从事Flex和.NET项目。 关于Flex的一个更好的事情是,实现标准事物的方式很少 - 从数据库中提取数据,打开/关闭/读取/写入文件等等(但我使用的是Flex Builder / Eclipse IDE) - 像VS一样典型的重量级例子,因为我还在学习基础知识而且我需要训练轮。一旦我对自己的模式充满信心,我希望能够回归到vim。)在这个视图中,我可以做什么我需要通过了解一些非常好的事情来做专业的工作。

OTOH,我无法想象用.NET来达到这一点,因为我期望保持的观点不断扩展和转移。 概念完整性要少得多,而且几个月内项目上的几个开发人员的一致性要低得多 - 但IDE支持这一点,也许会鼓励它。 因此,开发人员确实需要(并且可以更容易地)充分了解更多内容。 这也有助于他们回答(甚至理解)StackOverflow上更高百分比的问题。 即我们可以拥有更深层次的知识库。 我们可以回应各种各样的求助广告。

事情可能在两个方向都太过分了。 也许只有“仅限编辑”的范围,就像“如果你只有一把锤子,一切看起来像钉子”。 使用IDE方法,无论您想要紧固在一起,您都可以选择各种紧固件和相关工具范围 - 零件/锤子,螺丝/螺丝刀,螺栓/扳手,粘合剂/胶枪/夹具,磁铁一直在你的指尖(用一个向导来帮助你开始)。


#20楼

我用Emacs作为开发和邮件/新闻的主要环境大约10年(1994-2004)。 当我在2004年强迫自己学习Java时,我发现了IDE的强大功能,令我惊讶的是我真的很喜欢IDE( IntelliJ IDEA )。

我不会讨论具体的原因,因为这里已经提到了很多 - 只记得不同的人喜欢不同的功能。 我和一位同事使用了相同的IDE,我们两个人只使用了一小部分功能,我们不喜欢使用IDE的方式(但我们都喜欢IDE本身)。

但是,我想要关注的是与Emacs / Vim相关的环境相比,IDE有一个优势:您花费更少的时间来安装/配置所需的功能。

使用Wing IDE (用于Python),我已准备好在安装后15-20分钟开始开发。 不知道我需要多少小时才能获得我用完和运行Emacs / Vim的功能。 :)


#21楼

我不明白你在问什么。 您问“我应该使用IDE而不是......”,但我不明白替代方案是什么 - Vim和Emacs可以完成任何IDE将为您提供的许多功能。 他们没有处理大型IDE的唯一方面可能是UI设计师。 然后你的问题归结为简单的“我应该使用什么IDE”,并为Vim和Emacs的简单领域提供参数。


#22楼

不要认为它是独家的。 使用IDE可以获得它带来的好处,并在需要认真关注时切换到vim /首选文本编辑器。

我找了重构和浏览,调试和搞清楚做什么的IDE更好。 然后在IDE中完成小的事情,我翻转的大件事情来完成这项工作。


#23楼

除了其他答案之外,我喜欢将IDE的开发能力与Vim的编辑能力结合使用,例如ViPlugin for Eclipse


#24楼

基于GUI的IDE(如Visual Studio和Eclipse)与基于文本的IDE(如Emacs或vim)相比具有以下优势,因为它们具有以下显示功能:

  • 用于GUI设计的WYSIWYG预览和实时编辑
  • 高效的属性编辑器(例如,使用GUI调色板进行颜色选择,包括定位渐变停止等)
  • 代码大纲,文件相互关系等的图形描述
  • 更有效地使用屏幕空间来显示断点,书签,错误等
  • 使用OS和其他应用程序更好地拖放支持
  • 综合编辑图纸,图像,3D模型等
  • 显示和编辑数据库模型

基本上使用基于GUI的IDE,您可以立即在屏幕上获得更多有用的信息,您可以像文本部分一样轻松地查看/编辑应用程序的图形部分。

作为开发人员体验最酷的事情之一就是编辑一种计算某些数据的方法,并在另一个窗口中以图形方式显示代码的实时输出,就像用户在运行应用程序时会看到它一样。 现在那是WYSIWYG的编辑!

像Emacs和vim这样的基于文本的IDE可以随着时间的推移添加代码完成和重构等功能,因此从长远来看,它们的主要限制是基于文本的显示模型。


#25楼

我使用的主要原因是当代码超过100个文件时。

虽然ctags可以完成这项工作,但是有些IDE可以非常快速地轻松导航文件。

当您有大量工作要做时,它可以节省时间。


#26楼

对我来说,它只是我们在终端过去的好时光所做的一切的GUI版本。 我总是同意IDE不是很优越,因为它们隐藏了很多东西,特别是关于链接的东西,但它们在某些情况下有一个显着的优势,例如某些开发平台,如Qt。

某些类似IDE的视觉效果甚至似乎在您键入代码时解析代码,并在您编译之前检测错误:似乎只有IDE可以与编译器紧密合作以立即检测类型化源中的问题的逻辑。

我认为存在IDE /命令行火焰战的疯狂回答仅仅是因为从标准化的角度来看,C / C ++可执行构建的处理不是很好,与D语言不同; 每个平台都以自己的方式处理编译/链接/等等,因此为了减少它们制作IDE的麻烦。

从您的角度来看,使用命令行可能会更简单,如果只有一个带有标准选项的编译器,那本来就很容易,但事实是C / C ++很灵活,所以最后,所有平台按照自己的方式去做,因此IDE不会浪费解释如何做到这一点。

如果您可以了解可执行文件如何与内核进行通信,或者您对编译器设计有何了解,那么可能有一种方法可以使用正确的命令行,但我怀疑您有。

微软或苹果,他们都是邪恶的,必须提出一种直接的方式来构建应用程序而不需要输入细节,并且由于构建应用程序直接取决于操作系统的体系结构,因此它几乎不会像“标准”那样命令行是。

简单,大而复杂的应用程序,你不想深入研究它的作用 - > IDE,小软件或简单的系统软件设计 - >命令行。 当然除了那些嵌入Makefile的漂亮的库,但这是另一个故事。

此外,我认为IDE是在交付的应用程序与某些事情有关时使用的,具有讽刺意味的是,GUI或具有接口或直接绑定到操作系统的东西,所以同样,它也适用于将使用UI / GUI而不知道的人它是如何工作的,而编程系统的人将不再需要它。

IDE只是现代的狗屎,但我认为100年后命令行仍然存在。


#27楼

对于我所有的开发工作,我也几乎完全使用Vim(几乎因为我现在正在尝试学习emacs)。 我认为纯粹的直观性(当然来自GUI)是人们喜欢使用IDE的主要原因。 通过直观,几乎不需要工具的学习开销。 学习开销越小,他们完成工作的次数就越多。


#28楼

我从相反的方向来看这个问题。 我在Makefile + Emacs的土地上进行编程,只有很少的进站。 从我最早的DOS编译器,Microsoft Quick C,我有一个IDE来自动化。 我在Visual C ++ 6.0上工作了很多年,当我毕业于Enterprise Java时,我与Borland JBuilder合作,然后选择了Eclipse,这对我来说非常有效。

在我最初的自学,大学和现在的职业生涯中,我逐渐了解到,在IDE中完成的任何主要软件开发都会适得其反。 我这样说是因为大多数IDE都希望你能够以他们特有的I-control-how-the-world-works风格工作。 你必须按照他们的方式对项目进行切片和切块。 您可以使用奇怪的对话框管理项目构建。 大多数IDE管理复杂的项目之间的依赖关系很差,并且依赖关系很难100%工作。 除非我做了一个Clean / Rebuild All,否则我一直处于IDE无法生成代码的工作版本的情况。 最后,很少有一种干净的方法可以将您的软件从开发中移到IDE中的QA或Production等其他环境中。 这通常是一个让您构建所有部署单元的狂欢,或者您有一些IDE供应商为您提供捆绑的笨拙工具。 但同样,该工具通常要求您的项目和构建结构完全符合其规则 - 有时这对您的项目要求不起作用。

我了解到,要与团队进行大规模开发,如果我们使用IDE开发代码并使用手动编写的命令行脚本完成所有构建,那么我们可以是最高效的。 (我们喜欢用于Java开发的Apache Ant。)我们发现,从IDE运行我们的脚本只是复杂构建的点击费用或自动化噩梦,它更容易(并且破坏性更小)alt + tab out to a shell并在那里运行脚本。

手动构建要求我们错过现代IDE中的一些细节,例如后台编译,但我们获得的更为关键:可以在多个环境中生活的简洁易用的构建。 所有那些敏捷人员谈论的“一键构建”? 我们有它。 我们的构建脚本也可以由持续集成系统直接调用。 通过持续集成管理构建允许我们更正式地将代码部署分阶段迁移到不同的环境,并且当有人检查破坏构建或单元测试的错误代码时,几乎立即就知道。

事实上,我从IDE中扮演的角色并没有给我们带来太大的伤害。 Eclipse中的intellisense和重构工具仍然是完全有用和有效的 - 后台编译仅用于支持这些工具。 而且,Eclipse独特的项目切片已经成为一种非常好的方式,以一种每个人都能理解的方式精神分解我们的问题集(尽管我的口味仍然有点冗长)。 我认为关于Eclipse最重要的事情之一是优秀的SCM集成,这就是让团队开发变得如此愉快的原因。 我们使用Subversion + Eclipse,这非常高效,很容易培养我们的人员成为专家。


#29楼

IntelliSense ,集成调试器和即时窗口使我的工作效率更高( Visual Studio 2008 )。 随着一切都在我的指尖,我可以在编写代码时保留绝大多数巨大的项目。 微软可能会继续放弃他们的操作系统,但Visual Studio是有史以来最好的产品之一。


#30楼

IDE允许一个人更快,更轻松地工作...我注意到我花了很多时间在一个简单的文本编辑器中导航代码...

在一个好的IDE中,如果IDE支持跳转到函数,以前的编辑位置,转换到变量,那个时间就会缩短......另外,一个好的IDE会缩短尝试不同语言功能和项目的时间,作为启动时间可以很小。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值