Writings

A place to place some writings

《Unix 编程艺术》读书笔记(WIP)

久闻此书大名,恰值春节假期,找出这本书来学习学习。

我在此简单地记录读书笔记,便于经常回顾:

  • 程序是写给人看的不是写给计算机看的。我们在写代码的时候不要只是满足功能,而是要尽量让人可以很快地理解程序。毕竟,几个月后维护代码的那个人很可能是你自己。

  • 在写代码之前,要做充分的设计,看看自己能不能用自然语言把程序要做的事情给描述清楚,如果可以的话再写代码,这样设计出来的程序可维护性更高。

  • 遵循可扩展的原则,在做程序设计的时候,尽量给程序留有升级改造的余地。不要高估自己当时的设计。

  • 遵循 KISS 原则,这是 Unix 编程艺术的灵魂,设计要简洁,复杂度能低则低。

  • Unix 的成功源于对一些原则的遵守,这些原则这和禅道一样,把千言万语浓缩成几句话。

  • 尽量用程序去生成程序,就像编译器所做的那样。因为每次都让人去写代码是不可靠的,人是会犯错误的。

  • 保持软件的透明性,容易让人理解的代码才更不容易出错,才更可能优雅地向前发展。优雅的代码不仅将算法传达给计算机,同时也把见解和信心传递给阅读代码的人。

  • 编写透明、可显的系统而节省的精力,将来完全可能就是自己的财富。

  • 宁愿抛弃、重建代码也不愿修补那些憋脚的代码。

  • 尽管线程没有快速转换进程上下文的开销,但是锁定共享数据结构以防互相干涉的开销同样昂贵。也就是说,“线程比进程更快”这个表述并不一定是正确的。

  • 在优化程序之前要有证据证明它确实可以优化,不要依赖于直觉而是依赖于 Profiler 工具。

还在更新中……