《梦断代码》笔记

《梦断代码》讲的的OSAF开发PIM软件Chandler的故事,可以当做小说来读的,摘录一些书中有趣的说法以及自己的感想。

  1. “Hello World”程序给程序员以乐观的想法:既然能叫它说话,就能让它做任何事。但事实可能是令人沮丧的

  2. 计算机从0开始计数,用户从1开始计数,所以程序员花了无数精力于此

  3. 人类文明运行于软件之上,但软件何其不靠谱,写过代码的人应该深有体会

  4. 人月神话:往已延误的项目中补充人力,只会使其继续延误。因此,最理想的开发团队是单枪匹马。如果代码经过协调不好的一串人手,结果确实难看

  5. 开源软件给了软件开发模式以新的思考方向,但远未解决软件开发的痼疾

  6. 开源中的Free应理解为”自由“,而且这个自由也有其固有要求,如GPL的传染性,但国内不少公司似乎只看到了免费,大肆盗用开源代码封装商业软件

  7. 软件是为人服务的,但通常也会要求人去适应软件的特性(或者其傻叉的地方)

  8. 让人适应软件还是让软件适应人?这是个问题。软件能否提升人类的智慧

  9. 很多项目开始之初都雄心勃勃,自以为与众不同,但最后都滑入深渊

  10. 软件的制造有时会给人以严重的挫败感。悲观一点的人看目前的软件开发技术是没有希望的。个人以为好的软件如好的小说一样是奇迹

  11. 软件的灵活性只存在于思想中,每一行代码都是毫无灵活性的。所有的想法都要寄生于结构,语言。高级语言相比人类的语言,其实太过低级

  12. 软件领域没有摩尔定律

  13. 变量类型这种小事,可以在代码的国度引发宗教战争般的冲突

  14. ”雾件“,根本不知道自己在写什么东西。如果需求来自领导,会很纠结

  15. 复用?造轮子还是买轮子,这也是个问题。买的轮子通常满足90%的需求,但剩下的10%会令人抓狂

  16. 像搭积木一样搭房子,是程序员的乌托邦。软件开发依然在手工作坊时代,甚至难以看到彻底工业化的希望。个人觉得理解为艺术可能心安理得一些…

  17. 软件会有自己组织信息的方式,也因此割裂事物之间的联系。比如数字化的文件和非数字化的文件分类上没有多大差别

  18. 快速、便宜、优质,最多三选其二

  19. 程序开发是常常是不断妥协的过程,人的肆意想法与机器的机械无情之间的妥协

  20. 程序员如何沟通,是技术问题,管理问题,哲学问题。写代码太多可能会用机器的方式思考…

  21. 程序员把图形界面看做程序的外壳,而对于用户,图形界面几乎是全部。没人为可怜的用户说话

  22. 代码优先还是设计优先,这是个问题

  23. 从普通用户到机器语言的复杂协调过程,用一个俗词形容叫“扯皮”

  24. 分开来运行正常,集成起来变垃圾。“系统”是可怕的。持续集成很麻烦,但”宇宙大爆炸式集成“可能造成更大的麻烦

  25. 做一个基本能用的一般产品,还是憋一口气做伟大的产品,这是个问题

  26. 世界上的事情分两种,规格说明书写明的和规格说明书没有的。可惜这只是代码工人的想法

  27. 简单者就该简单,复杂者亦有可能。上手容易,精通困难。魔兽争霸,围棋,WordPress

  28. 城市不是树,信息也不是树。树易于理解,但湮灭可能性

  29. 软件的成功尽管有其不确定性因素,但基本是可验证的。人生却不是…

  30. tag机制相比树状分类引入了多可能性,但难搞

  31. 对于文字,人能消歧理解(但常常也会误会)。计算机?重名者死

  32. ”吃你自己的狗食“

  33. 标准领域是一片令人畏惧的沼泽地。……想当然的标准是笑话,比如ipv9

  34. P2P是一种意识形态或一种信仰。……所以中国很难有真正的P2P,只有迅雷

  35. 十月怀胎,欲速不达

  36. 富客户端是程序员的噩梦

  37. 最佳实践的药方不可重开,银弹不会再次装入弹夹,杯具啊杯具

  38. 不该总是这样。——但总是这样

  39. 计划总是停留在纸上,想法总是好的,付诸实施者寥寥

  40. 软件设计模式再完美,也会撞上现实特殊情况的墙

  41. 最常用的软件开发实践就是什么也不用,埋头写代码。巨无霸方法论让痛恨被约束的才智所厌恶

  42. 祖尔测试。能得2、3分算不错了?

  43. 做软件如抓沙。大即险,小即美

  44. 历史上最成功的软件公司是微软。也是软件被骂最多的软件公司

  45. 软件不过是水管。但是……“但是”威武

  46. “软件工程”是一种愿望,而不是业已实现之事

  47. 程序员是工程师还是艺术家?写代码更像修房子还是写小说

  48. 没有物理学就难有真正的工程,而软件毫无物理学可言

  49. 层级是软件的精髓,但是它们身患痼疾。抽象都有漏洞

  50. 工具越多,成为编程高手却越难

  51. 所谓的面向对象设计语言不过是杂种

  52. Gordian software?修补还是重装上阵,这是个问题

  53. 何时停机?何时说放弃

  54. 闭门造车之时,世事如过眼云烟

  55. 一切倒塌又得以重建,再造它们的人满心欢喜。

Chandler项目最终基本上半途而废,中译名《梦断代码》真是充满悲情的贴切。