《程序员修炼之道-从小工到专家》读后感(三)
第三章:基本工具
1.纯文本的威力
具有良好定义的结构的纯文本,用纯文本保存知识,可以获得自描述的,不依赖于创建它的应用的数据流。
缺点:与二进制相比所需的存储空间更大;处理代价高。
优点:保证不过时;杠杆作用;更易于测试。
2.shell游戏
熟悉shell使自己的生产率提高。
3.强力编辑
最好精通一种可配置、可扩展、可编程的编辑器,并将其用于所有编辑任务,适当了解其他编辑器。
4.源码控制
能够追踪到你在源码和文档中做出的每一处变动,更好的系统还能追踪编译器及OS版本,有了适当配置的源码控制系统,你就总能返回你的软件的前一版本,极大地提高了开发效率。
源码构建是可重复的,因为你总是可以按照源码将给定日期的内容进行重新构建。
5.调试
调试的目的是为了解决问题,我们要做的就是修正问题,而不是发出指责。
遇到令人吃惊的bug时,进行修正,确定之前为什么没有找出这个bug,考虑你是否要改进单元测试或其他测试,以让它们有能力找出这个故障。如果bug是一些坏数据的结果,看看这些数据经过了那些层面,是否能尽早的进行隔离。
开始查看bug前,首先要确保程序能够成功编译,把编译器警告级设定的最高,准确观察,搜集相关数据,与发现bug的人进行交谈更为直接;必须强硬的测试边界条件,面面俱到的测,还要测试现实中的使用情况。
使数据可视化,调试器通常会聚焦于现在的状态,你有时还会需要观察程序岁随时间变化的状态。
消除bug的过程中二分法较为可靠。