第11章 GNU Emacs:滋长的特性是其优势
Emacs是一个功能强大的文字处理程序,作者RichardStallman。它用Lisp语言编写,由成千上百的不同开发人员完成,并且在不断的膨胀,但是却一直工作的很好。
Emacs预想你需要时只需启动一次,然后一直运行。它可以打开成百上千个文件。Emacs有三种基本的对象:帧、窗口、缓冲区。Emacs架构所采用的是在交互应用程序中应用广泛的模型-视图-控制器模式。Emacs是用来编辑文本文件的,因此Emacs的模型中最为合兴的是用来伯村文本信息的缓冲区。Emacs的核心是用自己独立的lisp语言变体开发的。Lisp代码扮演的是控制器的角色。所有的命令都是一个lisp功能模块。。lisp是Emacs能够成功 的随着发展提供大量功能的核心基础。
Emacs不断滋长的特性是其架构的直接成因。用户的想法可以直接进行实践,之后这个想法从简单的命令开始到了一组相互协作的命令集,然后封装起来,最后一些流行的包将纳入Emacs 的发行版本。当代码越来越多,维护也就越来越困难,这时主维护人员会邀请开发这个包的作者一起参与后续的维护工作。这个系统没有一个人能够承担整个系统的维护工作。
还有很多应用都为用户提供了添加扩展的机制,比如Eclipse,是针对java和c++的集成开发环境,它处处预留端口,所有的有效功能都是由插件提供的。Firefox当前精妙的web应用,使用了大量 html、ajax之类的技术,为用户带来更流畅的体验。这些应用的网页中包含了本队对用户应答的javascript,它使用了标准的接口。虽然web浏览器不是文本编辑器但是它的交媾和Dmacs的架构有着惊人的相似。
第12章当集市开始构建教堂
本章介绍KDE社区是如何发展ThreadWeaver和Akonadi项目的,以及它们是如何依次成型的。KDE项目是当今世界最大的机构自由软件项目成果之一。它的最初目标是为了开源的UNIX操作系统提供一个集成桌面,但实际上KDE的范围很光包含了UNIX、Micros Windows和MacOS甚至嵌入式平台所拥有的。人们在这个社区进行开发,讨论,评审,取了个名字为“集市”。它最初是从失败中孕育的。通过几代的更新,终于完成了蜕变。
早在Threadweaver 开始开发是就提出来该想法,但是触底实现该想法是不可能的,实际上主要是由于框架的限制,由于遇到的问题,所以开发团队迫切的采用了。