《梦断代码》笔记
《梦断代码》讲的的OSAF开发PIM软件Chandler的故事,可以当做小说来读的,摘录一些书中有趣的说法以及自己的感想。
-
“Hello World”程序给程序员以乐观的想法:既然能叫它说话,就能让它做任何事。但事实可能是令人沮丧的
-
计算机从0开始计数,用户从1开始计数,所以程序员花了无数精力于此
-
人类文明运行于软件之上,但软件何其不靠谱,写过代码的人应该深有体会
-
人月神话:往已延误的项目中补充人力,只会使其继续延误。因此,最理想的开发团队是单枪匹马。如果代码经过协调不好的一串人手,结果确实难看
-
开源软件给了软件开发模式以新的思考方向,但远未解决软件开发的痼疾
-
开源中的Free应理解为”自由“,而且这个自由也有其固有要求,如GPL的传染性,但国内不少公司似乎只看到了免费,大肆盗用开源代码封装商业软件
-
软件是为人服务的,但通常也会要求人去适应软件的特性(或者其傻叉的地方)
-
让人适应软件还是让软件适应人?这是个问题。软件能否提升人类的智慧
-
很多项目开始之初都雄心勃勃,自以为与众不同,但最后都滑入深渊
-
软件的制造有时会给人以严重的挫败感。悲观一点的人看目前的软件开发技术是没有希望的。个人以为好的软件如好的小说一样是奇迹
-
软件的灵活性只存在于思想中,每一行代码都是毫无灵活性的。所有的想法都要寄生于结构,语言。高级语言相比人类的语言,其实太过低级
-
软件领域没有摩尔定律
-
变量类型这种小事,可以在代码的国度引发宗教战争般的冲突
-
”雾件“,根本不知道自己在写什么东西。如果需求来自领导,会很纠结
-
复用?造轮子还是买轮子,这也是个问题。买的轮子通常满足90%的需求,但剩下的10%会令人抓狂
-
像搭积木一样搭房子,是程序员的乌托邦。软件开发依然在手工作坊时代,甚至难以看到彻底工业化的希望。个人觉得理解为艺术可能心安理得一些…
-
软件会有自己组织信息的方式,也因此割裂事物之间的联系。比如数字化的文件和非数字化的文件分类上没有多大差别
-
快速、便宜、优质,最多三选其二
-
程序开发是常常是不断妥协的过程,人的肆意想法与机器的机械无情之间的妥协
-
程序员如何沟通,是技术问题,管理问题,哲学问题。写代码太多可能会用机器的方式思考…
-
程序员把图形界面看做程序的外壳,而对于用户,图形界面几乎是全部。没人为可怜的用户说话
-
代码优先还是设计优先,这是个问题
-
从普通用户到机器语言的复杂协调过程,用一个俗词形容叫“扯皮”
-
分开来运行正常,集成起来变垃圾。“系统”是可怕的。持续集成很麻烦,但”宇宙大爆炸式集成“可能造成更大的麻烦
-
做一个基本能用的一般产品,还是憋一口气做伟大的产品,这是个问题
-
世界上的事情分两种,规格说明书写明的和规格说明书没有的。可惜这只是代码工人的想法
-
简单者就该简单,复杂者亦有可能。上手容易,精通困难。魔兽争霸,围棋,WordPress
-
城市不是树,信息也不是树。树易于理解,但湮灭可能性
-
软件的成功尽管有其不确定性因素,但基本是可验证的。人生却不是…
-
tag机制相比树状分类引入了多可能性,但难搞
-
对于文字,人能消歧理解(但常常也会误会)。计算机?重名者死
-
”吃你自己的狗食“
-
标准领域是一片令人畏惧的沼泽地。……想当然的标准是笑话,比如ipv9
-
P2P是一种意识形态或一种信仰。……所以中国很难有真正的P2P,只有迅雷
-
十月怀胎,欲速不达
-
富客户端是程序员的噩梦
-
最佳实践的药方不可重开,银弹不会再次装入弹夹,杯具啊杯具
-
不该总是这样。——但总是这样
-
计划总是停留在纸上,想法总是好的,付诸实施者寥寥
-
软件设计模式再完美,也会撞上现实特殊情况的墙
-
最常用的软件开发实践就是什么也不用,埋头写代码。巨无霸方法论让痛恨被约束的才智所厌恶
-
祖尔测试。能得2、3分算不错了?
-
做软件如抓沙。大即险,小即美
-
历史上最成功的软件公司是微软。也是软件被骂最多的软件公司
-
软件不过是水管。但是……“但是”威武
-
“软件工程”是一种愿望,而不是业已实现之事
-
程序员是工程师还是艺术家?写代码更像修房子还是写小说
-
没有物理学就难有真正的工程,而软件毫无物理学可言
-
层级是软件的精髓,但是它们身患痼疾。抽象都有漏洞
-
工具越多,成为编程高手却越难
-
所谓的面向对象设计语言不过是杂种
-
Gordian software?修补还是重装上阵,这是个问题
-
何时停机?何时说放弃
-
闭门造车之时,世事如过眼云烟
-
一切倒塌又得以重建,再造它们的人满心欢喜。
Chandler项目最终基本上半途而废,中译名《梦断代码》真是充满悲情的贴切。