微信号:infoqchina

介绍:有内容的技术社区媒体

第三只眼:对“工具”的思考

2013-12-25 15:54 InfoQ

早在学校中,我们就学习过,人和其他动物之间最大的差别就在于,人能够制造并使用工具,足以看到“工具”在人类发展史中的重要作用。


古语中也有对“工具”地位的阐述,“工欲善其事,必先利其器”、“磨刀不误砍柴工”等等都告诉我们,想要让工作效率更高,质量更好,就必须拥有工具来帮助我们,而不是单纯靠一双手来解决。


进入了IT行业之后,也越来越体会到工具的重要性。最初编程的时候,需要先编写源文件,然后手动用命令行的方式连接、编译,才能够形成可执行的文件,才能够检查是否达到了我们的目的,实现了所需的功能。而后来有了图形化界面的操作系统之后,逐渐就出现了各种各样优秀的IDE工具,有了这些工具,我们不仅可以一键编译,还可以一键执行,一键部署,非常方便。而且在编辑源代码的过程中,工具也提供了非常大的方便,自动完成、自动纠错、自动重构等等,各种各样的“自动化”让我们效率得到了提高,错误率大大降低。


在团队和项目管理方面,也出现了不少不错的工具,比方说在团队协作方面,有基于Sharepoint的Visual Studio Team Foundation,让我们可以把软件开发的各个流程都在上面管理;不想使用这样沉重的工具,我们可以使用Trello、Asana等工具来管理协作。在项目管理方面,有Project,可以用来画出不错的项目进度图等等。另外,曾经使用过和听说过的工具还有很多,QC、JIRA、Tower、禅道等等,自己也曾经和团队成员一起试图根据自己的需要开发一套管理软件出来。


现在的时代是一个信息爆炸的时代,但是,我发现,似乎工具也开始有爆炸的趋势,在各个领域,都出现了各种各样、层出不穷的工具来帮助我们工作。这样就出现了问题,首先我们不知道如何来选择工具,另外很可能会被工具所迷惑,花费太多的时间来学习工具(每更换一种工具都需要一段学习的时间),此外,还有可能对工具过于迷信。这些都是非常不好的趋势。


因为有了各种各样工具的帮助,把许多基本的知识和技能都隐藏了起来。比方说,有了Visual Studio强大的图形化界面绘制功能,还有几个人会了解用代码如何来编写一个界面呢?如何利用精细的代码来控制界面上的元素呢?再比方说,剪贴板这个东西,让很多程序员掌握了一种强大的技能,那就是VC大法(Ctrl-C和Ctrl-V),而忽视了对语言本身、程序逻辑、软件设计等等方面的学习,做出来的系统的确可以使用,也基本可以实现用户所需要的功能,但就是差那么一点儿,无法达到精致的标准。


对于日常的生活也是一样,越来越多的工具都被电子化,都可以在计算机(台式机、笔记本、平板电脑)中使用应用实现。这样就导致很多人忘记了工具原来的样子,而只是知道在他的手机或者其他电子设备中存在。还记得曾经有个应用是用来开车门的,但是给大家带来的并不是方便,而是不便,如果用的是传统的电子钥匙,只需要按一个按钮就可以把车门打开,而使用这个应用,需要先给手机解锁,然后打开应用,再按一个按钮,才能够解锁车门。


越来越多的工具给我的感觉就是,过犹不及。工具是好东西,但需要处于合适的程度,而不是越多越好,那样会让我们容易迷失本心,甚至带来很多不必要的麻烦。


说说自己,有些时候对于电子化工具还是有一些畏惧的心理。比方说画思维导图这件事儿,的确,使用各种各样的电子化工具,可以让那些草稿更容易保存,还可能具有整理分类和搜索的功能。但我现在还是使用笔和纸来画,这样虽然导致在抽屉里积攒了不少草图,但带来的方便还是非常大,我可以随时随地找出纸笔来帮助我思考,而且不需要纠结怎么移动那些框框或者圆圈,也不需要考虑到底要使用什么样的颜色和字体,从而可以专注于要做的事情——思考。思维导图的目的就是要帮我思考,而不是画出一幅美妙的图画,不是吗?


还有就是,一旦掌握了一种工具,我就不会轻易改变。前几天听说,德沃夏克键盘布局非常不错,而且还有专门针对程序员的键盘布局,很多键都不需要按shift就可以直接敲出来,还是比较动心的。但是看了大家的经验,发现更改这个布局需要学习差不多一个月的时间,然后就会完全忘掉原来的qwer布局的键盘。权衡了一段时间之后,还是放弃了。因为现在我的输入速度还不错,而且我有足够的时间思考,另外就是,我不仅仅要输入英文,还有很多时间需要输入大量的中文,一旦更改了之后,在写程序的时候或许可以节省那一点点时间,但是可能在输入中文的时候,反而会下降,那样就得不偿失了。其实最大的担心还是在那一个月的适应时间,还有自己曾经花了不少时间好不容易才训练出来的盲打,需要付出的代价还是不小的。

所以,我对工具的几点看法是:

  1. 工具很重要,在很多时候可以起到不错的作用。

  2. 不要做“唯工具主义者”,有些时候手或者最简单的工具要比高科技、电子化的工具更好用。

  3. 不要因为工具能做,就忽略了基础知识和技能的学习和训练。

  4. 有些地方,工具和思想(理念)的关系就像是武功招式和内功的关系,前者很重要,但相比而言,后者更应该得到重视。

  5. 不要随便更换工具,要衡量能够获得的收益和需要付出的代价。


希望我们都能够拥有得心应手的工具,让我们的生活和工作都更加美好!


“第三只眼”:

主要由InfoQ编辑专门为微信公众账号自编自写的一个栏目,旨在表明编辑态度及表述平日见闻和思考,期望成为和读者沟通的桥梁。亦接受投稿:editors@cn.infoq.com


今日专栏作者:

侯伯薇@大连,快乐的程序员,InfoQ中文站翻译团队主编,热心的社区活动组织者。本文首发于他的微信公众账号快乐的程序员(happyprogrammer)。


***********************************

本文来自InfoQ微信公众账号:infoqchina

1、回复“今日新闻”,查看今天更新的新闻;

2、回复“今日英文”,查看今天英文站的更新;

3、回复“文章 +关键词”,搜索关键词相关内容;

4、回复“QCon”,了解QCon大会相关信息;

5、回复“活动”,了解最近InfoQ组织的线下沙龙;

6、回复“架构师”,获取《架构师》下载地址;

7、回复“投稿”,了解投稿和加入编辑团队的流程。

***********************************

 
InfoQ 更多文章 Facebook如何实现PB级别数据库自动化备份 学术派Google软件工程师Matt Welsh谈移动开发趋势 Spotify为什么要使用一些“无聊”的技术? 妹纸们放假了,汉纸们做啥? 大多数重构可以避免
猜您喜欢 你了解Tomcat是怎样处理Jsp文件的吗? 堪称经典:深入浅出傅里叶变换 Laracon:Laravel 5.3 总结 他教会了一个学生如何自学,这里是他总结的编程学习方法…… 《神秘的程序员们》漫画连载26-悲催的人生