《梦断代码》阅读笔记02
(1)技术工业的冰河时代导致大量程序员失业或半待业。
一封匿名邮件:
麦卡斯科回复道:“我们打算尽可能多地复用现有代码,少写新代码。要加快工作进程,就得尽量避免踏入新的编码地带。”
可复用代码的概念可以追溯到软件的上古时代,莫瑞斯·威尔克斯(英国编程先驱,他阴郁地预言自己将终身忙于调试?)及同事在二战后的英国对子程序(subroutine)做了定义:所谓子程序,就是能从程序任何其他部分调用来完成某项任务的一段代码——而且,当完成任务后,还可能把结果返回给调用者。
(2)在软件世界中,质量三角变化多端,成本难以测算、总是感到时间不够,体现得淋漓尽致。
温伯格发现,程序员尽管不合群,却真的需要与他人倾谈——形式越随意越好。
在软件管理中,协作不是马后炮,也不是无足轻重之事:它是工作的核心,决定采用何种工具和方法有可能成就或毁掉项目。管理这些工具容易诱使项目偏离正轨。
(3)在软件世界中,集成(integration)的意思就是把一段运行正常的代码连接到某个程序中另一段运行正常的代码上。集成往往是软件项目遇到大麻烦的环节。分开来运行相当正常的代码,在合起来时就闹罢工:不能正确挂接、发送不可解释的消息、或者顽固地拒绝启动或停止。(这是程序员的造物模仿其人类造物主的形式之一。)
Chandler的架构:
《搞掂》一书写道,现代生活和工作让我们在精神上受困于大量未完成的任务一—周围要处理的事物、要答复或过滤的电子邮件、应该阅读的文档或出版物、答应别人要做的事。
(4)人类语言的容错性较强:一个单词可以表达多种意思。这种灵活性打出了微妙与美好的深井;那是诗歌的基础。但在搭建软件时却会导致麻烦。当OSAF的开发者们致力于在Chandler中引入类似打戳之类的创新时,从草案到功能性代码,他们不断发现自己被多义性绊住。一次又一次,他们用相同词语描述不同事物。
以上内容大部分摘抄于《梦断代码》,若有侵权之处,请联系删除