为什么要使用IDE?

时间:2010-07-21 16:59:40

标签: ide

这可能过于自以为是,但我试图理解为什么有些公司要求使用IDE。在大学,我使用的只是vim,虽然有时我使用netbeans与Java一起使用。 Netbeans很好,因为它完成了代码完成,并有一些很好的模板来配置我尝试过的一些陌生服务。

现在我的朋友们正在大公司工作,他们告诉我他们需要使用eclipse或visual studio,但似乎没有人能给出合理的原因。

有人可以向我解释为什么公司强迫开发人员进入受限制的开发环境吗?

15 个答案:

答案 0 :(得分:6)

IDE与记事本 我已经在许多不同的IDE中编写代码,偶尔也会在记事本中编写代码。你可能完全喜欢记事本,但在某些时候使用记事本是工业sabatoge,有点像雇用一个用勺子代替铲子和顶针而不是桶的园丁。 (但谁知道,也许最美丽的花园可以用勺子和顶针制作,但肯定不会很快)

IDE A与IDE B 某些IDE具有团队和管理功能。例如,在Visual Studio中,有一个屏幕可以找到源代码中的所有TODO:行。这允许在其他IDE中可能存在或不存在的不同工作流。同上,用于源代码控制集成,静态代码分析等。

IDE旧vs IDE新 大型组织变革缓慢。不是一个与编程相关的问题。

答案 1 :(得分:5)

因为公司会对工具和平台进行标准化 - 如果您选择的工具与其标准相冲突,那么您可以反对,静默使用工具或使用所需的工具。

这三个都是有效的;如果您的替代方案不会引起其他团队成员问题,并且您提供了有效的参数(不仅仅是抱怨)。

例如:我根据工作需要在Visual Studio 2008中开发,但尽可能使用VS2010。 2010年保存的解决方案/项目无法在没有人工指导的情况下于2008年开通 - 因此我无法使用我选择的工具,因为这会对其他开发人员造成摩擦。我们还需要根据Resharper和StyleCop强制执行的文档标准生成代码 - 如果我切换到不同的IDE,我将更难以确保我生成的代码符合我们的标准。

答案 2 :(得分:3)

如果你擅长使用vim并且知道所有关于它的知识,那么没有理由切换到IDE。也就是说,许多IDE将具有许多标准的有用功能。维护Eclipse的安装比使用插件X,Y和Z维护Vim要容易,以便模拟相同的功能。

  • IntelliSense非常有用。我意识到vim有各种各样的自动完成功能,但它没有给我一个重载方法和参数提示列表。
  • 提供类层次结构/轮廓,API参考,控制台输出等的多个窗格可以为您提供比仅多个文本缓冲区中可用的信息更多的信息。是的,我知道你有quickfix窗口,但有时它还不够。
  • 键入时编译。这对C ++来说不太适用,但在Java和C#中非常好用。一旦我输入一行,我就会收到有关正确性的反馈。作为一名程序员,我并没有傲慢地认为我从不会出现语法错误,或者输入错误,或者忘记尝试/捕获,或者......(列表继续)

最重要的是......

  • 集成调试器。双击设置断点,右键单击变量以设置监视,有一个单独的窗格用于动态更改值,详细的异常处理在同一程序中

我喜欢vim,并且会将它用于简单的事情,或者当我想运行宏时,或者使用C代码时。但是对于更复杂的任务,我将启动Eclipse / Visual Studio / Wing。

答案 3 :(得分:2)

采用适当配置的IDE可以极大地帮助开发人员。通过他自己的自定义开发环境来帮助每个雪花需要很多额外的时间;如果有人没有独立维护自己的开发环境,那么支持它们会非常昂贵。

企业IT部门非常不善于说出“足够糟糕”和“足够好”的开发人员之间的区别。所以他们只是让每个人做同样的事情。

免责声明:我使用Eclipse并喜欢它。

答案 4 :(得分:2)

理论上,如果所有团队使用该工具,它将减少让无经验的开发人员处理特定IDE问题所需的培训量。

无论如何,大多数顶级公司现在都没有强迫开发人员使用某些特定的IDE ......

我同意这最后的思考方式:你不需要你的团队掌握一个特定的工具,拥有许多团队知识可以提高你找到解决特定问题的更好方法的可能性。

答案 5 :(得分:2)

对我来说,我使用Visual Studio和ReSharper。没有它,我几乎不能有效(在.Net中)。至少,没有人向我展示过提高工作效率的方法...... Vim,这很棒。您可以在Visual Studio + R#中运行Vim,并获得IDE提供的所有细节,例如代码导航,代码完成和重构。

答案 6 :(得分:1)

同样的道理我们用锤子钉住东西而不是岩石。这是一个更好的工具。

现在,如果你问为什么你被迫使用特定的IDE而不是另一个,那么这是一个不同的主题。

使用.NET的地方99%的时间都会使用Visual Studio,至少这是我见过的。我还没有发现任何比Visual Studio更好的编写.NET应用程序的东西。

答案 7 :(得分:1)

这些功能在vim中不可用:

  1. 重构
  2. 集成调试器
  3. 将您的代码库知道为一个整体(例如,更改Java类名称;将更改反映在Spring XML配置中)
  4. 能够在IDE内部运行应用服务器,以便部署和调试代码。
  5. 这就是我选择IntelliJ的原因。我可以回到棍棒和骨头,但我的效率会低很多。

答案 8 :(得分:1)

IDE中的代码完成不仅仅是:

  • 调试设施
  • XML验证
  • 管理服务器
  • 自动导入
  • 语法检查
  • 图形建模
  • 支持Hibernate,TestNG或Spring等流行技术
  • 源代码管理的集成
  • 快速打开文件名的索引
  • 按照代码中的“链接”:实现,声明
  • 源代码控制的集成
  • 搜索课程或方法
  • 代码格式
  • 流程监控
  • 单击/按钮调试/构建
  • 方法/变量/字段/ ...重命名

与程序员的无能无关。任何人使用vim开发大型Java EE应用程序的效率都会降低。

答案 9 :(得分:1)

你在大学的项目有多大?几个文件中有几个类?或者更确切地说是数百个文件中的几百个类?

今天,我很荣幸地看到一个相当大的项目中的文件,程序员选择使用vi(是vi,而不是vim)和手工编写的命令行编译器调用(no make)。函数中包含的文件跨越大约900行,带有一系列if-else-if-else结构(因为这样你将所有代码放在一个地方!!!!!!)。 Macho-Programmer在他最好的。

答案 10 :(得分:1)

确定在生产环境中强制执行特定工具集有很好的理由:

  • 公司希望将所有内容标准化,以便员工离职时可以轻松取代该人员。

  • 商业IDE提供了足够复杂的环境,可支持单个接口以满足各种开发需求并支持不同级别的代码访问。例如,开发人员,非程序员(图形设计师等)和文档编写者可以使用相同的文件集。

  • 将此与集成的版本控制和代码管理相结合,无需有人学习特定的版本控制系统,突然之间的IDE开始变得更好更好。

  • 它还简化了多宿主环境中构建系统的维护。

  • IDE更容易通过手机或视频提供教程,也可能附带这些教程。

等。等等。

执行标准化环境背后的业务决策超出了单个程序员的偏好,或者可能是对编程团队的理解。

答案 11 :(得分:1)

使用IDE可以帮助员工以最少的培训来处理大型项目。学习一些关键的组合 - 您将轻松地使用Eclipse中的数千个文件项目,IDE可以为您处理大部分工作。想象一下,在Vim中开发此类项目需要花费多少年的学习时间。

此外,通过IDE,可以轻松支持整个团队的通用编码标准:只需设置几个选项,IDE将强制您以标准化方式编写代码。

另外,IDE还提供了一些额外的奖励,比如重构工具(特别是Eclipse中的好),集成调试(特别适用于Visual Studio),智能感知,集成单元测试,集成版本控制系统等。

使用IDE的优点和缺点也很大程度上取决于开发平台。有些平台适合使用IDE,有些则不适用。根据经验,您应该使用IDE进行Java和.Net开发(除非您非常先进);你不应该将IDE用于ruby,python,perl,LISP等开发(除非你对这些语言和相关框架非常新)。

答案 12 :(得分:1)

如前所述,关于使用IDE的问题是基本生产力。但是,在选择特定IDE时,公司应该考虑一些问题。包括:

  • 公司文化
  • 标准化工具的使用,使所有开发人员都可以访问它。这样可以简化培训,降低成本并提高学习曲线的速度。
  • 特定合同的要求。例如,某些IDE完全支持(即插件)开发包,而不是其他开发包。因此,如果您正在使用支持合同,则需要使用支持的IDE。一个具体的例子是当你使用不像VxWorks这样的普通操作系统时,你可以使用Workbench(这真的是一个带有许多eclipse特定插件的日食)。
  • 公司政策(以及我对公司预算的限制)
  • 与IDE相关的文档
  • Comunity(一个强大的人可以贡献并进一步发展IDE并帮助您解决疑虑)
  • 已安装的基础(没有人想成为世界上唯一使用该IDE的人)
  • 制造商的支持(即将停止使用的IDE可能不是一个好选择)
  • IDE的要求。 (即与公司某些机器不兼容的跨平台或硬件要求)

当然,还有很多。但是,我认为这个简短的清单可以帮助你看到,当我们谈论金钱和一些更大的公司时,有一些决定并不那么容易。

如果您开始使用自己的IDE,那么当另一位开发人员开始对您的代码进行维护时,会发生什么样的混乱。您如何看待应用程序在版本管理器上签名?现在考虑一家拥有30多名开发人员的公司,每家公司都使用自己的IDE(每个都有自己的配置文件,版本和所有东西)......

答案 13 :(得分:0)

http://xkcd.com/378/

真正的程序员使用可用的最佳工具来完成工作。有些公司拥有工具许可证,但没有任何迹象表明您不能许可/使用其他IDE,然后只打开另一个IDE来复制/粘贴您在本地IDE中所做的事情。

答案 14 :(得分:0)

这个问题有点开放,也许你可以把它变成社区维基......

正如您所指出的,对于某些操作(如重构,甚至是项目探索),IDE可能很有用,甚至是必须的:我在工作中使用Eclipse,在Java项目中使用Eclipse,我发现它非常有用在项目中出现的所有公共方法或类的使用情况列表。可能,我很欣赏能够从定义的位置重命名它,并自动更新所有这些事件 将鼠标悬停在名称上时显示JavaDoc的事实也非常好。像自动完成一样,跳转到类名等。
当然还有调试设施......

现在,我们的商店并不强制使用Eclipse!几年前,有些人使用Delphi IDE(忘了它的名字),我尝试过NetBeans等等。但我认为我们在Eclipse上标准化了事实上,但这是一个自然的进化而不是公司政策。当我们需要快速更新时,我们经常只在文本编辑器中打开文件...

相关问题