第三章:基本工具(1)
工具放大你的才干,你的工具越好,你越是能更好地掌握它们的用法,你的生产力越高。从一套基本的通用工具开始,随着经验的获得,随着你遇到一些特殊需求,你将会在其中增添新的工具,要和工匠一样,定期增添工具。要总是寻找更好的做事方式。不要局限于某一种特定的工具,比如IDE。 花时间学习使用一些工具,有一天你会发现,你的手指在键盘上移动,操纵文本,却不用进行任何有意识的思考。工具将变成你的双手的延伸。
一、纯文本的威力
什么是纯文本- 纯文本由可打印字符组成,人可以直接阅读和理解其形式。
- 纯文本并非意味着文本是无结构的:XML、HTML都是良好定义的结构的纯文本的例子。
- 与二进制编码相比,纯文本所处的层面往往更高,二进制的问题在于理解数据所需的语境和数据本身是分离的。
用纯文本保存知识。缺点
- 与压缩的二进制格式相比,存储纯文本所需空间更多(更大);
- 要解释及处理纯文本文件,计算上的代价可能更昂贵(更慢)。
- 保证不过时
- 杠杆作用(计算世界里的每一样工具都能够在纯文本上进行操作)
- 更易于测试
二、shell游戏
每个工匠都需要好用、坚固、可靠的工作台,用以在加工工件时把工件放在方便的高度上,工作台成为木工房的中心,而对于操纵文本文件的程序员,工作台就是命令shell。 在shell下,你可以启用各种应用程序,可以搜索文件、查询系统状态、过滤输出,通过shell进行编程,可以构建复杂的宏命令,用来完成你经常进行的各种活动。 当然你可以用GUI完成所有工作,但你将错过你的环境的某种能力,GUI的好处是WYSIWYG(所见即所得),缺点是WYSIAYG(所见即全部所得)。GUI经常受限于它们的设计者想要提供的能力。 作为注重实效的程序员,你不断地想要执行特别的操作——GUI可能不支持的操作,当你想要快速的组合一些命令,以完成一次查询或某种其他的任务时,命令行可能更为适宜。 例如找出修改日期比你的Makefile的修改日期更近的全部.c文件:find . -name '*.c' -newer Makefile -print构造我的源码的zip存档文件
zip archive.zip *.h *.c在上周哪些
Java
文件没被改动过:
find . -name '*.java' -mtime +7 -printshell命令可能很晦涩,或是太简略,但却很强大,也很简练。同时,因为shell命令可以被组合进脚本中,你可以构建命令序列,是你常做的事情自动化。
利用命令shell的力量去熟悉shell,你会发现自己的生产率迅速提高。 一种编辑器 最好是精通一种编辑器,并将其用于所有编辑任务。如果不坚持使用一种编辑器,可能会面临现代的巴别特大混乱。
用好一种编辑器。你需要的是精通。确保你的编辑器能在你使用的所有平台上使用,并且既有GUI版本,也有非GUI版本。 编辑器特性
- 可配置
- 可扩展
- 可编程
- 语法突出
- 自动完成
- 自动缩进
- 初始代码和文档样板
- 与帮助系统挂接
- 类IDE特性(编译、调试等等)
- 填好的类名或模块名
- 你的姓名或版权声明
- 该语言中的各种构造体的骨架
- Emacs
- The Vim Editor
三、源码控制
源码控制系统追踪你在源码和文档中做出的每一项变动。总是使用源码控制确保每一样东西都处在源码控制系统之下,哪怕团队只有你一人,项目只需要一周时间,即使那是用过就扔掉的原型。 阅读原文:程序员修炼之道:从小工到专家
2 Comments