注:本文所说的重型IDE,例如开发PHP用到的PHPStorm、开发Java用到的Eclipse等IDE,有别于类似Sublime Text这样的轻型文本编辑器

在刚开始学习和使用PHP,乃至在学习和使用python、js的时候,我都在使用Sublime Text(以下简称SbText)进行编码工作。相较于每次打开重型IDE时”漫长”的等待时间,SbText一类编辑器却可以做到秒开! 于是新手便会有一个错觉,以为同样的工作量,使用重型IDE会花费更多时间。

可是后来我自己实践下来的经验是:重型IDE的协同开发效率更高。注意这里提到的一个关键词:协同开发,它指的是团队间的共同开发,有别于独自开发一个项目。

为什么在协同开发时,重型IDE的效率更高呢?你可能会开始思考:下列的功能明明轻型IDE也是可以支持的啊

  • 代码提示及自动补全
  • 语法高亮
  • 拼写检查
  • 代码格式化工具
  • 断点调试
  • ……

在一个独立开发者进行项目开发时,上面这些功能貌似已经够用了。但是在协同开发的场景下,重型IDE许多特性是轻型IDE所不具备的:

  • 接口文档自动解析及提示。轻型IDE往往不具备这样的特性,例如:
    • 想要查看一个接口参数的定义,后者往往要进入到这个文件中的接口位置处才能看到。
    • 再者,如果这个接口已经被声明为已废弃或已删除,说明接口开发者不希望外界继续使用本接口了。但轻型IDE是不会提示到的,如果此时开发者恰好是复制的其他部分的代码,就很有可能继续用到这些已经废弃的接口,从而让团队协作的效率变得低下
  • 接口调用的动态提示及检测。轻型IDE一般只提供程序语言无关的文本编辑功能,但是涉及到程序语言相关的内容检测时,它的短板便显现出来。你在调用某个对象的某个接口时,下面这些检查会大幅提升你的编码效率:
    • 这个接口是否存在
    • 你调用接口传入的参数类型、参数个数是否正确
    • 你所定义的参数的返回值类型是否和接口声明的一致
    • 阅读代码时,之前老代码相关的调用是否正确
  • 强大且丰富的断点调试功能。我之前在一个技术分享上曾听到这样一种观点:开发项目时如果你连断点调试工具都没有配置好,那么基本可以判断:1) 你的debug效率将会极其低下;2) 你对项目的整体架构的了解将不会有很大增长(大牛请忽略这样一种论断)。轻型IDE的debug功能一般都很精简,此处推荐重型IDE的debug功能
  • 阅读代码时的展示一致性。你能看到的IDE为你做出的通用提示、警告,其他开发者也会看到。这一方面会敦促你编写不会让IDE出现烦人提示的代码(一定意义上更规范的代码),另一方面也督促你,要求其他开发者不要写类似的代码。