《梦断代码》阅读笔记(1)

第4章 乐高王国
这一章主要描述乐高积木式的软件制作方式,如果这一块块积木是程序代码,则很难做到尽善尽美,完全适用且精简的代码。最终这个方式是卡塞尔团队在这方面的一个尝试探索,值得我们钦佩和敬仰。

乐高假设指未来程序将由可复用的部件组合而成。部件将在全球范围内提供。虽然实际上这种假设不太容易实现,甚至不能实现。做好项目的关键在于复用,而不是重复发明。

把前人的成功经验集成进来,少写新代码。软件复用的两难选择:创建还是借用?

可复用软件之梦有一个悖论:几乎总能找到一段满足大部分需要的代码。但这些拿来的代码所不能做到的部分,恰恰是项目与众不同的创新之处----也是创建这个项目的出发点。

模块化和组件化是软件人员的梦想,谁都想把几个模块插到一起就可以完美的运行并完成任务,但现实却相当残酷,可以运行的模块通常不能与自己想写的程序配合工作。程序员们很久前就解决了“小复用”问题,即通过构建子程序库来为自己减负。但一直悬而未决的间题则是“大复用”——创造并使用真正有用的软件大型可复用组件。

书中提到一个叫考克斯的人,他创办了一家叫做Stepstone的公司,致力于向C语言系统搭造者提供插入式芯片级软件组件,最后的结论是:即便采用最新的技术,要想设计和制造既有用又真能复用的组件、为组件写文档以便于客户理解、移植组件到潮水般不断涌现的新硬件平台上、确保最新的改进或发布版本不与现存接口冲突、将组件销售到类似威廉姆斯堡枪械行业那种鼓励从头做起的价值体系,都是极其困难的。

美国西海岸时间2003 年4月21 日下午3:07, 第一个公众版Chandler0.1上载到OSAF 服务器。24 小时内,就被下载15000 次。卡普尔在blog 上写道“我把Chandler0.1叫做‘B超’版本:胎儿只能在母腹中存活,但如果仔细查看,就能看到小小的手臂和腿脚在划动,你会相信最终它将诞生。”

团队讨论后认为Chandler数据模型的核心应该是“条目( item)”。

什么都可以是条目——对用户来说,可能是一封电子邮件、一条随笔记录或者一次约会事件,但它也要体现程序自身的一些机制,例如某”类”条目的定义(“电子邮件”或“随笔记录”或“约会事件”)。

条目采用面向对象方式加以组织,构成一种继承层级结构。如果一组中的每一条目都被定义为某一”类”——例如,都是电子邮件一一则它们将继承“电子邮件类”条目的所有特性。所有条目都应该保存在资料库中。

这种方案让Chandler 具有“以条目为中心”的特点,它还引申出几个要点。其中之一是程序彻底从RDF 的世界中转移出来,回到摩根·萨奇编写第一个资料库时Chandler 的出生地。

在RDF 中,数据存储的基本单位是“属性(attribute)" ; Chandler 条目可以包含许多不同属性(对于一封电子邮件,典型的属性可能是“日期”、“发件人”、“ 主题”、“正文”等等)。

现在,Chandler 团队终于回到有所进展的世界。

posted @ 2022-06-03 18:33  枫浔  阅读(16)  评论(0)    收藏  举报