chapter03 基本工具
纯文本的威力
什么是纯文本:
可打印字符组成 人可以直接阅读和理解其形式。
缺点:
- 与压缩的二进制格式相比,存储纯文本所需的空间更多。
- 要解释和处理纯文本文件 计算上的代价可能更加昂贵。
优点:
- 保证不过时
- 杠杆作用
- 更加易于测试
shell游戏
命令行在你想要快速的组合一些命令,已完成一次查询或者其他任务时更加有效「当然是相对GUI或者其他」
- 找出修改日期比你的makefile的修改日期更近的全部.c文件
find . -name '*.c' -newer Makefile -print
- 构造我的源码文件
zip archive.zip *.h *.c *.java
tar cvf archive.tar *.h *.c *.java
- 上周哪些Java文件没有改动
find . -name '*.java' -mtime +7 -print
强力编辑
Use a single editor well
编辑器的特性
- 可配置
- 可拓展
- 可编程
- 语法突显
- 自动完成
- 自动缩进
- ……其他等等
目的是提高生产效率
源码控制
比如常用的git svn都是比较好用的。
调试
- 调试的心理学:Fix the problem, Not the blame.
- 调试的思维:Don’t Panic.
- 调试策略:
* 让你的数据可视化
* 跟踪
* 橡皮鸭
* 消除过程
* 造成惊讶的元素 Don’t assume it,prove it.
* 调试检查列表
文本操纵
学习一门文本操纵语言。类似Shell Python Perl 其他等等。
应用的地方:
- 数据库schema维护
- java属性访*
- 测试数据生成
- ?写书
- c与object pascal的接口
- 生成web文档
代码生成器
-
被动代码生成器
用处: * 创建新的源文件 * 在编程语言之间进行一次性的转换 * 生成查找表以及其他在运行时计算很昂贵的资源
-
主动代码生成器
例子: * 比如Java基本代码生成 * 比如hibernate对底层数据的操作 你修改了一个entry hibernate主动的修改了表的结构 * 或者其他……
-
代码生成不一定很复杂
-
代码生成器不一定要生成代码