更新(2021.8.21)
我不是反对使用IDE
有时候他们提供很有用的工具,像代码重构工具和方法重命名,只需要很简单的手动操作。
我自己也几乎每天都在使用IntelliJ,CLion和MySQL workbench。
我只是简单的列举一下不要一直使用IDE的原因。
对于一些项目而言,不使用IDE有许多好处。
但是,我认为,有时候使用IDE才是最好的选择。
IDE(集成开发环境)非常流行。他们在静态类型语言上支持代码补全,从而让程序开发变得非常快速。例如,使用Intellij Idea编写Java代码。但是不使用IDE也有许多原因。我认识一个朋友,他写C++代码,他只是用一个终端编辑器(Micro)。
记住语法,子程序,库
不使用IDE,你可以记住你所用语言的语法,你自己程序里的子程序和他们的参数。你也可以记住所用语言的标准库的子程序。
熟悉项目中的做法
当你手动找到一个文件并且改掉子程序的实现,或者重构一个子程序,你会有一个好的文件名和好的目录结构。Java企业程序的目录的布局的反模式就是一个好的证明。(src/main/java/org/company/product/…)
避免IDE启动时间过长/获得更好的系统性能
如果是一个大项目,在开始工作前加载整个项目会降低你的效率。有一些工程有40000+的文件,可能需要大于5分钟的加载时间。
缺点:一些语言/项目脱离了IDE就没法工作
这大多数是不好的语言设计或者不好的库设计导致的。例如在Android Studio上用Java语言开发一个android app。这里如果你不使用Android Studio,你的进度会非常慢。有很大的学习成本。
更好的访问性
好的开源项目鼓励大家去clone,fork,甚至给这个项目贡献代码。如果人们知道不需要使用IDE并且他们知道用的何种语言,他们能够直接在github上编辑文件。对于盲人来说,不用IDE让事情变得简单,他们可以用屏幕读取器来理解你的工程,能够使人们不需要现代的硬件(也许无法运行IDE)就可以在项目上工作。
避免你的项目与IDE锁定
你见过Java企业级项目吧?有时候Java 的类有20多个import语句,是被IDE自动添加的。在这种工作模式下,如此长的包名还有如此多的类/命名空间最终会迫使你去使用IDE,因为真的是太多了,变得没办法记住。
减少的代码,更好的阅读体验
没有自动补全/代码生成的提示,你自然的会去写更加简洁而地道的代码。他会帮助你学习语言特性和语法糖。
看下面:
System.out.println("hello");
printf("hello");
你看到在C语言中,不怎么使用IDE,语言/库/框架自然就变得更加易读易写。
避免样板文件/自动生成的代码
在Java中,有Getters,Setters,toString,hashCode等等的概念。这些方法可以用IDE来自动生成。实践中,这会是代码膨胀。IDE只是在简单的补偿缺失的语言功能(复合数据类型的内置哈希,内置字符串表示)
尊重Unix Philosophy,建立一个强大的工具链
“让每一个程序把一件事情做好”。IDE可以做许多事情,许多事情做的都很糟糕(Visual Studio Code糟糕的代码补全功能,根本就不是真正的支持)。
你可以给你的项目创建一个好的开发环境,通过使用许多工具,例如:
- Git
- 你最喜欢的文本编辑器,带有语法高亮功能
- 你正在使用的语言调试器
- 用于看文档的浏览器
- 可以浏览你项目的文件管理器
这些工具可以在一个工具链中一起使用。