1.纯文本的威力:
优点:
保证不过时:纯文本是人类可直接阅读和理解的形式,只要人们能够理解文本的格式,就可以对其进行解析,相比二进制文件更具持久性。比如 HTML、XML 等都是常见的纯文本语言,即使未来软件和系统不断更新换代,纯文本依然能够被读取和处理。
杠杆作用:计算世界中的各种工具,从源码管理系统到编译环境、编译器及独立的过滤器等,都能对纯文本进行操作。这意味着纯文本可以与各种工具良好地协同工作,方便程序员进行代码的编写、管理和处理。
更易于测试:用纯文本创建用于驱动系统测试的合成数据非常方便,增加、更新或修改测试数据也比较简单,无需为此创建特殊工具。这使得测试过程更加高效和便捷,有助于提高代码的质量和可靠性。
缺点:与压缩的二进制格式相比,存储纯文本需要更多的空间;解释及处理纯文本文件,在计算上的代价可能更昂贵。
2.shell 游戏:
shell 是程序员操作文本文件的工作台,类似于木匠的工作台。在 shell 提示下,可以调用各种工具,并通过管道等方式将它们组合起来,以意想不到的方式完成各种任务。例如,可以启动应用程序、调试器、浏览器、编辑器以及各种实用程序,还可以搜索文件、查询系统状态、过滤输出等。通过对 shell 进行编程,能够构建复杂的宏命令,提高工作效率。
3.强力编辑:
程序员最好精通一种编辑器,并将其用于所有的编辑任务,包括代码编辑、文档编辑、备忘录编写、系统管理等。这样可以避免因使用多种编辑器而导致的混乱和操作不熟练的问题。
一个好的编辑器应具备可配置、可扩展、可编程等特性,并且其语法凸显和自动缩进等功能也非常有用。这些特性可以让程序员根据自己的需求和习惯对编辑器进行定制,提高编辑效率。
4.源码控制:
源码控制系统就像是一个巨大的 “undo” 键,能够追踪程序员在源码和文档中做出的每一项变动。好的源码控制系统不仅可以撤销错误,还能让程序员追踪代码的变动历史,比如回答 “谁改动了这一行代码?”“当前版本与上周的版本相比有什么区别?” 等问题。
将整个项目置于源码控制系统的保护之下,可以进行自动的和可重复的产品构建。项目构建机制可以自动从仓库中取出最近的源码,确保构建的可重复性,方便团队进行协作开发和项目管理。
5.调试:
调试是程序开发中不可或缺的环节,程序员要接受调试是解决问题的过程这一事实。调试的第一准则是不要恐慌,保持冷静的心态才能更好地找出问题的根源,而不是只修正表面的症状。
在开始调试之前,要确保代码能够成功编译,避免在有编译错误的基础上进行调试,浪费时间和精力。另外,可以通过数据可视化等方式观察数据的变化,帮助发现问题。还有一种有效的调试技术是向别人解释代码的功能和逻辑,这有助于自己更清晰地理解代码,从而发现问题所在。
6.文本操纵:文本操纵对于程序员来说非常重要,就像木匠加工木料一样,程序员需要对文本进行操作和处理。好的文本操纵语言功能强大、用途广泛,但如果使用不当可能会损坏整个文件。文本操纵语言具有广泛的适用性,比如数据库 schema 维护、Java 属性访问、测试数据生成、写书、C 与 Object Pascal 的接口、生成 Web 文档等。
7.代码生成器:
程序员可以构建代码生成器,一旦构建好,在整个项目生命周期内都可以使用。代码生成器有两种主要类型,被动代码生成器只运行一次来生成结果,结果与代码生成器分离;主动代码生成器在每次需要其结果时被使用,结果是用过就扔的,总是能由代码生成器重新生成。
代码生成不一定要很复杂,关键是要实用,能够节省程序员的时间和精力,提高开发效率。