引语:工欲善其事,必先利其器。但是,你是用一个利器帮你完成工作还是多个利器配合一起完成?你是某个某个领域某个点的专家还是某个领域的全才?这取决于你想成为一个什么样的人。合理运用各种工具,就有如神助。在各个软件之间跳跃,本身也是一种减缓你思维老化的方式,吧!
声明:本文将是有争议的,你可以发表不同的看法!
就以web开发举例吧!说几个应该要掌握的工具或者说顺手的工具!
第一、一个IDE应该是要有的。如phpstorm, netbean, eclipse, zend等,还是比较常见的,各种工具功能大概都差不多,关键是看你习惯哪一个。一般来说,年纪越大,资历越老的人,他们更愿意守住那一亩三分地(旧习惯)。他们越不容易接受一些新观念,新习惯,而对于新手级别的人恰好相反,很容易接受新的东西,因为他压根就没习惯过其他的。比如,我最开始使用的是zend的工具,后来听别人说phpstorm不错,然后,几乎是半天之内,我就再也不用zend了,它已经被我抛弃了。netbean, eclipse可能对于java的开发会更实用的一点,总之都是些好工具,也都有自己的专长,但是总体来说都有几个重要的功能,也就够了:1. 快速索引,函数跳转快;2. 调试工具方便,如 打开命令行;3. 整个项目搜索,查找方便;4. 无限撤消与重做,各种快捷键(如注释); 5. 内建多种可调试语言,如php, js, css, markdown ... ;当然,真正的高手除外,他们都是不用这种智能IDE的,他们都在用什么vim, emac等等,反正我是不习惯了;
第二、一个不错的文本编辑器应该是要有的。如notepad++, sublime, vim, editplus等,下面我就他们这几个编辑的的优缺点说一下以供参考!notepad++:缺点:软件略大、不够漂亮、无法打开超大文件;优点:免费软件、查找方便、安装插件方便;2、sublime:缺点:收费软件、安装插件麻烦、字符集识别不够智能容易乱码、有些设置不会被保存(习惯问题)、无法打开超大文件;优点:软件小、足够漂亮、左侧有一个很棒的项目目录浏览、右侧有一个准确快速的文本map地图(虽然notepad++有,但是真的没办法和这个相提并论)、自动定位查找(比notepad++更智能)、超牛掰的快捷键操作(牛掰到不敢相信);vim(win版):缺点:很多人不习惯用、配置麻烦、容易导致编码显示问题;优点:能够打开超大文件、编辑shell一类脚本很美观、文件操作方便(如指定删除多少行、跳转到最后等等)、我主要用来查看日志文件变化等;editplus:缺点:收费、不够漂亮、无法打开超大文件;优点:查找文件、定位方便(标尺)、多窗口布局方便、我用的比较少;当然,真正的高手除外,也许他们都是在用vi, notepad,逼格一定要高;
第三、一个不错的前端调试工具还是要有的。就如我前面一篇文章提到的,一定要会调试控制台,三个基本浏览器Chrome, Firefox, IE一定要有,对于后端的调试工具自行研究如xdebug, hprof;
第四、一个抓包工具还是要会的。如httpwatch, fiddler, wireshark,因为有时候你是没办法通过控制台去获取到你想的数据的,通过有意的抓包可以得到你想要的东西,建议使用fiddler,不过fiddler对于https专用通道几乎是没办法的,wireshark主要是针对tcp级的。
第五、一个不错的数据库操作工具还是要有的。如sqlyog, navicat, phpmyadmin,由于使用的数据库都是mysql,我基本上就用这些。通过个人感觉,这几个工具不应该被独立开来,应该一起配合使用。因为,他们只是一个互相弥补的关系,我竟没有发现哪个工具可以实现自己所有想实现的功能。sqlyog:缺点:收费软件、导入文件不支持编码可选(容易导致乱码)、sql界面不漂亮不支持自动换行、不支持动态编辑记录的值(如只是简单的查找筛选也不让编辑其值);优点:界面清晰(几个窗体分割一目了然)、执行快捷键方便(在带分号的一行按F9即可执行挺方便)、支持快速复制一行;navicat:缺点:收费软件、界面复杂不清晰、不保存上次的设置或者个人习惯、导出麻烦、不支持快速复制新建一行、快捷键使用麻烦(即使打了分号也必须到本行开头按F7才可以);优点:可以动态改变查询的值(我就是看上它这一点才使用的)、方便地复制出查询结果到其他地方如excel、导入支持多种格式支持编码选择、查询界面可格式化如自动换行;phpmyadmin:缺点:不够漂亮、一会儿就断开连接(web访问,安全最重要);优点:免费软件、用于专用外网的数据库访问很好、导出方便(对于小文件可以直接输出sql,自行复制即可);
第六、一个文本比较工具还是要有的。如bcompare, svn的diff功能,对于自己的改动,刚开始也许还能记清楚是哪里改了,但是随着量的增加,时间的增长,基本都忘却了。借助于这种比较工具,就一目了然了。svn的diff一般主要用于两个版本之间的比较,而bcompare则是用于两个不同的文件或者纯文字之间的比较,可以同步对比更改,界面更漂亮。
第七、对于前端的工作还是要会的。如ps切图,dreamweaver布局或者其他。可以不精,但不应该不会!
第八、一个版本管理工具还是要会的。如svn, git, 功能还是蛮多的,不过真正项目中用到的功能,用一两次就会了。但是,如果你不需要别人来教你那一两次,你就明显更牛掰了。
第九、远程工具还是要会几个的。如securecrt, putty等客户端工具, filezilla, flashxp, winscp等ftp工具。最好能够自己亲自去配置一下这种服务器,一条龙体验式服务,虚拟机里随便搞。
第十、不要只会一门语言。
哈哈,以上是一点个人的小合集,供大家娱乐参考!本文仅仅说出了大概,要真说下来,每个小的点都不是一篇文章能搞定的。就当是个小地图吧。
希望不要只是:我只猜中了开头,可是我却猜不中这结局!
请指教!