UNIX编程艺术-艾瑞克.S.理曼德

总结

本书主要介绍了Unix系统领域中的设计和开发哲学、思想文化体系、原则与经验,由公认的Unix编程大师、开源运动领袖人物之一Eric S.Raymond倾力多年写作而成

摘录:

  1. 用错误的方式解决正确的问题总比用正确的方法解决错误的问题好。
  2. Unix的这种自由放纵主义风格会让它失去很多非技术型用户。但从长远考虑,最终你会发觉这个“错误”换来至关重要的优势:策略相对短寿,而机制才会长存。
  3. 只提供机制不提供方针的哲学能使Unix长久保鲜
  4. 既然能够改编、重用、再造,节省自己 90%的工作量,为什么还要从零开始编码呢?
  5. 设计规则:程序得以形成严丝合缝的工具套装,而不是应景的解决对策。
  6. Unix哲学:
    1. 原则 1:你无法断定程序会在什么地方耗费运行时间。瓶颈经常出现在想不到的地方,所以别急于胡乱找个地方改代码,除非你已经证实那儿就是瓶颈所在。
    2. 原则 2:估量。在你没对代码进行估量,特别是没找到最耗时的那部分之前,别去优化速度。
    3. 原则3:花哨的算法在n 很小时通常很慢,而n通常很小。花哨算法的常数复杂度很大。除非你确定n总是很大,否则不要用花哨算法(即使n很大,也优先考虑原则2)。
    4. 原则4:花哨的算法比简单算法更容易出bug、更难实现。尽量使用简单的算法配合简单的数据结构。
    5. 原则 5:数据压倒一切。如果已经选择了正确的数据结构并且把一切都组织得井井有条,正确的算法也就不言自明。编程的核心是数据结构,而不是算法[7]。
    6. 原则6:没有原则6。
  7. Unix哲学中更多的内容不是这些先哲们口头表述出来的,而是由他们所作的一切和Unix本身所作出的榜样体现出来的。从整体上来说,可以概括为以下几点:
    1. 模块原则:使用简洁的接口拼合简单的部件。
    2. 清晰原则:清晰胜于机巧。
    3. 组合原则:设计时考虑拼接组合。
    4. 分离原则:策略同机制分离,接口同引擎分离。
    5. 简洁原则:设计要简洁,复杂度能低则低。
    6. 吝啬原则:除非确无它法,不要编写庞大的程序。
    7. 透明性原则:设计要可见,以便审查和调试。
    8. 健壮原则:健壮源于透明与简洁。
    9. 表示原则:把知识叠入数据以求逻辑质朴而健壮。
    10. 通俗原则:接口设计避免标新立异。
    11. 缄默原则:如果一个程序没什么好说的,就沉默
    12. 补救原则:出现异常时,马上退出并给出足够错误信息。
    13. 经济原则:宁花机器一分,不花程序员一秒。
    14. 生成原则:避免手工hack,尽量编写程序去生成程序。
    15. 优化原则:雕琢前先要有原型,跑之前先学会走。
    16. 多样原则:决不相信所谓“不二法门”的断言。
    17. 扩展原则:设计着眼未来,未来总比预想来得快。
  8. 软件设计有两种方式:一种是设计得极为简洁,没有看得到的缺陷;另一种是设计得极为复杂,有缺陷也看不出来。第一种方式的难度要大得多。
  9. 在Unix历史中,最大的规律就是:距开源越近就越繁荣。
  10. 养成在编码前为API编写一段非正式书面描述的习惯,是一个非常好的办法。实际上,一些最有能力的开发者,一开始总是定义接口,然后编写简要注释,对其进行描述,最后才编写代码——因为编写注释的过程就阐明了代码必须达到的目的。这种描述能够帮助你组织思路,本身就是十分有用的模块说明,而且,最终你可能还想把这些说明做成路标文档(roadmap document),方便以后的人阅读代码。
  11. Hatton 的经验数据表明,假设其它所有因素(如程序员能力)都相同,200 到 400 之间逻辑行的代码是“最佳点”,可能的缺陷密度达到最小。
  12. Hatton 建议逻辑行与物理行之间为两倍的折算率,即最佳物理行数建议应在400至800行之间。
  13. 无论何时,重复代码都是危险信号。
  14. 程序员工具箱中最强大的优化技术就是不做优化。
  15. 最聪明、最便宜、常常也是最迅速的性能提升方法,就是等上几个月,期望硬件性能更好。
  16. 如果有真凭实据证明应用程序运行缓慢,这时(仅当此时)才可以考虑优化代码。但付诸实施前,要先估量。
  17. 最有效的代码优化方法就是保持代码短小简单。
  18. 有时,按需计算出昂贵的结果,再缓存起来为以后使用,通过这种方法可以兼得鱼和熊掌(低延迟和高吞吐量)—合理利用缓存
  19. 代码多并不等于代码好,至少在编写低层次代码和大量重复投入时是如此。
  20. 评估开源软件包的方法是阅读其文档和快速浏览它的部分代码。如果所见的代码编写恰当,文档完备,那么鼓励使用。如果能够证明软件包已经有些年头并且存在实质具体的用户反馈,就可以断定它是相当可靠的(无论如何还是测测为佳)。
  21. 预测未来最好的方法就是去创造未来。1971年XEROX PARC会议上的发言—Alan Kay
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值