灵活的软件设计

2020-12-07 00:57:57

仅需进行少量编程修改即可构建适用于新情况的系统的策略。

“大多数系统都需要随着时间的推移而成功,而不仅仅是在某个时间点。预测性动态调度,元数据和其他技术的令人着迷的探索,这些技术可构建可不断增强的灵活系统。”

仅需进行少量编程修改即可构建适用于新情况的系统的策略。

时间压力促使程序员编写适合狭窄用途且无增长空间的代码。但是最好的系统是可以发展的。通过添加代码而不是更改现有代码,可以使它们适应新情况。作者介绍了他们发现的有效技术(在其100多年的编程经验中),这些技术将有助于程序员避免自己陷入困境。

作者探索了通过以下方式提高灵活性的方法:•使用组合器来组织系统,以从标准功能到小型函数到整个算术的混合匹配部分,并具有标准化的接口•通过独立的注释层(例如度量单位或出处)增强数据•使用统一或传播将独立的部分信息组合在一起•将控制结构与问题域和领域模型,规则系统以及模式匹配,传播和依赖关系回溯分离开来•使用动态可扩展的评估器扩展编程语言

其中的某些技术(例如动态可扩展的通用过程)非常强大,但有潜在危险。每章都包含练习。代码是用Lisp的简单方言Scheme编写的。例子从天文学到自动微分再到冒险游戏。