201702 - 《松本行弘的程序世界》

松本行弘的程序世界

这本书如果是基于 Swift 就太好了。不过,即使如此,书中讲的很多编程的思想、原理还是很通用的。比如对正则表达式、字符编码、等部分的介绍,非常值得深入研究时回头再看。

不过,毕竟作者是 Ruby 的作者,是底层思维的牛人;对于我这种肤浅的应用型选手,可能还是更愿意接受相关的思想,比如同样是独立开发者的经历,如何构建一个市场需要、但目前尚属空白的产品,如果提交产品的知名度,等等。

另外,这本书看的时间有些长,前后超过了 20 天,思维会中断,没有连续阅读时的畅快和收获。以后一本书还是尽量在一个星期内阅读完毕。

一些书摘(使用 Klib 导出):

  • 程序的重复是一切问题的根源。重复的程序在需要修改的时候,所涉及的范围就会更广,费用也就更高。当多个重复的地方都需要修改时,哪怕是漏掉其中之一,程序也将无法正常工作。所以重复降低了程序的可靠性。
  • 软件开发的最大敌人是复杂性。人类的大脑无法做太复杂的处理,记忆力和理解力也是有限的。
  • 虽然计算机的性能年年在提高,但它的处理能力终究是有限的,而人类理解力的局限性给软件生产力带来的限制则更大。在计算机性能这么高的今天,人们为了找到迅速开发大规模复杂软件的方法,哪怕牺牲一些性能也在所不惜。
  • 对于没有名字的东西,人们几乎不可能认识到它的存在,并对之进行讨论。这种不能用语言表达的知识我们称之为内隐知识。
  • 国外以反斜杠作为转意字符,而日本国内用日元符号作为转意字符。
  • 正则表达式,是表达字符串模式的一种微型语言。正则表达式由字符本身、字符模式、锚点以及重复等组合而成。
  • 介绍几条关于性能优化的格言,第 1 条也是最有名的: 过早的优化是万恶之源。还有一句也说的是这个意思:优化有两条准则:
    • 别做优化。
    • (仅适用于专家)先不要做优化。
  • 性能优化的具体技巧:
    • 根据测定,发现瓶颈
    • 减少对象
    • 减少方法调用
    • 避开用 Ruby 实现的方法
    • 使用立即值
    • 瓶颈部分用 C 语言记述。
    • 以空间换时间
  • “锁链的强度取决于最弱的环节”,这是在谈到安全性时经常使用的一句谚语。