理解如何使用命令行工具

现如今,很多软件开发工具都被打包成集成开发环境(IDE)。微软的VisualStudio以及开源的Eclipse就是两个非常主流的案例,尽管还有很多其他的。IDE有很多让人喜爱的地方。不仅仅是它们简单易用,还包括它们能不需要程序员去考虑很多构建的细节过程。

易于使用,然而,这也算个缺点。具体来说,一个工具如果容易上手,是因为它替你做了决策,并在后台自动完成了大量的事情。如此依赖,如果你从来都只用某个IDE作为开发环境,那你永远都无法完全理解这个工具到底做了些什么。你点击一个按钮,魔法开始了,然后一个可执行文件就这么出现在工程文件夹下。

用命令行构建工具来工作,当你的工程编译时,你可以学到很多有关这些工具具体做了什么。编写自己的构建脚本(Makefile)有助于理解生成可执行文件的所有步骤(编译、组装、链接等等)。在命令行下尝试使用这些工具也是一种非常有价值的学习经验。刚开始使用命令行构建工具时,你可以选择像是GCC这样的开源命令行工具,也可以是IDE专门提供的那一套。当你全部尝试一遍后就会发现,好的IDE只是一套集成了命令行工具的前端界面。

除了提高你对编译过程的理解,相对于IDE,使用命令行工具还会带来一些更简单有效的地方。例如,在查找替换时,grepsed所提供的功能,往往要比在IDE中查找要有用得多。命令行工具原生支持脚本,它允许自动完成任务,例如按计划每日构建,创建多版本工程,运行测试套件。在IDE中,由于构建选项往往是通过图形界面对话框制定的,并通过鼠标单击来调用,所以要实现此类自动化就会变得非常困难(如果不是不可能的话)。

且慢。不是说IDE的存在让开发更简单,进一步提高程序员的生产力么?是的!这项建议不是说你应该停止使用IDE。而是说你应该“看看引擎盖之下”,并了解IDE到底为你做了些什么。最好的方式你学习命令行工具,然后,当你再反过来使用IDE时,就可以更好的理解它的所作所为,你也能更好的控制构建过程。另一方面,一旦你掌握了命令行工具,体验过它的强大和灵活之后,你就会发现自己喜欢命令行胜过IDE。

0%