概述
集成开发环境(IDE)是一种用于构建应用程序的软件,可将常用的开发人员工具合并到单个图形用户界面(GUI)中。IDE 通常由以下几个部分组成:
- 源代码编辑器:一个旨在帮助开发人员轻松编写软件代码的文本编辑器,特色功能包括:视觉提示突出显示语法、特定编程语言的自动补全功能、检查正在编写的代码是否存在错误。
- 本地构建版本自动化:这些实用工具可以在创建软件的本地构建版本时自动执行简单的可重复任务,如将计算机源代码编译成二进制代码、封装二进制代码、运行自动测试。
- 调试器:一个用于测试其他程序的程序,它能以图形方式显示原始代码中的错误位置。
开发人员为什么要使用 IDE?
有了 IDE,开发人员可以快速着手为新应用编写代码,而无需在设置时手动配置和集成多个实用工具。此外,由于各个实用工具集成在了同一个工作台中,开发人员再也无需针对不同的工具分别花费数小时来学习它们的使用方法。这大大造福了开发新手,使其可以借助 IDE 快速掌握团队的标准工具和工作流程。事实上,IDE 中的大多数功能都专为节约时间而生,比如智能代码补全功能和自动代码生成功能,它们可使开发人员无需完整输入字符序列。
其他的常见 IDE 功能则旨在帮助开发人员梳理工作流程,高效解决相关问题。IDE 可在代码编写过程中就进行解析,从而实时识别人为原因所导致的错误。实用工具全都集中显示在单个 GUI 中,所以开发人员无需切换应用程序即可执行操作。语法突出显示功能也是大多数 IDE 中的常见功能,它可利用视觉提示来区分文本编辑器中的语法。部分 IDE 还包含类和对象浏览器,以及某些语言的类层次结构图。
即使没有 IDE,也能开发应用。或者说,基本上,每个开发人员都能手动将各种实用工具与轻巧的文本编辑器(如 Vim 或 Emacs)进行集成,构建自己的 IDE。对于开发人员而言,突出的自定义和操控能力足以赋能增效。然而,在企业环境中,相较于其他的优势,现代化 IDE 带来的时间节约、环境标准化和自动化功能往往更为重要。
当前,大多数企业开发团队都会选用最适合其特定用例的预配置 IDE,所以他们面临的问题已不再是要不要采用 IDE,而是要选择哪种 IDE。
热门 IDE
IDE 有很多不同的技术和业务用例,这也意味着市场上有很多专有和开源的 IDE 可供选择。不同 IDE 之间最主要的区别通常包括:
- 支持的编程语言数量:有些 IDE 专用于一种编程语言,因此更适用于特定的编程范式。例如,IntelliJ 主要作为一种 Java IDE 而广为人知。另一些 IDE 则可支持多种编程语言,例如 Eclipse IDE 支持 Java、XML、Python 等编程语言。
- 支持的操作系统:开发人员所用的操作系统会限制可用的 IDE(除非 IDE 基于云);另外,如果正在开发的应用面向的是使用特定操作系统(如安卓或 iOS)的最终用户,这也可能会成为限制因素。
- 自动化功能:大多数 IDE 都包含 3 个关键功能(文本编辑器、构建版本自动化和调试器),很多 IDE 还支持其他功能,如重构、代码搜索、持续集成和持续部署(CI/CD)工具。
- 对系统性能的影响:如果开发人员想要同时运行其他的内存密集型应用,IDE 的内存占用率就会成为重要的考虑因素。
- 插件和扩展:某些 IDE 支持自定义工作流程,满足开发人员的需求和偏好。
移动开发 IDE
专为智能手机和平板电脑设计的应用已越来越普遍,几乎改变了所有的行业,导致很多公司除了要开发传统的网页版应用之外还要开发移动端应用。平台的选择,是移动端应用开发中的关键要素之一。例如,如果某个新应用要跨 iOS、安卓系统和网页上使用的,那么最好就从能够跨平台支持多个操作系统的 IDE 入手。
云端 IDE
相较于本地开发环境,作为基于云的软件即服务(SaaS)提供的 IDE 具有很多独特的优势。首先,与所有 SaaS 产品一样,使用这类 IDE 时,开发人员既不需要下载软件,也不需要配置本地环境和依赖项,因此可以快速着手推进项目。这还能使各个团队成员的环境实现一定程度的标准化,从而避免常见的"为什么在我的机器上能正常工作,到了你的机器却不正常"之类的问题。此外,由于开发环境会进行集中管理,所以不会有代码驻留在各个开发人员的计算机上,从而帮助解决知识产权和安全问题。
各种进程对于本地机器所造成的影响也是各不相同的。像运行构建版本和进行套件测试之类的进程通常都属于计算密集型进程,这意味着开发人员可能无法在进程运行时继续使用工作站。SaaS IDE 可以分派需要长时间运行的作业,而不会独占本地机器的计算资源。云端 IDE 通常还适用于各种平台,能够连接到不同的云供应商。