知识卡片
包的组合体依靠语言抽象边界维持可维护性
内容
当一个系统由许多独立开发者提交的包拼接而成、没有统一团队分配任务优先级时,它在动态维护特征上更接近一个开放平台而非单一应用程序:没有人对整个系统的维护负全责,某个包的作者退出后要么找到新志愿者接手,要么把包移出发行版。这种松散协作能够运转,关键在于语言本身充当了抽象边界——Lisp代码与解释器细节、底层处理器架构高度隔离,核心实现的改动因此有自由去演进,而不必担心打破依赖它的外部包。
参考来源
- 位置:《架构之美》第11章《GNU Emacs:滋长的特性是其优势》11.3.2节《滋长的特性和可维护性》(源文件:程序之美系列套装(6册)团队之美、项目管理之美、架构之美、数据之美、测试之美、安全之美/_epub-src/OEBPS/Text/part0240.xhtml)
- 结论依据:原文明确"Emacs是一个包的组合体,而不是统一定义的整体……更像是一个平台……而不像是一个独立的应用程序",并指出"Lisp语言扮演了重要的抽象边界的角色……为Emacs中核心的C程序代码的改进和扩展工作提供了很大的自由度"。
- 原始内容:关键在于Emacs是一个包的组合体,而不是统一定义的整体……在这个过程中,Lisp语言扮演了重要的抽象边界的角色……这为Emacs中核心的C程序代码的改进和扩展工作提供了很大的自由度,减少了破坏Lisp包中现有内容的兼容性。