首页 > 编程语言 >《程序员修炼之道:从小工到大家》十月份阅读笔记一

《程序员修炼之道:从小工到大家》十月份阅读笔记一

时间:2022-10-31 20:22:57浏览次数:32  
标签:代码生成 Shell 小工 程序员 编辑器 源码 文本 十月份

第14节 纯文本的威力

  1、纯本文由可打印字符组成,人可以直接阅读和理解其形式。这里强调可打印含义是字符时经过编码的可阅读字符,而不是二进制。这在现在看来几乎是不用争辩的,谁还会用二进制存储信息,但当时计算机算力和存储都有限,纯文本会占据更多空间,解码会耗费算力。但源于技术的发展,这些都是可以忽略不计了。

  2、纯文本的优点之一:保证不过时。这一点需要我们扩展纯文本能够自描述。自描述的含义是它自己能告诉我们它的含义。

  3、另外两个优点是杠杆作用和更易于测试。这里说的是我们可以利用各种工具 diff、fc、git,或一些语言例如 Python 等对纯文本进行各种调整和查看工作。

第15节 Shell 游戏

  1、对于操纵文本的文件的程序员,命令 Shell 就是工作台。我们可以利用 Shell 启动各种应用、搜索文件、查询系统状态,甚至还可以构建复杂的宏命令,完成各种常见活动。

  2、对于习惯 GUI 的开发者来说一直使用 Shell 有些极端。GUI 的好处是所见即所得,但他的缺点却是,所见即全部所得。GUI 环境通常受限于它们的设计者想要提供的能力。

  3、比如我们想要做一件事:在一个代码仓库里,查找上周没有修改过的,使用了 awt 库的 java 文件。

  4、Shell 可能比较晦涩,但是掌握之后它能很大程度提高你的效率。Shell 可以做各种组合搭配,然后构建一个命令序列,让常做的事情自动化。

第16节 强力编辑器

  1、我们认为你最好是精通一种编辑器,并将其用于所有编辑任务:代码、文档、备忘录、系统管理等等。

  2、好的编辑器应该具有这些特性:可配置、可扩展、可编程、语法突显、自动缩进、类IDE特性。

  3、编辑器对生产效率是有影响的。试想当我们需要一个字符一个字符或者一行一行移动时,按一次键,就以词,行,块的单位移动,显然效率更高。

  4、然后做什么。选一种强大的编辑器,好好学习它。不断学习,减少你敲击的次数。设法扩展它,让它能胜任更多任务。

第17节 源码控制

  1、原谅我们犯错的按钮是 UNDO 键,通常他们还支持多级 UNDO 和 REDO。而源码控制系统就相当于一个巨大的 UNDO 键,一个项目级的时间机器。源码控制系统(SCCS)能够追踪你在源码和文档中做的每一项改动。

  2、应该总是使用源码控制,即使团队只有你一人,即使项目很小。

  3、可以尝试的源码控制系统有 CSV、RCS、ClearCase 等。(那时 Git 还没流行起来)

第18节:调试

  1、调试心理学。调试的目的是解决问题,不要因为别人提出 bug 而发起进攻。

  2、当你目睹 bug 发生或者看到 bug 报告时,第一反应不要是“那不可能”。很明显已经发生了,把时间用在思考它为什么产生上面。

  3、使数据可视化。例如循环引用问题,如果可视化的话可以很轻易地进行排查。

  4、跟踪代码。发生 crash 我们能够查看系统的调用堆栈,但这些数据不一定够。对于非 crash 类错误,因为没有抛出,我们甚至不知道发生了什么。所以添加所谓的跟踪日志很有必要,这类日志最好采用统一规范,便于后期我们可以自动解析他们。

  5、橡皮鸭,也叫小黄鸭调试法。遇到无法定位的问题时,对着小黄鸭(屏幕)解释自己的实现逻辑,很可能在说的过程中你自己就发现了问题所在。

第19节 文本操纵

  1、学习一种文本操纵语言。文本操作语言对于编程的意义,就像是刳刨机对于木工活的意义。

第20节 代码生成器

  1、作为程序员,有时会需要我们在不同地方重复相同信息。如果出现这种情况,你就可以考虑构建代码生成器了。代码生成器就是编写能编写代码的程序。

  2、有两类代码生成器:被动代码生成器和主动代码生成器。

  3、被动代码生成器是独立执行的。它可以用来生成模板,版权声明,每个新文件的标准注释等等。

  4、主动代码生成器会在每次需要其结果时被使用。比如根据数据库 schema 创建代码。

  5、代码生成器不一定要生成代码,它可以用来输出任何格式的内容,比如 HTML、XML、纯文本等。

标签:代码生成,Shell,小工,程序员,编辑器,源码,文本,十月份
From: https://www.cnblogs.com/qq2803572183/p/16845627.html

相关文章