• 2009-08-14

    《程序员修炼之道》 第三章 基本工具 - [新知随笔]

    版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
    http://liuyangsl.blogbus.com/logs/44157663.html

    1. 纯文本的威力

    用纯文本保存知识,这样可以方便地在各种环境下使用和管理。

    威力:
    <a> 不会过时:即使使用纯文本数据的应用已经不存在了,这些数据仍可以被其他的应用使用。
    <b> 杠杆作用:每一种计算机工具都可以处理纯文本。(Unix系统更是纯文本成功的范例)
    <c> 容易测试:很方便修改纯文本的输入,纯文本的输出结果也易于分析。

    缺点:
    需要较大空间。
    解析处理的时候花费更大的计算机资源代价。
    容易暴露系统数据内容给用户。

    纯文本是最通行无阻的数据标准。

    ----------------------------------------------------------------------------------

    2. 使用shell

    shell是程序员的工作台,在shell上操作各种工具。

    虽然目前大多数应用都是基于GUI界面来进行的,但是GUI的缺点也显而易见:
    GUI所提供的功能,受到设计者想法的局限。
    而shell可以通过用户使用不同命令的组合,来实现功能组合定制。

    例如在本地文件条件搜索的时候,shell命令就非常简洁快速。

    UWIN:windows下的unix开发环境。

    ----------------------------------------------------------------------------------

    3. 强力编辑

    精通一种编辑器,用它来处理所有文本,而不要使用很多编辑器去处理不同文本。
    学习编辑器的快捷特性和功能特点,找到最适合自己工作的编辑器。

    所使用的编辑器的特性,和熟练程度,将直接影响到生产效率。
    某些编辑器不仅能智能地控制文本格式、用颜色区分内容,更可以定义模板。

    ----------------------------------------------------------------------------------

    4. 源码控制

    源码控制能跟踪源码和文档中的每一项变化,提供多级撤销和版本恢复功能。
    如(SVN)

    ----------------------------------------------------------------------------------

    5. 调试

    专注于修正问题,而不是发出指责。
    放松下来,不要恐慌。
    bug报告的准确性很难保证,留意不要被bug报告误导。为了明确情况,最好和测试者直接交流。
    重现业务中的bug,使过程数据可视化,跟踪调试。
    必须要能够明确地解释出所检查的每行代码。
    bug往往混迹与我们编写的代码、第三方库、运行环境的模糊地带,不要急于归咎于第三方或系统。

    ----------------------------------------------------------------------------------

    6. 代码生成器

    当我们总是要在不同的语境中编写功能相同的代码时,应该编写一个代码生成器来替我们完成重复的工作。

    (1)被动代码生成器
    参数话模板,根据一组输入生成给定的输出形式。
    可以用于:创建新的源文件、生成制式注释、在编程语言之间进行一次性转换、生成计算时间昂贵的查找表或其他资源。

    (2)主动代码生成器
    就像在“防止重复”的原则中提到的一样,主动代码生成器用于把源数据转化为适用于当前代码环境的结构。
    生成的代码是可以随意抛弃的。

    让输入的数据格式保持简单,可以简化代码生成器的构造。


    收藏到:Del.icio.us