了解你的IDE
在20世纪80年代,我们最好的编程环境也不过是一些好看一点的文本编辑器...还得是运气好的情况。现在已理所当然的语法高亮,在那时还是一个奢侈品,不是每个人都能有的。能漂亮地格式化代码的美化打印则一般是外部工具,需要运行才能修正代码空白。单步运行代码的调试器也是单独的程序,有着很多难记的按键。
在20世纪90年代中,公司们开始意识到可以通过给程序员装备更好、更有用的工具来获得潜在的收入。集成开发环境(IDE)将编译器、调试器、美化打印和其它工具和先前的文本编辑器组合到一起。在那个时代,菜单和鼠标也逐渐受到欢迎,这意味着开发人员不用在使用编辑器时学那些难记的键盘组合;他们可以轻松地从菜单中选择命令。
到了21世纪,IDE已经非常普遍了,公司们甚至免费提供它们以在其它领域获得市场份额。现在的IDE都组合了大量的功能。我最喜欢的一个是自动重构,特别是提炼函数,通过它我可以选定一块代码并转换成一个函数。重构工具能够选出所有需要传递给函数的参数,使之非常容易修改代码。我的IDE甚至会检查其它可以被这个函数替代的代码块,并且提示我是否也愿意替代它们。
现代IDE的另一个令人惊叹的功能是实施公司的编码风格的能力。例如,Java中有的程序员开始让所有的参数是final的(我的观点,这是浪费时间)。然而,由于他们已经有了这么个风格规则,我就需要遵循它并且在IDE中设置:对于非final的参数我会得到一个警告。风格规则也可用于发现可能的bug,比如比较autoboxed对象引用相等。
不幸的是,现代IDE不需要我们投入多少精力来学习使用它们。我第一次在Unix上编写C程序时,我不得不花费了很长一段时间来搞清楚vi编辑器是怎么工作的,就因为它陡峭的学习曲线。我现还在享受先前学习带来的回报,甚至这篇文章的草稿就是用vi打出来的。现代IDE的学习曲线则非常平缓,这就可能会导致我们对它的基本功能之外的功能一无所知。
我学习使用IDE的每一步遍是记忆快捷键。由于输入代码时,我的手指都在键盘上,按Ctrl+Shift+I来内联一个变量不用打断思绪,而用鼠标转到菜单中则会打断思绪。这种打断会导致不必要的上下文转换,如果我什么都采用懒方法的话,会使我的产出降低。这条规则对键盘技巧也适用:学习盲打,你肯定不会对前期的投入后悔的。
最后,作为程序员,我们有时间Unix的流工具可以帮助我们处理代码。例如,在某个代码审查中,我发现程序员们给很多类取了相同的名字,我就可以很容易通过find,sed,sort,uniq和grep找到它们,就像这样:
在20世纪90年代中,公司们开始意识到可以通过给程序员装备更好、更有用的工具来获得潜在的收入。集成开发环境(IDE)将编译器、调试器、美化打印和其它工具和先前的文本编辑器组合到一起。在那个时代,菜单和鼠标也逐渐受到欢迎,这意味着开发人员不用在使用编辑器时学那些难记的键盘组合;他们可以轻松地从菜单中选择命令。
到了21世纪,IDE已经非常普遍了,公司们甚至免费提供它们以在其它领域获得市场份额。现在的IDE都组合了大量的功能。我最喜欢的一个是自动重构,特别是提炼函数,通过它我可以选定一块代码并转换成一个函数。重构工具能够选出所有需要传递给函数的参数,使之非常容易修改代码。我的IDE甚至会检查其它可以被这个函数替代的代码块,并且提示我是否也愿意替代它们。
现代IDE的另一个令人惊叹的功能是实施公司的编码风格的能力。例如,Java中有的程序员开始让所有的参数是final的(我的观点,这是浪费时间)。然而,由于他们已经有了这么个风格规则,我就需要遵循它并且在IDE中设置:对于非final的参数我会得到一个警告。风格规则也可用于发现可能的bug,比如比较autoboxed对象引用相等。
不幸的是,现代IDE不需要我们投入多少精力来学习使用它们。我第一次在Unix上编写C程序时,我不得不花费了很长一段时间来搞清楚vi编辑器是怎么工作的,就因为它陡峭的学习曲线。我现还在享受先前学习带来的回报,甚至这篇文章的草稿就是用vi打出来的。现代IDE的学习曲线则非常平缓,这就可能会导致我们对它的基本功能之外的功能一无所知。
我学习使用IDE的每一步遍是记忆快捷键。由于输入代码时,我的手指都在键盘上,按Ctrl+Shift+I来内联一个变量不用打断思绪,而用鼠标转到菜单中则会打断思绪。这种打断会导致不必要的上下文转换,如果我什么都采用懒方法的话,会使我的产出降低。这条规则对键盘技巧也适用:学习盲打,你肯定不会对前期的投入后悔的。
最后,作为程序员,我们有时间Unix的流工具可以帮助我们处理代码。例如,在某个代码审查中,我发现程序员们给很多类取了相同的名字,我就可以很容易通过find,sed,sort,uniq和grep找到它们,就像这样:
find . -name "*.java" | sed 's/.*\///' | sort | uniq -c | grep -v "^ *1 " | sort -r
我们期待管道工进入我们的房间以便可以使用他的喷灯。让我们花费一点时间学习如果更有效地使用IDE吧。
原文:Know Your IDE by Heinz Kabutz